People, I am still stuck at this.
I tried port manipulation, but nothing seems to happening. What mode should I be using to get a near perfect square wave of 125kHz?
I suspect my timer/counter settings are wrong.
//DDRB &= ~(1<<PB0);//pin 8 input //ICP1
//DDRB &= ~(1<<PB1);
//PORTB |= (1<<PORTB1);//PORTB Input Pullup
//DDRB &= ~(1<<PB
//pinMode(9, OUTPUT);//oc1a
//DDRD &= ~(1<<PD2);//portd pin2 input
//PORTD |= (1<<PD2);
//pinMode(interrupt_pin,INPUT_PULLUP);
//pinMode(dataIn,INPUT);
pinMode(PB1,INPUT_PULLUP);
Serial.begin(115200);
//attachInterrupt(8, rising, RISING);
//delayMicroseconds(1000);
Serial.println("AVR Initialization");
delay(50);
//Serial.print(buffer_in);
cli();
//Timer 1 interrupt at 125kHz
//TCCR1A = 0;
//TCCR1B = 0;
//TCNT1 = 0;
ICR1 = 63;
//turn on CTC mode
//TCCR1A |= (0<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)|(0<<WGM11)|(0<<WGM10); //normal 00//toggle 01//low level 10//high level 11
//TCCR1B |= (1<<ICNC1);
TCCR1B |= (1<<ICNC1)|(1<<ICES1)|(1<<WGM13)|(1<<WGM12); //FAST MODE - 8 bit Mode 5
//Set prescaler 8
//-------> no prescaler - CS10 - 1; 64 prescaler - CS11, CS10 - 1 <-----//
TCCR1B |= (0<<CS12)|(0<<CS11)|(1<<CS10); //256 prescaler
//OCR1A = 127; //[(16000000/(125000*8)] - 1//top value 8 BIT
//OCR1B = 63;
//ICR1 = 63;
//TCNT1 = 0;
//enable timer compare interrupt
//TIMSK1 |= (1<<ICIE1)|(1<<OCIE1A)|(1<<TOIE1);
TIMSK1 |= (1<<ICIE1)|(1<<TOIE1);
sei();