Другие языки программирования и технологии

Кто знает ассемблер, помогите!

Надо сделать с использованием таймеров следующую программу: Мигать светодиодом A0 и А1 с периодом 2 секунды, а светодиодом А4 с периодом 4,5 секунды
напостили пустых ответов. в коде присутствует платформа. это AVR. контроллер ATMega163
писал на скорую руку, может где сосчитал неправильно. Если че подправь.
Программа рассчитана на кварц с частотой 32.768 КГц. Такие есть. обычно в часах используют.

.include "m163def.inc"
.device ATmega163
.deftemp=R16
.defmask=R17
.defcount1=R24
.defcount2=R25
.org 0
jmp start
.org OVF0addr ;обработчик прерывания от таймера 0
tick:
inc count1
inc count2;увеличиваем счетчики
cpi count1,4
breq neg01;проверяем нужный момент времени и переходим к подпрограммам
cpi count2,9
breq neg4
endio:
reti

;тут инвертируем 0 и 1 биты PORTA
neg01:
ldi mask,3
in temp,PINA
eor temp,mask
out PORTA,temp
clr count1
jmp endio

;тут инвертируем 4 бит PORTA
neg4:
ldi mask,16
in temp,PINA
eor temp,mask
out PORTA,temp
clr count2
jmp endio

start: ;прерывание при старте или сбоях питания
lditemp,low(RAMEND)
outSPL,temp ;инициализация стека
ldi temp,high(RAMEND)
outSPH,temp
ldi temp,0xFF
out DDRA,temp;PORTA на выход
ldi temp, ( 1 < < TOIE0 )
out TIMSK,temp;прерывания от таймера 0
ldi temp, ( 1 < < CS01 ) | ( 1 < < CS00 )
out TCCR0,temp;включаем таймер с делением на 8
sei;разрешаем прерывания
loop:
jmp loop
Никита Шумилов
Никита Шумилов
4 830
Лучший ответ
Без указания процессора, тактовой частоты, и схемы как подцеплены светодиоды это сделать не возможно.
Илья Вьюрков
Илья Вьюрков
4 575
ассемблер здесь вторичен
нужно знать архитектуру для которой это пишется ...

а то что ты написал - это всего-лишь начальная инициализация и не более
Шота я прижмурил глаза и жутко медетирую над кодом :\\