Wpis z mikrobloga

#arduino #avr

Trochę kodu jest, ale pytanie dotyczy w sumie 2 linijek. Chodzi o zakomentowane //TCCR0A = 0 i //TCCR0B = 0. W dokumentacji atmegi 2560 czytam, że domyślne wartości tych rejestrów to właśnie 0 (0b00000000), a jednak odkomentowanie tych linijek zmienia działanie programu (działa wtedy poprawnie, bez nich generuje zbyt małą częstotliwość, 2500 zamiast 200000). Czemu tak? Może głupie pytanie, ale nie jestem zbyt zaawansowany ;)



void
```**```
setup()

{

//TCCR0A = 0;// wyzeruj, ale po co jak domyślnie jest 0? ( ͡° ʖ̯ ͡°)

//TCCR0B = 0;//

TCCR0B |= (1<
TCCR0A |= (1 << WGM01); // clear timer on compare

TIMSK0 |= (1 << OCIE0A); //wlaczenie przerwania przy zrownaniu z OCR0A

TCNT0 = 0;

OCR0A = 49;

DDRA=0b11111111;

PORTA=90;

sei();

// Add your initialization code here

}

``````

// The loop function is called in an endless loop

```**```
void
```**```
loop()

{

//Add your repeated code here

}

``````

ISR(TIMER0_COMPA_vect)

{

```**```
if
```**```
(PORTA==0)

PORTA=90;

```**```
else
```**```
PORTA=0;

TCNT0 = 0;

}