Atmega16
Atmega16
Добрый день!
Сегодня собрал схему простейшего ком программатора, подключил ATmega16. Наспех написал программу мигания светодиодами(их 2). Прошил.Включил. первый светодиод постоянно горит, второй вообще не загорается. Оба светодиода исправны.В протеусе схему моделировал-все работает. Программу писал так,чтобы сначало горел один светодиод, потом второй,а получается так,что сначала и до конца горит первый и потушен второй.
В чем может быть проблема?
P.S. Сейчас плату покрутил, подергал, начали мигать. После переподключения питания снова один горит,второй нет.
Сегодня собрал схему простейшего ком программатора, подключил ATmega16. Наспех написал программу мигания светодиодами(их 2). Прошил.Включил. первый светодиод постоянно горит, второй вообще не загорается. Оба светодиода исправны.В протеусе схему моделировал-все работает. Программу писал так,чтобы сначало горел один светодиод, потом второй,а получается так,что сначала и до конца горит первый и потушен второй.
В чем может быть проблема?
P.S. Сейчас плату покрутил, подергал, начали мигать. После переподключения питания снова один горит,второй нет.
- Реклама
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Atmega16
Куда прикошачили светодиоды? Есть у меги 16 выводы JTAG, которые не позволят сразу пользователю управлять ими.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Atmega16
Выводы PD7 и PC0.
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
Re: Atmega16
PC - это как раз и есть оно.. Измени фуз JTAGEN
Re: Atmega16
Сейчас переписал программу, подпрограмму задержки убрал, а саму задержку вставил в главный цикл. Светодиоды мигают.
Писал на ассме.
Фьюзы еще не менял.
P.S. видимо когда контроллер доходит до подпрограммы, он ее не выполняет и идет сразу на сброс.
Писал на ассме.
Фьюзы еще не менял.
P.S. видимо когда контроллер доходит до подпрограммы, он ее не выполняет и идет сразу на сброс.
- Реклама
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Atmega16
Наверное у вас стек не инициирован, потому и подпрограмма не возвращается.
Код в студию
Код в студию
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Atmega16
Тоже об этом думал, потом добавил инициализацию стека. Все равно та же картина.
Код: Выделить всё
.def Temp1=R16
.def Temp2=R17
.def Temp3=R18
.def Temp=R19
.cseg
.org 0
rjmp Reset
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP
INT_0:
INT_1:
Timer1_capt1:
Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti
reset: ldi Temp1,0x5f ;инициализация стека
out $3d,Temp1
ldi Temp,0b11111111 ;настройка порта с
out $11,Temp
ldi temp,0b11111111 ;настройка порта а
out $1A,temp
ldi temp,0b00000001 ;зажигаем 1-й светодиод
out $1b,temp
Begin: ldi Temp,0b00000000 ;тушим 2-й светодиод
out $12,Temp
rcall delay
ldi temp,0b00000000 ;тушим 1-й светодиод
out $1b,temp
ldi Temp,0b10000000 ;зажигаем 2-й светодиод
out $12,Temp
RCALL DELAY
ldi temp,0b00000001 ;зажигаем 1-й светодиод
out $1b,temp
; rcall delay
rjmp begin
delay:
ldi Temp1,250 ;задержка
ldi Temp2,250
ldi temp3,6
Loop2: dec Temp1
brne Loop2
dec Temp2
brne Loop2
dec temp3
brne loop2
ret
sleep- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Atmega16
Здрасьте приехали.
Почему стек 1 байтом инициируете?
Вот на мегу16 инициализация, прям из датиашита
Почему стек 1 байтом инициируете?
Вот на мегу16 инициализация, прям из датиашита
- Вложения
-
- init_stec.JPG
- (12.44 КБ) 244 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Atmega16
Мяу, Meteor!
Всем остальным тоже здрасте!
Вот смотрю я на код и думаю: "толи лыжи не едут...", использовать адреса вместо названия регистров
так и накосячить можно в раз, зачем только ATMELовцы def* файлы писали

Всем остальным тоже здрасте!
Вот смотрю я на код и думаю: "толи лыжи не едут...", использовать адреса вместо названия регистров
так и накосячить можно в раз, зачем только ATMELовцы def* файлы писали

- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Atmega16
Мяу, GP1!
У каждого свое представление об извращениях
У автора вообще косяков до чертиков. Один выход из прерываний на все чего стоит.
Автору.
Обычно помещаю обработчики прерываний в "хвост" программы, назначая каждому свой выход командой reti.
У каждого свое представление об извращениях
У автора вообще косяков до чертиков. Один выход из прерываний на все чего стоит.
Автору.
Обычно помещаю обработчики прерываний в "хвост" программы, назначая каждому свой выход командой reti.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Atmega16
Мне вот стало любопытно когда у него мк в режим sleep уйдет
или для чего он там нужен.
или для чего он там нужен.
Re: Atmega16
Спасибо за помощь. Все работает после включения .inс файла и указания более понятных регистров. Я в своей программе указал только SPL, а SPH почему-то решил не указывать %).
Программу писал буквально одной рукой,потому думал обойдусь без inc, так что всё в адресах.
Программу писал буквально одной рукой,потому думал обойдусь без inc, так что всё в адресах.



