Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: atmega 8535 непонятный глюк
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
валера
вопрос такой
мой знакомый подключил светодиоды между портами А и С 8 штук,
подает на одни 1 а на другие 0 (через сопротивления), светодиоды горят,
но через некоторое время начинает мигать светодиод подключенный к PA0 и PC0, он говорит что на РА0 периодически исчезает единица, хотя не должна,
казалось бы что может быть проще, а что то глючит
вот текст программы:

.include "8535def.inc"
.def temp = r16
.cseg
.org 0
rjmp RESET
RESET:
ldi temp, RAMEND
out SPL, temp
ldi temp, 0xff
out DDRA, temp
out DDRC, temp
ldi temp, 0x55 ;01010101
out PORTA, temp
ldi temp, 0xaa ;10101010
out PORTC, temp
cli
Main:
rjmp Main


я ему говорю что инициализация стека в меге 8535:
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16


и файл .include не 8535def.inc, а m8535def.inc

что скажете, может кто что посоветует? cranky.gif
jack_avenger
Насчет стека ты прав, но он здесь ни к чему, ведь прерывания запрещены. Нужно искать проблемы с питанием или с тактированием.
doomer#gp
Максимальный вытекающий и втекающий токи портов AVR различны (втекающий вроде 5мА).
yung
Цитата(doomer#gp @ Jul 16 2005, 20:30)
Максимальный вытекающий и втекающий токи портов AVR различны (втекающий вроде 5мА).
*


Maximum Operating Voltage ............................................ 6.0V
DC Current per I/O Pin ............................................... 40.0 mA
DC Current VCC and GND Pins................................ 200.0 mA

Т.е. 40 мА на вывод порта (вне зависимости от направления), и 200 мА на кристалл.
1.) пусть этот знакомый посмотрит на номиналы резисторов. При большом токе через порты чудеса с МК бывают. Я с этим встречался, когда пытался семисегментник напрямую на порты посадить.
2.) Если объем ОЗУ кристалла больше 256 байт, то знакомый неправ.
CDT
Судя по тексту, стек не используется.

Осталось проверить перегрузку (резисторы не известны), и не осталось ли в процессоре чего-нето от предыдущих программ (WDT, например).
А в эмуляторе это дело как себя ведет?
sseett
Проверить фьюз (WDTON=1), питашку на предмет провалов, ограничить ток через светодиод значением <10ма.
Когда -то делал подобным образом индикатор на двухцветных светодиодах (12 шт., камень 1200), ничего подобного не наблюдал.
Удачи!
валера
Цитата(sseett @ Jul 19 2005, 07:07)
Проверить фьюз (WDTON=1), питашку на предмет провалов, ограничить ток через светодиод значением <10ма.
Когда -то делал подобным образом индикатор на двухцветных светодиодах (12 шт., камень 1200), ничего подобного не наблюдал.
Удачи!
*


WDTON=1 - это что сторожевой таймер?
jack_avenger
Он самый! Пробуй отключить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.