огромный резиновый топинамбур ([info]skorohod) wrote,

Осваиваю AVR по работе

.include "m162defwor.inc" ;свистелки-перделки
.org 0x000
jmp telo ;куды деваться при ресете
.org 0x022
jmp chpok ;куды хуячить по прерыванию переполнения счетчика
.org 0x038 ;пиздец таблицы прерываний, прога пошла
telo:
ldi r16,low(RAMEND) ;всякая непонятная хуита, чтобы работало пиздато
out spl,r16
ldi r16,high(RAMEND)
out sph,r16
sei ;конец мутной хуиты, понеслась
clr r16
ldi r16,0b00000001 ;перед прошивкой не забыть бит три впердолить, а то пиздец!
out tccr0,r16 ;настраиваем таймер-счетчик
clr r16
ldi r16,0b00000001
out timsk,r16 ;можно хуярить прерыванию
clr r16
ldi r16,0
out ddra,r16 ;порт а весь на выход
clr r16
ldi r16,0b00000001
out ddrb,r16 ;пин 0 порта б на вход под кнопку, остальное на выход, шоб мозга не ебало
clr r16
ldi r16,0b00000000
out pinb,r16 ;обнуляем порт б, ибо нехуй
clr r17 ;обнуляем 17 регистр, потом пригодится
ebat: ;цикл для нихуяниделания
nop
jmp ebat
chpok: ;обработчик прерывания счетчика
inc r17 ;инкерементируем переменную, шоп лампочки мигали
in r16,pinb
cpi r16,1 ;чекирим на тему нажатой кнопки
breq morg ;опа, кнопка нажата, ебашим
jmp hui ;а если не ебашим, то нахуй
morg: ;ебашим
out pina,r17 ;елочка, зажгись!
jmp nahui
hui: ;не ебашим
clr r16
out pina,r16 ;заткнись, сука!
nahui: ;пиздец обработчику
reti

  • Post a new comment

    Error

    Your IP address will be recorded 

  • 12 comments

[info]to_the_future

February 10 2009, 12:21:37 UTC 3 years ago

Очень хороший и понятный код :)

[info]skorohod

February 10 2009, 13:53:30 UTC 3 years ago

Это пока смехуечки. Вот основная программа будет гораздо толще, там в комментах устанешь строки придумывать :)

[info]aol985

February 10 2009, 12:37:11 UTC 3 years ago

главное в написании сложного кода -- ясные и понятные комментарии, причем такие, которые останутся понятными и потом тоже %)

[info]russos

February 10 2009, 12:39:56 UTC 3 years ago

+пятьсот!!!

[info]skorohod

February 10 2009, 13:52:20 UTC 3 years ago

Ага, а к jmp nahui и коммент можно не писать 8-)

[info]veldandi

February 10 2009, 13:16:22 UTC 3 years ago

Какой прелестный ассемблер... А регистров общего назначения там сколько, 16, 32?

[info]skorohod

February 10 2009, 13:51:35 UTC 3 years ago

32 рона, около 100 команд.

[info]veldandi

February 10 2009, 14:05:28 UTC 3 years ago

И РОНы там абсолютно равноправные? Я имею в виду, стек и IP вычитать не надо?
И косвенная адресация есть?

[info]skorohod

February 10 2009, 14:09:50 UTC 3 years ago

Роны не равноправные, но и стек с ипом вычитать не надо :) Там с ронами хитро, первые 16 не со всеми командами работают, последние шесть спарены. Косвенная адресация есть.

[info]veldandi

February 10 2009, 14:20:53 UTC 3 years ago

Вау

[info]ashar_kant

February 10 2009, 14:51:16 UTC 3 years ago

Если понадобится, удобно будет передавать программу другим программистам... :) хорошо, когда комментарии понятны.

[info]skorohod

February 10 2009, 14:53:26 UTC 3 years ago

Это да! Да и самому удобно разбираться, если что :)
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…