ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
1056817 Топик полностью
Гyдвин, волшебник (30.11.2020 21:58, просмотров: 414) ответил Tpoeшник на ATMega32U2. Работаю с таймером в режиме генерации 125кHz на выходах ОС1А, OC1B. Переворачиваю вывод перед запуском чтоб получить сигнал на выводах в противофазе. Понадобилось включать/отключать генерацию. Отключить нет проблем, а включается в противофазе!!! со второго раза. Где я туплю. Спасибо!
m328. Противофазный ШИМ с шагом 4% : 
void power(char power) // подпрограмма 125 KHz rf модулятора (power: 0 - выключен 25 максимальная мощность )
{
OCR1AL=power;  //25 - on  0 - off
OCR1BL= 50-power;  //25 - on  50- off
}


void rfid_init(void)
{

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 12500000 Hz
// Mode: Ph. correct PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Inverted
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xB2;
TCCR1B=0x11;
TCNT1H=0x00;
TCNT1L=0x0F;
ICR1H=0x00;
ICR1L= 50;   //  50 - 125 kHz
OCR1AH=0x00;
OCR1AL=0x00;  //25 - on  0 - off
OCR1BH=0x00;
OCR1BL= 50;  //25 - on  50- off

}




.....


       power(POW_L); //on
       power(0); //off


....