logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Odmierzanie 12.5us na ATMEGA8 8MHz w Bascom bez przerwań

janwladeczek 14 Wrz 2006 16:57 1907 4
REKLAMA
  • #1 3019822
    janwladeczek
    Poziom 11  
    Posty: 8
    Ocena: 1
    Witam.
    Może ktoś napisać jak odmierzyć 12.5us? Bo potrzebuje te 12.5us do wygenerowania półokresu przebiegu 40KHz. Chciałbym zmieniać stan pinu na przecieny co 12.5us.
    Da się to zrobić bez przerwań?


    Sprzęt to ATMEGA 8 z kwarcem 8MHz, program piszę w Bascomie

    Będę wdzięczny za pomoc
  • REKLAMA
  • #2 3019931
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    To jest dokladnie 100 taktow zegara 8MHz czyli ustawiasz tryb CTC z preskaleram =1 a wyjscie jako "zmieniaj na przeciwny".
  • REKLAMA
  • #3 3023108
    janwladeczek
    Poziom 11  
    Posty: 8
    Ocena: 1
    Czytam i czytam o tym trybie ctc i wiem tylko tyle że trzeba wpisać do rejestru OCR1A wartość 100 i jeśli licznik doliczy do wartości w OCR1A to ma zrobić toggle czyli zmienić stan wyjścia OC1A na przeciwny.

    Problem w tym, że nie wiem jak to zapisać w Bascomie.

    Czy to ma być jakoś tak??

    $regfile = "m8def.DAT"
    $crystal = 8000000
    
    Config Lcdbus = 4
    
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.6 , Rs = Portd.4
    
    Config Pinb.1 = Output
    
    Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
    Compare1a = 100                                             '100 taktow da 125ns
    
    Do
    ' co tu teraz wpisac?
    Loop
    End


    Proszę o jakieś podpowiedzi bądź kawałek kodu co ma być dalej, żeby generować te nieszczęsne 40kHz

    Pozdrawiam
  • REKLAMA
  • #4 3023185
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Nie znam mozliwosci baskoma i jak to w nim powinno wygladac ale zawsze mozna zejsc do nizszego poziomu, ale mysle ze w helpie powino cos byc.
  • Pomocny post
    #5 3023491
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    janwladeczek napisał:
    ...Proszę o jakieś podpowiedzi bądź kawałek kodu co ma być dalej, żeby generować te nieszczęsne 40kHz ...

    To już wszystko :)
    Na pinie PB1 masz przecudne 40kHz , jeśli faktycznie procek jest popędzany 8MHz.
    W ramach testu , możesz w pętli głównej napisać:
    
    Do
    Set Tccr1a.com1a0           'dołącz oc1a do pinu
    Wait 5                             'przez 5 sekund fala 40kHz
    Reset Tccr1a.com1a0        'odłącz oc1a od pinu
    Wait 5                             'przez kolejne 5 "cisza"
    Loop
    


    Piotrek
REKLAMA