Диммер на BTA26800B вкоючается через МОС3063.
Ноль детектят пара РС817.
Мега128 запитана от своего БП.
Кварц 6 МГц.
Прерывание от "нуля" на INT0.
Включение триака ногой PA.0 (DDRA.0=1).
Привожу "куски" кода.
Код: Выделить всё
#include <mega128.h>
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
TCCR1B=0x01; // Timer1 ON
}
// Timer1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
PORTA.0=1; //TRIAK ON
}
// Timer1 output compare B interrupt service routine
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
PORTA.0=0; //TRIAK OFF
TCNT1H=0x00; // Timer1 CLEAR
TCNT1L=0x00; //
TCCR1B=0x00; //TIMER1 OFF
}Код: Выделить всё
TCCR1B=0x01; // Делитель на 8
...
OCR1AH=0x0F; //Прерывание через 5мс
OCR1AL=0xA6; //
OCR1BH=0x0F; //Прерывание еще через 0,1мс
OCR1BL=0xF1; //
Даже прогу слепил на делфи для расчета задержек
ИТОГ:
На Вкл/Выкл ноги лампочка загорается и гаснет, соответственно...
При попытке "резать" синусы, может вкл. и не выкл (и наоборот, или просто мерцает...
Осциллографа нет (
Может в железе проблема? У МОС3063, вроде свой какой-то zero detector есть.
Жду помощи, господа... Недели 2 маюсь (