Всем привет!
Допустим мне нужно при нажатии на кнопку загорался второй светодиод, а первых погас. На старичке обучалки 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 и на своем микроконтроллере но всеравно не работает так как мне нужно. Помогите...
Помогите с кнопкой на ресет на ATTiny2313
Помогите с кнопкой на ресет на ATTiny2313
- Вложения
-
- 123.jpg
- (38.33 КБ) 430 скачиваний
-
AVL
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Чт июл 17, 2008 20:53:28
- Откуда: Коломыя UA
- Контактная информация:
Re: Помогите с кнопкой на ресет на ATTiny2313
Пиши более внятно и грамотно, что тебе надо, а то люди смотрят на такую размазню и никто не отвечает.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Помогите с кнопкой на ресет на ATTiny2313
первое: длинные программы оформляются вложением.
А второе: название ветки вопрос по аппаратной части, а внутри по програмной.
Pingvinus, отредактируйте свое сообщение иначе модератор закроет его и Вы вообще никаких ответов не получите.
А второе: название ветки вопрос по аппаратной части, а внутри по програмной.
Pingvinus, отредактируйте свое сообщение иначе модератор закроет его и Вы вообще никаких ответов не получите.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Помогите с кнопкой на ресет на ATTiny2313
а как это вообще должно работать?
стек обычно инициализируют в начале программы, а никак не после разрешения прерываний.
навскидку, программа будет зацикливать либо на "аа", либо на "bb"
где опрос кнопки?
где начальное значение r16? которое потом инкрементируется.
грузить в регистр 0, лучше командой clr
стек обычно инициализируют в начале программы, а никак не после разрешения прерываний.
навскидку, программа будет зацикливать либо на "аа", либо на "bb"
где опрос кнопки?
где начальное значение r16? которое потом инкрементируется.
грузить в регистр 0, лучше командой clr
