Код: Выделить всё
.def temp = r16
ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,HIGH(RAMEND)
out SPH,tempКод: Выделить всё
.def temp = r16
ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,HIGH(RAMEND)
out SPH,tempGudd-Head писал(а):ldi tmp, high(RAMEND); Set Stack Pointer to top of RAM
out SPH, tmp;
ldi r16, low(RAMEND);
out SPL, tmp;
Код: Выделить всё
SETBIT(DDRD,4);//на выход
SETBIT(DDRD,5);//на выход
TCCR1A=0xA1;//
TCCR1B=0x0A;//MODE 5 - FAST PWM 8 BIT
Код: Выделить всё
ldi Temp1, 0b10000000 ;Глобальное разрешение прерываний
out SREG, Temp1Мikа писал(а):чтобы изменение потенциала на RESET вызывало прерывание?
это "прерывание" вызывается автоматически, его не надо настраивать))) PC (Program Counter) устанавливается на адрес = 0 в памяти программ и программа начинается сначала)) по-человечески это называется сброс микроконтроллера)Мikа писал(а):использовать прерывание по RESET, что надо сделать?
можно сделать на ногу INT0? Но что там надо прописать в программе кроме SREGa (а надо ли в нём что-то писать?) и sei. Ну и, естесственно, установки метки int_0: на обработчик прерывания.Мikа писал(а):Но что там надо прописать в программе кроме SREGa (а надо ли в нём что-то писать?) и sei.
Код: Выделить всё
ldi Temp, 0b1000000
out SREG, Temp
Мikа писал(а):Следовательно, последовательно эти 2 команды использовать не надо, достаточно одной?
Мikа писал(а):as described in the instruction set reference. Я перевёл это на русский, но что это значит я не понял.
Мikа писал(а):1). При вызывании прерывания, бит 7 "чистится" аппаратно. Т.е. во время обработки этого прерывания, другое прерывание уже сработать не сможет?
Код: Выделить всё
ldi Temp, 0b1000000
out SREG, Temp
Код: Выделить всё
in tmp, SREG
ori tmp, 0b10000000
out SREG, tmpДа, верно, достаточно одной SEI/CLIСледовательно, последовательно эти 2 команды использовать не надо, достаточно одной?
Gudd-Head писал(а):В любом случае, если во время обработки первого прерывания произошло второе, то от него останется флаг.
ibiza11 писал(а):НЕ ЭКВИВАЛЕНТЕН команде SEI.
Да, верно. У каждого периферийного модуля заведен отдельный регистр под флаги прерываний, аббревиатура которого обычно оканчивается на ..FR(Flag Register) или ..SR(Status Register), но бывают и исключения... наверное))))) не помню сейчас.Мikа писал(а):есть регистры с флагами других прерываний?