Страница 37 из 421

Добавлено: Вт мар 31, 2009 22:59:48
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 писал(а):Удачно выбрал, что удалить... :)))
А что те строчки "значат"?

Добавлено: Вт мар 31, 2009 23:53:41
Yellow Tiger
Ты же сказал, что твоя проблема разрешилась - что теперь суетиться-то?

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

Конкретно в твоем случае это не страшно, но, если бы в процессе изучения ты пробовал разные, критичные по таймингам, режимы, было бы сложно найти такую причину сбоев. :)))

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

Весь проект в атаче...

Добавлено: Ср апр 01, 2009 18:12:01
Барсик
А что в Вас там за порнография с Watchdog таймером? Зачем она Вам ?

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

#asm
LDI R31,0x18
OUT WDTCR,R31
LDI R31,0x10
OUT WDTCR,R31
#endasm

Добавлено: Ср апр 01, 2009 18:47:35
DataLife
Что мне советуют - то и пишу. Я пробую любые варианты - лижбы работало!!!
Может я что-то не понял, но этот вариант делал по этому совету.

Добавлено: Ср апр 01, 2009 19:11:55
ikarab
DataLife писал(а): этот вариант делал по этому совету.
В том совете обсуждался код для выключения вочдога который вставляет в прогу сам CVAVR.

Добавлено: Ср апр 01, 2009 19:19:56
DataLife
Вот оно что... Понятно.
Не, ну а всё же - кто-нибудь знает как помочь моей проблеме???
Честное слово - пусть я ламер в этом деле, но все тут только и делают, что находят ошибки в моём коде, а как правильно - а? :evil:

Добавлено: Ср апр 01, 2009 20:08:17
ikarab
Судя по тому как вы описываете проблему у вас дело в "железе" - сторожевой таймер врдли так долго бы ждал.

Добавлено: Ср апр 01, 2009 20:24:23
DataLife
Железо - МК + резистор + светодиод. Проще только адронный коллайдер ...

Добавлено: Ср апр 01, 2009 21:26:56
Барсик
DataLife писал(а):...кто-нибудь знает как помочь моей проблеме???...
Конечно. Для начала, выкиньте из программы нафиг ту порнографию, про которую я писал выше. Тем более, в этой порнографии имеется ошибка. И вообще, забудьте пока, что существует какой-то там Watchdog таймер... И ни в коем случае не устанавливайте фьюз, который этот самый Watchdog таймер включает. И будет Вам счастье...
ikarab писал(а):В том совете обсуждался код для выключения вочдога оторый вставляет в прогу сам CVAVR.
Во-первых нафига выключать тот самый Watchdod таймер, если он вообще не был включён? Нафига такие советы давать?!
Во-вторых, не знаю, кто чего куда вставляет, только в том коде ошибка. В первой команде, которая пишет что-то в регистр WDTCR, надо установить бит WDCE, а во втрой команде его сбросить. Это бит номер 4 (четыре) А в той порнографии он устанавливается там и там. Вы пишете сначала 0x18, а потом 0x10.

Добавлено: Ср апр 01, 2009 22:57:19
Sounds
Народ кто нибудь запускал CodeVisionAVR по Vista?

Добавлено: Сб апр 04, 2009 02:41:48
tuuzdu
я столкнулся с такой проблемой...
когда ввожишь некоторые числа в переменную float или double, например 6,2, то в отладчике при просмотре значения переменной отображается 6,199999. в чем может быть дело???

Добавлено: Сб апр 04, 2009 03:17:24
ikarab
В конечной точности.

Добавлено: Сб апр 04, 2009 10:29:06
tuuzdu
:))
а как сделать чтобы все нормально было?
некоторые чила он не гавнякает.. например 6,02 так и записывает

Добавлено: Сб апр 04, 2009 14:06:55
sachok
Воросик есть.
Есть у меня переменная

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

unsigned char lcd_buffer1[10]
в неё записиваются данные

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

sprintf(lcd_buffer1,"t%u=%i\xdfC",i+1,temp1);
как мне прочитать или преобразовать из неё значения температуры что бы можно было виполнить такую операцию

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

OCR1BL=OCR1B_L*lcd_buffer1;

Добавлено: Сб апр 04, 2009 14:24:13
Yellow Tiger
Что-то я не пойму вопрос - неужто нужно число умножать на строку? :

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

OCR1BL=OCR1B_L*lcd_buffer1;
(Интересно, кстати, какого типа ожидается результат :)))) Если же имеется ввиду не сама строка, а число в неё записанное, то почему не взять само число из той переменной, которую вот только-что скормили sprintf'у?

Добавлено: Сб апр 04, 2009 15:15:57
sachok
Та что тут не понятно я так например указал я знаю что так нельзя :P
Мне нужно значение которое в той строке было до следующей записи тоесть до вот этого:

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

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

Добавлено: Сб апр 04, 2009 15:29:43
Yellow Tiger
Узнать что было написано в строке, до того, как в неё записали новое значение? Это для другого форума вопрос, определенно. ;)

Добавлено: Вт апр 07, 2009 19:40:52
sachok
Есть вопрос не большой. не компилирует простейшую программку. прилагается проект и исходник(если это можно назвать исходником) :)) Посмотрите что оно от меня хочет. :)

Добавлено: Вт апр 07, 2009 20:27:55
ikarab
sachok писал(а):Посмотрите что оно от меня хочет. :)
вы min 2 раза объявили похоже.

вот все заработало.