Я хочу, чтобы timer2 мог использовать широтно-импульсную модуляцию. Я использую PIC18F87J11 с внутренним генератором 8 МГц. У меня есть минимальные знания о программировании PIC, поэтому я хочу знать, чего еще не хватает в моем коде, чтобы включить таймер.
#define TMR2_IF PIR1bits.TMR2IF
#define TMR2_IE PIE1bits.TMR2IE
#define TMR2_IP IPR1bits.TMR2IP
#define TMR2_CON T2CON
Допустим, это мой основной код на данный момент
void main()
{
TMR2_CON = 0b00000100 | CLOCK_DIVIDER_SETTING; // CLOCK_DIVIDER_SETTING = 4
TMR2_IF = 0;
TMR2_IE = 1;
TMR2_IP = 1;
while(1);
}
Остальной код, который я пока не знаю, куда разместить.
if(TMR2_IF)
{
printf("\r\nHello");
if(TMR2_IE)
{
TMR2_IF = 0;
}
}
Нужна ли мне программа обработки прерываний? Если да, как ее добавить? Помните, что моя цель — использовать ШИМ, который я еще не получил, но сейчас я хочу убедиться, что настройки для таймера 2 верны.
Чего еще не хватает?
Заранее спасибо!