Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Dekodowanie kodu RC5 w C bez uzycia timera

Anderian 12 Oct 2006 13:27 1704 4
  • #1
    Anderian
    Level 18  
    moze ktos z Was ma dzialajacy dekoder sygnalu rc5 ktory nie wykorzystuje timera ??

    moj niestety po zmianie polecenia:
    Code:
    #define WAITFORTIMER()  { while ( timerflag == 0); timerflag = 0; }
    

     volatile timerflag; 

    SIGNAL(SIG_OVERFLOW0)  //przepelneinie timera2
    {
        timerflag = 1;               // set global variable
        TCNT0 = 0xF0;         // reset counter to get this interrupt again
    }


    na
    Code:

    #define WAITFORTIMER()    { for(licznik=0; licznik<163; licznik++);}


    przestal dzialac a niby opoznienia sa takie same -mierzylem miernikiem z pomiarem czestotliwosci (na wewnetrznym oscylatorze 9,6Mhz)

    moze ktos wie jak dokladnie zamienic albo odmierzyc 111us ?? bez timera
  • #2
    greatlukas
    Level 14  
    a może tak:
    _delay_us(111);

    (z biblioteki delay.h)
  • #3
    Anderian
    Level 18  
    standardowa w winavr ??
  • Helpful post
    #4
    greatlukas
    Level 14  
    tak, w katalogu WinAVR\avr\include\util
    tylko musisz go wyedytować i ustawić taki kwarc jakiego używasz, standardowo jest # define F_CPU 1000000UL
    no i poczytaj komentarze, bo do różnych kwarców, są rózne maxymalne wartości jakie można podać do tej funkcji i wtedy może być potrzebne np użycie:
    _delay_us(60);
    _delay_us(51);
    żeby uzyskać 111us
  • #5
    Anderian
    Level 18  
    dziala dzieki