Я довольно новичок в PIC32 и его программировании на C, поэтому я немного озадачен тем, как решить следующую проблему.Меня попросили включить и выключить светодиод PIC32, что я могу сделать хорошо;однако теперь я хочу добавить задержку 0,25 с между переключениями.Мне сказали, что я использую системные часы с частотой 72 МГц и частоту периферийной шины 36 МГц.Теперь я знаю, что Timer2 является таймером типа B, и что я должен сконфигурировать его для 16-битной операции без шлюза.Я подумал, что могу сначала установить начальные значения TMR2, PR2 и других битов в T2CON по мере необходимости, прежде чем устанавливать TON для начала времени, заканчивая его очисткой TON и сбросом начальных значений.
Хорошо, если это вышезвучит правильно, как я могу сделать это с C?Что я могу извлечь из справочного руководства, так это то, что оно может выглядеть примерно так:
T2CON = 0x0; // Stop Timer and clear control register,
// set prescaler at 1:1, internal clock source
TMR2 = 0x0; // Clear timer register
PR2 = 0xFFFF; // Load period register
T2CONSET = 0x8000; // Start Timer
Теперь, как я могу установить предварительную шкалу, а что нет, чтобы я мог добиться задержки 0,25 с?Я просто не очень хорошо разбираюсь в том, что мне нужно для C, и я до сих пор не настолько хорош в выполнении подобных вещей на ассемблере для начала ... Любое руководство приветствуется.Вот мой код:
#include <p32xxxx.h>
int main()
{
while(1)
{
PORTDbits.RD0 = 1; // Turns LED On?
// Delay...?
PORTDbits.RD0 = 0; // Turns LED Off?
// Delay...?
}
return 0;
}
Заголовочный файл: p32mx360f512l.h
, если это имеет какое-либо значение.