Atmega16

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Riels
Родился
Сообщения: 6
Зарегистрирован: Ср май 19, 2010 18:43:00

Atmega16

Сообщение Riels »

Добрый день!
Сегодня собрал схему простейшего ком программатора, подключил ATmega16. Наспех написал программу мигания светодиодами(их 2). Прошил.Включил. первый светодиод постоянно горит, второй вообще не загорается. Оба светодиода исправны.В протеусе схему моделировал-все работает. Программу писал так,чтобы сначало горел один светодиод, потом второй,а получается так,что сначала и до конца горит первый и потушен второй.
В чем может быть проблема?

P.S. Сейчас плату покрутил, подергал, начали мигать. После переподключения питания снова один горит,второй нет.
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Atmega16

Сообщение Meteor »

Куда прикошачили светодиоды? Есть у меги 16 выводы JTAG, которые не позволят сразу пользователю управлять ими.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
Riels
Родился
Сообщения: 6
Зарегистрирован: Ср май 19, 2010 18:43:00

Re: Atmega16

Сообщение Riels »

Выводы PD7 и PC0.
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Re: Atmega16

Сообщение AndyWorld »

PC - это как раз и есть оно.. Измени фуз JTAGEN
Реклама
Эиком - электронные компоненты и радиодетали
Riels
Родился
Сообщения: 6
Зарегистрирован: Ср май 19, 2010 18:43:00

Re: Atmega16

Сообщение Riels »

Сейчас переписал программу, подпрограмму задержки убрал, а саму задержку вставил в главный цикл. Светодиоды мигают.
Писал на ассме.
Фьюзы еще не менял.
P.S. видимо когда контроллер доходит до подпрограммы, он ее не выполняет и идет сразу на сброс.
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Atmega16

Сообщение Meteor »

Наверное у вас стек не инициирован, потому и подпрограмма не возвращается.
Код в студию
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
Riels
Родился
Сообщения: 6
Зарегистрирован: Ср май 19, 2010 18:43:00

Re: Atmega16

Сообщение Riels »

Тоже об этом думал, потом добавил инициализацию стека. Все равно та же картина.

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

.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

Сообщение Meteor »

Здрасьте приехали.
Почему стек 1 байтом инициируете?
Вот на мегу16 инициализация, прям из датиашита
Вложения
init_stec.JPG
(12.44 КБ) 244 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Atmega16

Сообщение GP1 »

Мяу, Meteor!
Всем остальным тоже здрасте! :)))
Вот смотрю я на код и думаю: "толи лыжи не едут...", использовать адреса вместо названия регистров :shock: :shock: :shock:
так и накосячить можно в раз, зачем только ATMELовцы def* файлы писали :dont_know: :dont_know: :dont_know:
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Atmega16

Сообщение Meteor »

Мяу, GP1!
У каждого свое представление об извращениях :)))
У автора вообще косяков до чертиков. Один выход из прерываний на все чего стоит.
Автору.
Обычно помещаю обработчики прерываний в "хвост" программы, назначая каждому свой выход командой reti.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Atmega16

Сообщение GP1 »

Мне вот стало любопытно когда у него мк в режим sleep уйдет :dont_know:
или для чего он там нужен.
Чем дальше, тем больше становлюсь занудой...
Изображение
Riels
Родился
Сообщения: 6
Зарегистрирован: Ср май 19, 2010 18:43:00

Re: Atmega16

Сообщение Riels »

Спасибо за помощь. Все работает после включения .inс файла и указания более понятных регистров. Я в своей программе указал только SPL, а SPH почему-то решил не указывать %).
Программу писал буквально одной рукой,потому думал обойдусь без inc, так что всё в адресах.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»