CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Yellow Tiger писал(а):- Во-первых - раньше речь шла не о "выключить прерывания", а о выключении собаки - что-таки нужно?
Ну, я особо не разбераюсь, как это называется... Ну мне нужно было, чтобы после некоторого времени работы не было сбоя в работе, в данном случаем, бегающих диодов.
Yellow Tiger писал(а):- во вторых, код в приложенном проекте и код приведенный выше - разные,
- в третьих, приложенный проект у меня скомпилировался без ошибок - о какой ошибке ты говорил?

Да, разные. Ошибка у меня была в строчке void WDT_off(void) . Просто я экспериментировал с разными кодами.
Yellow Tiger писал(а):- в четвертых, покажи-ка ту часть asm-листинга, что между "#asm("cli");" и "ACSR=0x80;"...

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

void WDT_off(void)
{
    #asm("cli");
    #asm("wdr");
    MCUSR &= ~(1<<WDRF);
    WDTCR |= (1<<WDCE) | (1<<WDE);
    WDTCR = 0x00;
    #asm("sei");
}   

Yellow Tiger писал(а):Удачно выбрал, что удалить... :)))
А что те строчки "значат"?
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Ты же сказал, что твоя проблема разрешилась - что теперь суетиться-то?

P.S. Удаленные тобой строчки соответствовали включению делителя тактовой. Без них делитель выключен - м/к работает на максимальной тактовой. ;)
Изображение

Конкретно в твоем случае это не страшно, но, если бы в процессе изучения ты пробовал разные, критичные по таймингам, режимы, было бы сложно найти такую причину сбоев. :)))
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Такс... Давайте я объясню ситуацию, а то я вообще запутался...
Есть программка для МК, ну и отладочная плата, конечно...
Прошиваю МК данной программкой и сматрю на результат на плате - программа "бегущие огни" работает нормально, но вот программа, когда все светики просто горят (при подаче лог.0 на пинД.0) работает всего около минуты-пол. Зачем или начинает мигать дружно всеми светикими или же просто тухнет и с концами...
Я не знаю, как это правильно называется: толи прерывания, толи собака, мать её, включается... Но этот эффект мне ну никак не нужен ...

Весь проект в атаче...
Вложения
leds.rar
Все файлы по данному проекту
(27.35 КБ) 240 скачиваний
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
Барсик
Друг Кота
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

А что в Вас там за порнография с Watchdog таймером? Зачем она Вам ?

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

#asm
LDI R31,0x18
OUT WDTCR,R31
LDI R31,0x10
OUT WDTCR,R31
#endasm
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Что мне советуют - то и пишу. Я пробую любые варианты - лижбы работало!!!
Может я что-то не понял, но этот вариант делал по этому совету.
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

DataLife писал(а): этот вариант делал по этому совету.


В том совете обсуждался код для выключения вочдога который вставляет в прогу сам CVAVR.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Вот оно что... Понятно.
Не, ну а всё же - кто-нибудь знает как помочь моей проблеме???
Честное слово - пусть я ламер в этом деле, но все тут только и делают, что находят ошибки в моём коде, а как правильно - а? :evil:
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

Судя по тому как вы описываете проблему у вас дело в "железе" - сторожевой таймер врдли так долго бы ждал.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Железо - МК + резистор + светодиод. Проще только адронный коллайдер ...
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
Барсик
Друг Кота
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

DataLife писал(а):...кто-нибудь знает как помочь моей проблеме???...

Конечно. Для начала, выкиньте из программы нафиг ту порнографию, про которую я писал выше. Тем более, в этой порнографии имеется ошибка. И вообще, забудьте пока, что существует какой-то там Watchdog таймер... И ни в коем случае не устанавливайте фьюз, который этот самый Watchdog таймер включает. И будет Вам счастье...

ikarab писал(а):В том совете обсуждался код для выключения вочдога оторый вставляет в прогу сам CVAVR.

Во-первых нафига выключать тот самый Watchdod таймер, если он вообще не был включён? Нафига такие советы давать?!
Во-вторых, не знаю, кто чего куда вставляет, только в том коде ошибка. В первой команде, которая пишет что-то в регистр WDTCR, надо установить бит WDCE, а во втрой команде его сбросить. Это бит номер 4 (четыре) А в той порнографии он устанавливается там и там. Вы пишете сначала 0x18, а потом 0x10.
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

Сообщение Sounds »

Народ кто нибудь запускал CodeVisionAVR по Vista?
tuuzdu
Родился
Сообщения: 2
Зарегистрирован: Сб апр 04, 2009 02:36:34

Сообщение tuuzdu »

я столкнулся с такой проблемой...
когда ввожишь некоторые числа в переменную float или double, например 6,2, то в отладчике при просмотре значения переменной отображается 6,199999. в чем может быть дело???
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

В конечной точности.
tuuzdu
Родился
Сообщения: 2
Зарегистрирован: Сб апр 04, 2009 02:36:34

Сообщение tuuzdu »

:))
а как сделать чтобы все нормально было?
некоторые чила он не гавнякает.. например 6,02 так и записывает
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Воросик есть.
Есть у меня переменная

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

unsigned char lcd_buffer1[10]

в неё записиваются данные

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

sprintf(lcd_buffer1,"t%u=%i\xdfC",i+1,temp1);

как мне прочитать или преобразовать из неё значения температуры что бы можно было виполнить такую операцию

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

OCR1BL=OCR1B_L*lcd_buffer1;
Я не Сашок!!!
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Что-то я не пойму вопрос - неужто нужно число умножать на строку? :

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

OCR1BL=OCR1B_L*lcd_buffer1;

(Интересно, кстати, какого типа ожидается результат :)))) Если же имеется ввиду не сама строка, а число в неё записанное, то почему не взять само число из той переменной, которую вот только-что скормили sprintf'у?
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Та что тут не понятно я так например указал я знаю что так нельзя :P
Мне нужно значение которое в той строке было до следующей записи тоесть до вот этого:

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

sprintf(lcd_buffer1,"t%u=%i\xdfC",i+1,temp1);
Я не Сашок!!!
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Узнать что было написано в строке, до того, как в неё записали новое значение? Это для другого форума вопрос, определенно. ;)
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Есть вопрос не большой. не компилирует простейшую программку. прилагается проект и исходник(если это можно назвать исходником) :)) Посмотрите что оно от меня хочет. :)
Вложения
fan controller 2.0.rar
(2.71 КБ) 254 скачивания
Я не Сашок!!!
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

sachok писал(а):Посмотрите что оно от меня хочет. :)

вы min 2 раза объявили похоже.

вот все заработало.
Вложения
proavr.narod.ru_cvavr.rar
(4.47 КБ) 241 скачивание
Ответить

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