Где накосячил? Спсб.
CODE
void config_sys(void){
//установить направление
DDRB=((0<<DDB0) | (0<<DDB1) | (1<<DDB2) | (0<<DDB3) | (0<<DDB4) | (0<<DDB5));
//установить подкладку
PORTB=((0<<PB0) | (0<<PB1) | (1<<PB2) | (0<<PB3) | (0<<PB4) | (0<<PB5));
//отключить лишнее IO
DIDR0=((1<<ADC0D) | (0<<ADC1D) | (1<<ADC2D) | (1<<ADC3D) | (1<<AIN0D) | (1<<AIN1D));
//отключить WDT!
__watchdog_reset();
MCUSR=0;
WDTCR=((0<<WDTIE)|(0<<WDP3)|(1<<WDCE)|(1<<WDE)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0)); //16ms
WDTCR=((0<<WDTIE)|(0<<WDP3)|(0<<WDCE)|(0<<WDE)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0)); //16ms
GTCCR= ( (1<<TSM) | (1<<PSR10)); //
TCCR0A= ( (0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (0<<WGM00)); //CTC
TCCR0B= ( (0<<FOC0A) | (0<<FOC0B) | (0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00)); // 1/1024
TIMSK0= ( (0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0)); //
OCR0B=OCR0A=93; //100Гц
ADCSRA= ( (1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (1<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0) ); //
ADCSRB= ( (0<<ACME) | (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0) ); //запускать конверсию вручную
#define ADJS_IN ((0<<REFS0) | (0<<ADLAR) | (1<<MUX1) | (1<<MUX0)) //температуро
ADMUX = ADJS_IN ;
ACSR = ( (0<<ACD) | (0<<ACBG) | (0<<ACO) | (1<<ACI) | (1<<ACIE) | (0<<ACIS1) | (0<<ACIS0) ); //запускать конверсию от TC0compare
GTCCR= ( (1<<TSM) | (0<<PSR10)); // Фперёд!
MCUCR= _sleep_type_idle();
CLKPR =(1<<CLKPCE);
CLKPR =((0<<CLKPS0)|(0<<CLKPS1)|(0<<CLKPS2)|(0<<CLKPS3)|(0<<CLKPCE));//1
}
void main(void){
config_sys();
while(1){
if ( ! (ADCSRA & (1<<ADSC)) ){
data_TEMPRADJS =ADC;
}
}
}
#pragma vector=ANA_COMP_vect
__interrupt void anarout(void){ // !!!!!!!!!!!!!!! для прповерки вот тут включает OUT
if (dbg ++ & 0x01)
TRIAC_ON(); // тут включает OUT
else
TRIAC_OFF();
}
//установить направление
DDRB=((0<<DDB0) | (0<<DDB1) | (1<<DDB2) | (0<<DDB3) | (0<<DDB4) | (0<<DDB5));
//установить подкладку
PORTB=((0<<PB0) | (0<<PB1) | (1<<PB2) | (0<<PB3) | (0<<PB4) | (0<<PB5));
//отключить лишнее IO
DIDR0=((1<<ADC0D) | (0<<ADC1D) | (1<<ADC2D) | (1<<ADC3D) | (1<<AIN0D) | (1<<AIN1D));
//отключить WDT!
__watchdog_reset();
MCUSR=0;
WDTCR=((0<<WDTIE)|(0<<WDP3)|(1<<WDCE)|(1<<WDE)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0)); //16ms
WDTCR=((0<<WDTIE)|(0<<WDP3)|(0<<WDCE)|(0<<WDE)|(0<<WDP2)|(0<<WDP1)|(0<<WDP0)); //16ms
GTCCR= ( (1<<TSM) | (1<<PSR10)); //
TCCR0A= ( (0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (0<<WGM00)); //CTC
TCCR0B= ( (0<<FOC0A) | (0<<FOC0B) | (0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00)); // 1/1024
TIMSK0= ( (0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0)); //
OCR0B=OCR0A=93; //100Гц
ADCSRA= ( (1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (1<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0) ); //
ADCSRB= ( (0<<ACME) | (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0) ); //запускать конверсию вручную
#define ADJS_IN ((0<<REFS0) | (0<<ADLAR) | (1<<MUX1) | (1<<MUX0)) //температуро
ADMUX = ADJS_IN ;
ACSR = ( (0<<ACD) | (0<<ACBG) | (0<<ACO) | (1<<ACI) | (1<<ACIE) | (0<<ACIS1) | (0<<ACIS0) ); //запускать конверсию от TC0compare
GTCCR= ( (1<<TSM) | (0<<PSR10)); // Фперёд!
MCUCR= _sleep_type_idle();
CLKPR =(1<<CLKPCE);
CLKPR =((0<<CLKPS0)|(0<<CLKPS1)|(0<<CLKPS2)|(0<<CLKPS3)|(0<<CLKPCE));//1
}
void main(void){
config_sys();
while(1){
if ( ! (ADCSRA & (1<<ADSC)) ){
data_TEMPRADJS =ADC;
}
}
}
#pragma vector=ANA_COMP_vect
__interrupt void anarout(void){ // !!!!!!!!!!!!!!! для прповерки вот тут включает OUT
if (dbg ++ & 0x01)
TRIAC_ON(); // тут включает OUT
else
TRIAC_OFF();
}