Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PIC][C] Ustawianie Timera do multiplexera

robert-gd 25 Lut 2011 09:47 729 1
  • #1 25 Lut 2011 09:47
    robert-gd
    Poziom 10  

    Witam serdecznie,

    Mam problem z ustawieniem Timera w kompilatorze CSS C aby obsłużyć multiplexowany wyswietlacz 7 segmentowy.

    Przy takich ustawieniach:

    Code:

    #USE DELAY( CLOCK=4000000 ) /* Using a 4 Mhz clock */

    #FUSES XT,NOWDT,NOPROTECT,NOPUT

    setup_timer_0 ( RTCC_DIV_256 | RTCC_INTERNAL );
    set_timer0 (0);
    enable_interrupts (GLOBAL );
    enable_interrupts (INT_RTCC);

    #INT_RTCC
    TIMER_INTERRUPT ( )
    {
    if(minus!=1) {wyswietl_xy(3,11);}
    delay_us(2640);
    if(dziesiatka!=0) {wyswietl_xy(2,dziesiatka);}
    delay_us(2640);
    wyswietl_xy(1,cyfra);
    delay_us(2640);
    wyswietl_xy(1,10);
    delay_us(2640);
    wyswietl_xy(0,ulamek);
    delay_us(2640);
    }


    Natomiast udaje mi sie z powodzeniem zmusic do dzialania wyswietlacz przy ustawieniach i ustawieniu opoznien na 330 us ale niestety mam problem z czytaniem temperatury z DS18b20
    Code:

    setup_timer_0 ( RTCC_DIV_1 | RTCC_INTERNAL );
    set_timer0 (0);
    enable_interrupts (GLOBAL );
    enable_interrupts (INT_RTCC);


    Moze ktos mi pomoc w ustawieniu tego ?

    0 1
  • #2 26 Lut 2011 09:40
    adamwesola
    Poziom 24  

    Dla TMR0 są 3 bity do ustawienia podzielnika PS0,PS1,PS2 , a więc 8 możliwych wartości i odpowiadające im stopnie podzialu.

    Podając 7 otrzymujesz podzielnik 1:256
    itd
    itd
    Podając 0 masz podzielnik ustawiony 1:2 i niższych wartości dla timer0 niema.
    Ten zapis RTCC_DIV_1 oznacza, wg. mojego rozumienia, nieprawidłowa wartość, i (spekuluje) być może kompilator , przydziela to waczdogowi.

    0