WinAvr в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

Вопрос такой код не работает в Winavr, в CodeVision аналогичный код проходит без проблем, в чем может быть причина?
Вложения
tda7440.c
(1.04 КБ) 329 скачиваний
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: WinAvr в вопросах и ответах

Сообщение a_skr »

во-первых:
volatile signed char _Reg=47;
volatile signed char _Vol=25;

во-вторых:
_Reg=_Vol;
if (_Reg!=_Vol)//проверка encodera, если крутим

как-то маловато шансов возникнуть прерыванию между этих строчек.

не лучше-ли так:

Код: Выделить всё

if ((PIND&(1<<PIND0)) && (_Reg!=_Vol)) //если кнопка не нажата и если крутим
{
  _Vol=_Reg;    //записываем новое значение и выводим
  PORTA=_Vol;
}
else if((PIND&(1<<PIND0))==0)//нажата копка
{MENU();}
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

Вопрос в то, что я начал проект в cvavre, но т. к. ограничение в 4кило пришлось думать как перенести в winavr.
Полностью рабочий код не работает в winavr, где можно что изменить. чтоб не нарушать ход мысли.
Проект первый можете что-то подсказать, если есть лучшее решение
Вложения
ghj.c
(7.72 КБ) 375 скачиваний
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: WinAvr в вопросах и ответах

Сообщение Vov123 »

Самое лучшее для тебя сейчас решение найти крякнутый CVAVR,в чём проблем нет никаких.
А написание в этих компиляторах отличается примерно как русский от белорусского.
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

Я пытался найти но, что-то не получается, поэтому решение winavr. может есть у кого ссылка на крякнутый cvavr. у меня нет
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: WinAvr в вопросах и ответах

Сообщение Vov123 »

Открою один секрет,только никому.Если что-то ищешь,то что очень необходимо в Интернете,то набираешь ссылку www.google.ru и в поле "поиск" пишешь буковками сабж.А в твоём случае "крякнутый cvavr".
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

У меня есть версии 2.05 но там нет поддержки i2c, а я хочу еще кое что добавить
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: WinAvr в вопросах и ответах

Сообщение Vov123 »

Всё там есть,можешь почитать книжку про CVAVR М.Б Лебедева,искать "секретным" способом.
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

У меня есть куски готового кода на winavr, но не могу алготитм вывести работающий. постоянные проблемы,
недавно с битами разобрался, теперь надо оператор if переделать. Проект под tda7439 написан но не полностью, причины те же.
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

Думаю переписать весь код под winavr, с вашими поправками, решение уже принято надо под winavr делать
evgeniyvictorov
Родился
Сообщения: 7
Зарегистрирован: Пт авг 09, 2013 07:43:40

Re: WinAvr в вопросах и ответах

Сообщение evgeniyvictorov »

Всем доброго дня. Посмотрите что не так, работает только с задержкой.
Вложения
tda7440.c
(2.79 КБ) 386 скачиваний
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение vitalik_1984 »

Избавляться нужно от тупых циклов типа while (pause&xxx ) как то нужно более изящно подходить к делу.
boogyman
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср дек 08, 2010 18:53:34
Откуда: Москва
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение boogyman »

Здравствуйте, помогите разобраться при каком условии выполняется действие

Код: Выделить всё

    if((ADMUX&0x0F) == 1)
    {
     // действие
    }
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: WinAvr в вопросах и ответах

Сообщение a_skr »

при условии, что из четырех младших бит в ADMUX установлен только нулевой, т.е. ADMUX имеет вид: XXXX0001, где X - не важно, что там.
boogyman
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Ср дек 08, 2010 18:53:34
Откуда: Москва
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение boogyman »

a_skr писал(а):при условии, что из четырех младших бит в ADMUX установлен только нулевой, т.е. ADMUX имеет вид: XXXX0001, где X - не важно, что там.


Т. е. (для atmega8) если включен канал ADC1, то выполняется действие
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение vitalik_1984 »

Так то оно так, только зачем читать из этого регистра?
Может пойти по классической схеме?
типа
ADMUX= (ADMUX &0xF0)|(i);
delay();
adc[i++]=ADCH;
if(i>7) i =0;

Прямо как прописано в родной библиотеке CVAVR.
kapitaneo
Родился
Сообщения: 15
Зарегистрирован: Пн ноя 23, 2009 13:19:17

Re: WinAvr в вопросах и ответах

Сообщение kapitaneo »

Помогите разобраться
Как присвоить значение с ноги одного порта на ногу другого?
В Codevisione все просто PORTC.1=PINB.2;
А как в WINAVre
Я уже голову сломал, гуглин нифига.

Спасибо, заранее.
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение uni »

Код: Выделить всё

#define CHECKBIT(x,y) ((x) & (1<<(y)))
CHECKBIT( PINB, 2 ) ? sbi( PORTC, 1 ) : cbi( PORTC, 1 );
Россия навсегда!
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: WinAvr в вопросах и ответах

Сообщение IM1 »

uni писал(а):

Код: Выделить всё

#define CHECKBIT(x,y) ((x) & (1<<(y)))
CHECKBIT( PINB, 2 ) ? sbi( PORTC, 1 ) : cbi( PORTC, 1 );
И, что, прям ЭТО работает в GCC? :shock:
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Аlex »

Ну если макросы sbi и cbi определены, то почему бы этому не работать ?
Ответить

Вернуться в «AVR»