Например TDA7294

Форум РадиоКот • Просмотр темы - Прерывания на Atmega
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 14:10:31

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Прерывания на Atmega
СообщениеДобавлено: Чт дек 14, 2017 08:50:53 
Родился

Зарегистрирован: Пн ноя 06, 2017 12:52:51
Сообщений: 5
Рейтинг сообщения: 0
Здравствуйте. Была поставлена задача сделать одно внутреннее и одно внешнее прерывание и плюс генерация ШИМ сигнала. Я сделал все работало в протеусе. Но при проверке на стенде программа отказывается работать. Я не смог найти ошибок. У меня мало опыта в программирование микроконтроллеров. Не судите строго))

.include "m16def.inc"

.ORG 0
RJMP _START
.ORG $002
RJMP INT0_COMP
.org $012
RJMP TIM0_OVF
//----------
_START:
SEI
LDI R18,HIGH(RAMEND)
OUT SPH,R18
LDI R19,LOW(RAMEND)
OUT SPL,R19


//---------- стека
LDI R30,0b00000001
OUT DDRC,R30
OUT DDRA,R30

LDI R29,0b00000100
OUT PORTD,R29

LDI R29,0b10000000
OUT DDRD,R29
//----------

LDI R22,0b00000101
OUT TCCR0,R22
LDI R22,0b00000001
OUT TIMSK,R22
//----------

LDI R22,0b01000000
OUT GICR,R22//установкой второго бита в GICR разрешает внешнее прерывание INT0
LDI R23,0b00000010
OUT MCUCR,R23//возникновение сигнала на INT0 по спадающему фронту сигнала на выводе
//---------- INT0 на прерывание
LDI R29,0x80
OUT OCR2,R29

LDI R20,0b01110011
OUT tccr2,R20

//----------
SEI//разрешение глобальных прерываний

_PROG_INT0:
CPI R25,0b00000110
BREQ _LED

CPI R27,0b00001110
BReQ _LED_2
RJMP _PROG_INT0
_LED:
LDI R26,0b00000001
OUT PORTC,R26
LDI R22,0b00000000
OUT GICR,R22
RJMP _PROG_INT0
_LED_2:
LDI R21,0b00000001
OUT PORTA,R21
//----------
LDI R22,0b00000000
OUT TCCR0,R22
LDI R22,0b00000000
OUT TIMSK,R22
//----------
RJMP _PROG_INT0

//----------
INT0_COMP:
CLI
SBIC PIND,2
RJMP INT0_COMP
INC R25
RJMP VIX

TIM0_OVF:
CLI
INC R27
RJMP VIX

VIX:
SEI
RETI


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Прерывания на Atmega
СообщениеДобавлено: Чт дек 14, 2017 14:11:50 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2808
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18094
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
сначала убери лишнее.
1. в _"START:" 2 раза SEI.
2. внутри прерываний CLI и SEI не нужны - прерывание это делает аппаратно.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y