Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: [AtMega48]меандр на всех ножках порта D при записи 0 в порт
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
cvv
все ножки висят в воздухе, скофигурены на выход и таймеры вырублены.

кз отсутсвует

Что еще может быть?
Flasher
Код?
cvv
Цитата(Flasher @ May 31 2008, 16:11) *
Код?

Код при старте пишет в порт 0 и больше порт не трогает. а меандр 1:4 сыпется пока не выключиш
Flasher
Я, конечно, понимаю, что код- важная коммерческая тайна, но желательно его увидеть. Есть еще вариант что при записи в порт нуля проседает напряжение и если включен BOD то микропроцессор сбрасывается
cvv
Цитата(Flasher @ May 31 2008, 16:25) *
Я, конечно, понимаю, что код- важная коммерческая тайна, но желательно его увидеть. Есть еще вариант что при записи в порт нуля проседает напряжение и если включен BOD то микропроцессор сбрасывается


питание не проседает.

cайт не разрешает мне загрузить весь файл

посему
[code]
// Port D initialization^M
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In ^M
// State7=P State6=P State5=P State4=0 State3=P State2=P State1=P State0=P ^M
PORTD=0xFF;//Исходное состояние - все 1
DDRD=0xFF; //Все на выход
^M
^M
// Timer/Counter 0 initialization^M
// Clock source: System Clock^M
// Clock value: 7,813 kHz^M
// Mode: Normal top=FFh^M
// OC0A output: Disconnected^M
// OC0B output: Disconnected^M
TCCR0A=0x00;^M
TCCR0B=0x00;^M
TCNT0=0x00;^M
OCR0A=0x00;^M
OCR0B=0x00;^M
// Timer/Counter 2 initialization^M
// Clock source: System Clock^M
// Clock value: Timer 2 Stopped^M
// Mode: Normal top=FFh^M
// OC2A output: Disconnected^M
// OC2B output: Disconnected^M
ASSR=0x00;^M
TCCR2A=0x00;^M
TCCR2B=0x00;^M
TCNT2=0x00;^M
OCR2A=0x00;^M
OCR2B=0x00;^M

asm __volatile__("sei");// Global enable interrupts^M

static unsigned char SPI_Received;
static unsigned char recv_index=0;
static unsigned long j=0;
static uint8_t led_mask=0xff;
static unsigned long counter =0UL;
static unsigned char out_mask=0;

while (1)^M
{^M
asm __volatile__("wdr");^M
//delay_ms(50);^M
//OutData(0xff, 0xff);^M

#define limit 100000UL
PORTD = 0x00;
...
}

к порту D больше обращений нету
vvs157
Цитата(cvv @ May 31 2008, 18:20) *
Код при старте пишет в порт 0 и больше порт не трогает. а меандр 1:4 сыпется пока не выключиш
Сильно похоже на Watchdog
cvv
Цитата(vvs157 @ May 31 2008, 16:40) *
Сильно похоже на Watchdog


в таком случае траблы были бы и с портами C && B но с ними все благополучно

Цитата(cvv @ May 31 2008, 16:42) *
в таком случае траблы были бы и с портами C && B но с ними все благополучно


ошибся. после записи PORTD = 0x00 плохеет всему процу
Rst7
Цитата
asm __volatile__("sei");// Global enable interrupts^M


И какие прерывания используются?

Кстати, стеков (пардон, стека, увидел что GCC) хватает?
aesok
Цитата(cvv @ May 31 2008, 18:20) *
Код при старте пишет в порт 0 и больше порт не трогает. а меандр 1:4 сыпется пока не выключиш

bb-offtopic.gif
Цитата
Меа́ндр — Бесконечный, периодический цифровой сигнал прямоугольной формы, широко используемый в радиотехнике. Длительность импульса и длительность паузы в периоде такого сигнала равны друг другу


Анатолий.
cvv
Цитата(Rst7 @ May 31 2008, 17:19) *
И какие прерывания используются?


оба внешних и два pcint на порты B && C

Цитата(Rst7 @ May 31 2008, 17:19) *
Кстати, стеков (пардон, стека, увидел что GCC) хватает?


как минимум gcc не жалуется и линкер тоже
aesok
Цитата(cvv @ May 31 2008, 19:38) *
оба внешних и два pcint на порты B && C


Покажите как объявленны эти обработчики.

Анатолий.

FYI: INT1 - PD3, INT0 - PD2.
cvv
Цитата(aesok @ May 31 2008, 17:52) *
Покажите как объявленны эти обработчики.

Анатолий.


извиняюсь в текущей прошивке все прерывания выключены и запрещены:

Код
EICRA=0x0E;^M
EIMSK=0x03;^M
EIFR=0x03;^M
PCICR=0x04;^M
PCMSK2=0x60;^M
PCIFR=0x04;^M
^M
// Timer/Counter 0 Interrupt(s) initialization^M
TIMSK0=0x00;^M
// Timer/Counter 1 Interrupt(s) initialization^M
TIMSK1=0x00;^M
// Timer/Counter 2 Interrupt(s) initialization^M
TIMSK2=0x00;^M


прерывания были в исходной прошивке но я от них отказался за ненадобностью
Flasher
..ля!!! да дайте вы полный исходный код людям без дурацкого форматирования, настройки фузов, ассемблерный листинг и схему. Или хоть что-то из этого.
и еще у меня вопрос: // Port D initialization^M
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In ^M
// State7=P State6=P State5=P State4=0 State3=P State2=P State1=P State0=P ^M
PORTD=0xFF;//Исходное состояние - все 1
DDRD=0xFF; //Все на выход

почему именно в таком порядке расположены эти 2 команды?
VDG
А где конец программы? Он вообще есть, или дальше бежим до конца флеша и начинаем сначала? smile.gif
cvv
Цитата(VDG @ May 31 2008, 18:17) *
А где конец программы? Он вообще есть, или дальше бежим до конца флеша и начинаем сначала? smile.gif


наконец-то сообразил как на этом форуме прикреплять файлы к постам. вернее что они хотят исключительно zip и не принимаю plain text
Rst7
Цитата
EICRA=0x0E;
EIMSK=0x03;
EIFR=0x03;
PCICR=0x04;
PCMSK2=0x60;
PCIFR=0x04;


Судя по этому коду - включены. Показывайте весь проект, именно тот, который Вы сейчас собираете и шьете.
cvv
Цитата(Flasher @ May 31 2008, 18:16) *
..ля!!! да дайте вы полный исходный код людям без дурацкого форматирования, настройки фузов, ассемблерный листинг и схему. Или хоть что-то из этого.
и еще у меня вопрос: // Port D initialization^M
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In ^M
// State7=P State6=P State5=P State4=0 State3=P State2=P State1=P State0=P ^M
PORTD=0xFF;//Исходное состояние - все 1
DDRD=0xFF; //Все на выход

почему именно в таком порядке расположены эти 2 команды?

упомянутый вами код был сгенерен какимто визардом для IAR а я потом портировал под GCC
aesok
Цитата(cvv @ May 31 2008, 20:05) *
извиняюсь в текущей прошивке все прерывания выключены и запрещены:


А это что?

EICRA=0x0E;^M
EIMSK=0x03;^M
...
asm __volatile__("sei");// Global enable interrupts^M
....

Анатолий.
cvv
Цитата(Flasher @ May 31 2008, 18:16) *
..ля!!! да дайте вы полный исходный код людям без дурацкого форматирования, настройки фузов, ассемблерный листинг и схему. Или хоть что-то из этого.
и еще у меня вопрос: // Port D initialization^M
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In ^M
// State7=P State6=P State5=P State4=0 State3=P State2=P State1=P State0=P ^M
PORTD=0xFF;//Исходное состояние - все 1
DDRD=0xFF; //Все на выход

почему именно в таком порядке расположены эти 2 команды?


все фузы по-умолчанию.


Цитата(aesok @ May 31 2008, 18:22) *
А это что?

EICRA=0x0E;^M
EIMSK=0x03;^M
...
asm __volatile__("sei");// Global enable interrupts^M
....

Анатолий.


каюсь. Халтурная зачистка. снес только обработчики а на остальное забил

Спасибо За помощь. буду в понедельник.
cvv
Цитата(cvv @ May 31 2008, 18:29) *
все фузы по-умолчанию.
каюсь. Халтурная зачистка. снес только обработчики а на остальное забил

Спасибо За помощь. буду в понедельник.

вобщем там на порте D висела заглушка обработчика IRQ а прерывание по ошибке небыло выключеным. Спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.