Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 04.12.2017
Сообщений: 46
1

Как по синтаксису оформить правильно прерывание для PIC12F683 в MPLAB X IDE

11.10.2019, 23:00. Просмотров 1642. Ответов 2

Подскажите, как для PIC12F683 в MPLAB X IDE на языке Си правильно оформить прерывание Таймера2. Разрабатываю схемку с ШИМ для соленоида. Почитал в инете, есть примеры кода со строкой
C++
1
void interrupt myISR(void)
но у меня выводит ошибки... Почитал "MPLAB_XC8_C_Compiler_User_Guide_for_PIC" и "MPLAB_XC8_Getting_Started_Guide", нашёл там и пример приведённый раньше и вот этот: "void __interrupt(irq(TMR0),high_priority) tc0Int(void)" , но ничего не помогает.
Скажите как написать правильно, что я делаю не так. Если можно, то приведите рабочий код с этим прерыванием
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2019, 23:00
Ответы с готовыми решениями:

Как «правильно» оформить презентацию для программы?
Всем привет! Сделал программу на конкурс, теперь нужно сделать презентацию к программе чтоб...

Как правильно оформить Семантическое Ядро для веб программиста
Привет всем. Ребят, подскажите плиз. Я начинающая в оптимизации и продвижении веб-сайтов. Изучаю...

MPLAB X IDE. Руководство на русском
Доброе время суток. Учусь программировать PIC контроллеры. Использую среду MPLAB v5.70.40 (та...

Создать программную временную задержку в MPLAB IDE
Создать программную временную задержку на 430 мкс в MPLAB IDE

2
Верховный Тюлень
47 / 14 / 3
Регистрация: 29.03.2015
Сообщений: 204
20.10.2019, 22:02 2
алексей байдин, я могу ошибаться, но вроде бы младшие PIC'и имеют только лишь один вектор для прерываний от всей периферии. Т.е. функция-обработчик прерываний будет одна для любого прерывания, а дальше уже в зависимости от разрешенных прерываний нужно проверять флаги (например, если разрешены одновременно прерывания от АЦП, компаратора и таймера2).

Вот небольшой кусочек кода:
C
1
2
3
4
5
6
7
8
9
10
void interrupt isr(void)  // Обработчик прерываний (один для всех)
{
   if(TMR2IF) // Проверка флага прерывания TMR2
      FunctionTMR2Interrupt(); // Обработка прерывания от таймера 2
 
   if(TMR1IF) // Проверка флага прерывания TMR1
      FunctionTMR1Interrupt(); // Обработка прерывания от таймера 1
 
   //...и так далее...
}
В средних PIC'ах есть двухприоритетные прерывания.
0
1 / 1 / 0
Регистрация: 04.12.2017
Сообщений: 46
05.11.2019, 09:21  [ТС] 3
Спасибо за ответ, но мне подсказали в другом форуме, что нужно оказывается было поменять настройки в MPLAB: Project Properties --> XC8 Global Optoins --> Global options --> С standart. У меня было С99, а нужно поменять на С90 и тогда всё работает отлично. Мало ли кому пригодиться...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2019, 09:21

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

Программирование PIC микроконтроллеров в среде MPLAB IDE
нужна помощь в выполнении одного задания,кто может помочь,откликнитесь!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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