Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не могу зажечь лампочку
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
roland07
Вообщем, мозг почти лопнул..
Хочу зажечь лампочку. Просто включить.
Стартер кит AT90USBKey. На ней кристал AT90USB1287.
Компилятор Avr Studio 4.18

Вообщем код такой

SER R24
OUT 0x0A,R24
OUT 0x0B,R24

RJMP PC-0x0000


Пробовал писать на С:
#include <avr/io.h>

void main()
{

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

PORTD = 0xFF;

}


Когда отлаживаю, все работает... Дизассемблер встроенный тож все нормально показывает... Загорается лампочка, которая висит на порту D и программа зацикливается...

Когда гружу в железку эта лампочка моргает...причем глазом заметно, т.е. частота моргания не очень высокая... Точно такие же строчки кода в компиляторе CVAvr работает как надо и лампочка на железке просто горит..


Мне очень нужен первый компилятор...Помогите, я уже не знаю что делать...наверняка мелочь какую-то не заметил...
Заранее спасибо..
ArtemKAD
Раз моргает... Могу предположить - в фьюзах установлет всегда включенный WDT, а значит WDR не хватает...
konstan
В конце программы необходимо поставить команду while(1){;} - зацикливание
roland07
я пробовал ставить for(;;) {} в конце. Результат тот же..

И почему на симултяторе все нормально, дизассемблер тоже показывает что все нормально... Программма на железке в конце сбрасывается в 0 адрес что ли?
Палыч
Вы не указали к какой именно ноге порта D подключена лампочка... Обратите внимание на альтернативные функции ножек этого порта. Скорее всего мешает разрешенный JTAG.
M_Andrey
Цитата(roland07 @ May 28 2011, 18:47) *
я пробовал ставить for(;;) {} в конце. Результат тот же..

И почему на симултяторе все нормально, дизассемблер тоже показывает что все нормально... Программма на железке в конце сбрасывается в 0 адрес что ли?

Вам же уже говорили - проверьте Watchdog Timer!
OlegPowerC
Цитата(M_Andrey @ May 28 2011, 22:16) *
Вам же уже говорили - проверьте Watchdog Timer!

В конце программы бесконечный цикл и сброс таймера
M_Andrey
Цитата(OlegPowerC @ May 31 2011, 12:43) *
В конце программы бесконечный цикл и сброс таймера

Так?
while(1) { _WDR(); /* Watchdog Reset */ }
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.