[ peca89 @ 03.09.2014. 19:36 ] @
Ne mogu nikako da nateram timer1 iz attiny85 mikrokontrolera da radi, za razliku od timer0 koji mi radi očekivano. Napisao sam najjednostavniju "LED bljeskalicu" koja menja vrednost izlaznog pina kada tajmer dostigne određenu vrednost. Čitajući datasheet, vidim da se ova dva tajmera razlikuju u nekim detaljima, ali ne mogu da otkrijem da li sam pogrešio negde u konfiguraciji tajmera 1.

Ovaj program radi lepo, LED bljeska

Code:

#include <inttypes.h>
#include <avr/io.h> 

int main()
{        
    DDRB |= (1 << PB2);    
    TCCR0B = ((1<<CS02) | (1<<CS00)); //prescaler 1/1024
   
    while(1)
    {
        if (TCNT0 >= 250) { 
            PORTB ^= (1 << PB2); 
            TCNT0 = 0; 
        }    
    }



A ovaj ne radi nikako, tj LED se ne pali

Code:

#include <inttypes.h>
#include <avr/io.h> 

int main()
{        
    DDRB |= (1 << PB2);    
    TCCR1 = ((1<<CS13) | (1<<CS11) | (1<<CS10)); //prescaler 1/1024
   
    while(1)
    {
        if (TCNT1 >= 250) { 
            PORTB ^= (1 << PB2);
            TCNT1 = 0;
        }    
    }



Mikrokontroler je konfigurisan da radi sa internim oscilatorom na 8 MHz. Fuse-ovi su 0xE2, 0xD7 i 0xFF. Propuštam li nešto u konfiguraciji tajmera 1 ?
[ goran_68 @ 03.09.2014. 20:35 ] @
Probaj da TCCR1 konfigurišeš ovako:

TCCR1 = ((1<<CS13) | (1<<CS12) | (1<<CS11) | (1<<CS10)); //prescaler 1/1024
[ peca89 @ 03.09.2014. 23:20 ] @
Tako se prescaler postavlja na 1/16384 valjda? Ta kombinacija je, u stvari, bila prvo što sam probao, ali ništa :(