Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
ATmega AVR Питание микроконтроллера https://www.cyberforum.ru/avr/thread1705422.html
Всем привет. Так как я новобранец, то начал разбираться, как правильно питать свой МК - ATmega64. Почитал как лучше всего питать МК и нашел такой пример. GND и VCС - питание МК. AGND и AVCC...
ATmega AVR Atmel Ice & Debug
Использую AVR Studio 7 и Atmel Ice в режиме дебаг, реализовал настройку усарта и передаю по одному байту в ком порт компьютера, проблема в том что когда отслеживаю с компьютера ком порт, то мне...
Atmega16 ATmega AVR
помогите пожалуйста! есть микроконтроллер atmega16. через ассемблер на PORTC подаем комбинацию 00110100, на порт DDRC подаем 01100101. Вопрос: что будет на выходах PC0-PC7? единица на порте ddrc...
ATmega AVR MAX7219 Драйвер + 7 сегментов показывет чушь Здравствуйте. Кто нибудь работал с драйвером MAX7219. Пытаюсь вывести данные : время, температуру, дату. Показывает в железе чушь. В протеусе нормально работает. Не могу разобратся с типом... https://www.cyberforum.ru/avr/thread1701841.html
ATmega AVR Русские символы в библиотеке https://www.cyberforum.ru/avr/thread1701529.html
Есть некая функция LCD_DRAW_STRING для рисования текста на дисплее. В главной функции Main пишу: LCD_DRAW_STRING("Привет!",x,y); LCD_DRAW_STRING("Hello!",x,y+20); Выводит нормально обе строки. А...
Подключение LCD на HD44780 через I2C расширитель PCF8574 к Atmega8 ATmega AVR
Ребятки, срочно нужна помощь, голова скоро лопнет(( Нужно подключить сие чудо (lcd) к atmega8. В сети нашел единственный мануал -...
ATmega AVR МК уходит в ребут после разрешения прерываний
Доброго! Имеется код:#include <avr/io.h> #include <avr/delay.h> #include <avr/interrupt.h> #define F_CPU 16000000UL #define USORT_SPEED 9600 #define BAUD ((F_CPU/(USORT_SPEED*16UL))-1) ...
ATmega AVR АВР студио для новичков Хочу освоить программирование МК с помощью AVR Studio на ассемблере. Существуют ли книги для чайников, чтобы все было понятно расписано для новичков? P.S. Пожалуйста, не отсылайте меня в Google! Я... https://www.cyberforum.ru/avr/thread1700345.html
ATmega AVR Бегущие огни https://www.cyberforum.ru/avr/thread1698843.html
Привет всем!Имеется вот такой код для микроконтроллера! #include <iom8535v.h> #include <macros.h> void port_init(void) { PORTD = 0x01; DDRD = 0xFF; }
ATmega AVR Преобразование *.hex в *.c Здравствуйте, подскажите пожалуйста, можно или нет файл машинного кода программы для микроконтроллера (*.hex) преобразовать в программный код на языке программирования C++, ну или хотя бы ассемблер... https://www.cyberforum.ru/avr/thread1698796.html
generation472
19 / 19 / 7
Регистрация: 04.11.2011
Сообщений: 564
Записей в блоге: 1
12.04.2016, 11:54  [ТС] 0

МК не уходит в прерывание

12.04.2016, 11:54. Просмотров 1070. Ответов 9
Метки (Все метки)

Ответ

Mirmik, да я проверил, регистр Pin считывает 0 и единицу но не уходит в прерывание

Добавлено через 11 минут
Mirmik,
Вот минимизировал чтоб не было лишнего
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
 * Itnr0.c
 *
 * Created: 12.04.2016 11:47:31
 */ 
#define F_CPU 16000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
 
unsigned char temp;
 
#define   BitIsClear(reg, bit)    ((reg & (1<<bit)) == 0)
#define   BitIsSet(reg, bit)       ((reg & (1<<bit)) != 0)
 
///Обработка SYNK2, и SS Для USI
ISR (PCINT0_vect){
    
    temp=0;
    if(BitIsSet(PINE,7)){
        //if(SYNK1==0){PORTA&=~(1<<0);SYNK1=1;}else{PORTA|=(1<<0);SYNK1=0;}
        //SpiTransfer();
    }
    
    
}
 
ISR (PCINT1_vect){
 
    temp=0;
    if(BitIsSet(PINB,6)){
        //if(SYNK2==0){PORTA&=~(1<<1);SYNK2=1;}else{PORTA|=(1<<1);SYNK2=0;}
        //SpiTransfer();
    }
    
}
 
 
/*
Настройка прерывания для сигналов SYNK1 и SYNK2
*/
void InitInterruptSynk(){
    
    ////Настройка прерывания
    
    
    EIMSK=0b11000000;///включить прерывания на группах PCIE1 и PCIE0
    //unsigned char EM=EIMSK;
    //EIMSK|=(1<<PCIE0);
    //  EIMSK|=(1<<PCIE1);
    PCMSK0|=(1<<7);///Включить прерывание на контакте PE7
    PCMSK1|=(1<<6);///Включить прерывние на контакте PB6
 
    //PCMSK0|=(1<<3);///Включить прерывание на коньакте PE3
    
    DDRE&=~(1<<PE7);/// PE7 настроен на вход сигнала
    PORTE|=(1<<PE7);
    
    DDRB&=~(1<<PB6);/// PB6 настроен на вход сигнала
    PORTB|=(1<<PB6);/// Резистор
    
    MCUCR&=~(1<<PUD);///НАСТРОЙКА РЕЗИСТОРОВ
    //
}
 
 
int main(void)
{
    
    
    InitInterruptSynk();
    sei();
    while (1) 
    {
        asm("nop");
    }
}


Вернуться к обсуждению:
МК не уходит в прерывание
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2016, 11:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прерывание
после запуска программы(изменение системной даты и времени) после того как я ввожу новые значения...

Прерывание 10h
Здравствуйте . Такой вопрос : как через прерывание вывести символ ? ( вроде через функцию 11h) . ...

Прерывание скрипта
Навеяно статьёй http://habrahabr.ru/post/151155/ Год назад я решил побаловаться с ген....

Прерывание от RTC
Добрый день уважаемые форумчане. Пытаюсь завести прерывание по аларму на STM32T-Dyscovery.при...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.