#c #pic #pwm
#c #рис #шим
Вопрос:
Впервые задаю вопрос здесь, поэтому, пожалуйста, простите за любые ошибки. Если потребуется какая-либо другая информация, я с радостью предоставлю
Я разрабатывал проект, который требует использования модуля PWM, но мне совершенно не везет с получением от него выходных данных. Раньше я без проблем использовал модули CCP и PWM на разных моделях PIC, но теперь внезапно я наткнулся на кирпичную стену с 67K40.
Я сократил свой код до самого необходимого, так как даже если я загружу это в PIC отдельно от остальной части моей программы, я не увижу никаких выходных данных
void main(void)
{
TRISCbits.TRISC5 = 0; //Set TRIS of C5 to output
LATCbits.LATC5 = 0; //Set output value of C5 to 0
RC5PPS = 0x6; //Connect C5 to CCP2 output
CCP2CON = 0x1C; //Set CCP4 to PWM mode, left aligned
CCPR2L = 0xC0; //Set CCP2 low duty cycle register to 100%
CCPR2H = 0xFF; //Set CCP2 high duty cycle register to 100%
CCPTMRS0bits.C2TSEL = 0x0; //set CCP2 timer source to timer 2
PIE7bits.CCP2IE = 0; //Turn off CCP2 interrupt
T2RST = 0x00;
T2PR = 0xFF; //Set timer 2 PR register to FF
T2TMR = 0x00; //Set timer 2 count register to 0
PIE5bits.TMR2IE = 0; //Set timer 2 overflow interrupt off
T2HLT = 0x00;
T2CLKCON = 0x01; //Set timer 2 clock source to Fosc/4
T2CON = 0xD0; //Set timer 2 on, 1:32 prescaler
CCP2CONbits.EN = 1; //Turn on CCP2
while (1)
{
}
}
Огромное вам спасибо за любую помощь или указание правильного направления
Комментарии:
1. Вы уверены, что PIC «запущен»?
2. Я запустил его с другими инструкциями, такими как простое мигание светодиодом ввода-вывода и так далее, Чтобы убедиться, что вся система по-прежнему реагирует. Насколько я могу судить, все работает нормально, хотя у меня всегда есть возможность ошибиться
3. Просто попробовал еще раз с увеличивающейся переменной внутри цикла while, просто чтобы убедиться, что не происходит какого-то странного фонового режима сна, но безуспешно, ШИМ-выхода по-прежнему нет. Я действительно озадачен