Помогите с кнопкой на ресет на ATTiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Pingvinus
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Вт июн 29, 2010 22:46:45

Помогите с кнопкой на ресет на ATTiny2313

Сообщение Pingvinus »

Всем привет!
Допустим мне нужно при нажатии на кнопку загорался второй светодиод, а первых погас. На старичке обучалки http://radiokot.ru/start/mcu_fpga/avr/13/ я нашел как можно переключаться между массивами. Загорается только первый светодиод Вот моя программа:

.include "C:\Program Files1\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc"
.cseg
.org 0
;============
rjmp RESET
rjmp INT_0
rjmp INT_1
rjmp TIM1_CAPT
rjmp TIM1_COMPA
rjmp TIM1_OVF
rjmp TIM0_OVF
rjmp USART0_RXC
rjmp USART0_DRE
rjmp USART0_TXC
rjmp ANA_COMP
rjmp PCINT_0
rjmp TIMER1_COMPB
rjmp TIMER0_COMPA
rjmp TIMER0_COMPB
rjmp USI_START
rjmp USI_OVERFLOW
rjmp EE_READY
rjmp WDT_OVERFLOW
rjmp PCINT_1
rjmp PCINT_2


;RESET:
INT_0: reti
INT_1:reti
TIM1_CAPT: reti
TIM1_COMPA: reti
TIM1_OVF: reti
TIM0_OVF: reti
USART0_RXC: reti
USART0_DRE: reti
USART0_TXC: reti
ANA_COMP: reti
PCINT_0: reti
TIMER1_COMPB: reti
TIMER0_COMPA: reti
TIMER0_COMPB: reti
USI_START: reti
USI_OVERFLOW: reti
EE_READY: reti
WDT_OVERFLOW: reti
PCINT_1: reti
PCINT_2: reti

;==========
reset:
ldi r17,0
ldi r18,0


zadershka:
dec r17
brne zadershka
dec r18
brne zadershka

inc r16
sei


;======

ldi r17,0b11111111
out ddrb,r17
ldi r17,ramend
out spl,r17
;==================
;Na4alo
;================
andi r16,0b00000010
cpi r16,0b00000000
brne a
ldi r16,0b00000001


;----------
a:
cpi r16,0b00000001
brne b
ldi r17,0è00000001
out portb,r17
aa: rjmp aa

;----------


b:
ldi r17,0b00000010
out portb,r17
bb: rjmp bb

Это все я проверял в Proteuse и на своем микроконтроллере но всеравно не работает так как мне нужно. Помогите...
Вложения
123.jpg
(38.33 КБ) 430 скачиваний
AVL
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Чт июл 17, 2008 20:53:28
Откуда: Коломыя UA
Контактная информация:

Re: Помогите с кнопкой на ресет на ATTiny2313

Сообщение AVL »

Пиши более внятно и грамотно, что тебе надо, а то люди смотрят на такую размазню и никто не отвечает.
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Помогите с кнопкой на ресет на ATTiny2313

Сообщение Danko »

первое: длинные программы оформляются вложением.

А второе: название ветки вопрос по аппаратной части, а внутри по програмной. :(

Pingvinus, отредактируйте свое сообщение иначе модератор закроет его и Вы вообще никаких ответов не получите.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Помогите с кнопкой на ресет на ATTiny2313

Сообщение GP1 »

а как это вообще должно работать?
стек обычно инициализируют в начале программы, а никак не после разрешения прерываний.
навскидку, программа будет зацикливать либо на "аа", либо на "bb"
где опрос кнопки?
где начальное значение r16? которое потом инкрементируется.
грузить в регистр 0, лучше командой clr
Чем дальше, тем больше становлюсь занудой...
Изображение
Закрыто

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