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

[bascom] regulacja szerokości impulsu

Tomekddd 07 Sty 2012 20:46 1256 2
REKLAMA
  • #1 10363927
    Tomekddd
    Poziom 23  
    Witam, buduję czujnik IR i muszę pokombinować z wypełnieniem impulsów, mam programik który generuje 36kHz ale za nic nie wiem jak zmienić szerokość tego sygnału. Proszę o jakieś rady

    $regfile = "attiny13.dat"                                   'procesor Attiny13
    
    $crystal = 1200000                                          'niższe taktowanie, CKDIV=0
                                                                 'przy zmianie CKDIV = 1
                                                                 'zmienić wartośc na 9600000
    
    Config Portb.4 = Output                                     'output czujnika prawego
    Config Portb.3 = Output                                     'output czujnika lewego
    
    
    Config Portb.1 = Output                                     'OC0B, wyjście generujące
                                                                 'częstotliwość dla diody
    
    Config Pinb.2 = Input                                       'wejście sygnału z czujnika prawego
    Config Pinb.0 = Input                                       'wejscie sygnału z czujnika lewego
    
    
    
    
    Ocr0b = 16                                                  'obliczyć z działania:
                                                                'taktowanie / (częstotliwość * 2)
                                                                'np. 1200000 / (36000 * 2)
    
    Ocr0a = 16                                                  'j.w.
    
    Tccr0a = &B00010010                                         'rejestry timera, przepisać
    
    Tccr0b = 1                                                  'j.w.
    
    
    Set Portb.2                                                 'rezystor podciągający
    Set Portb.0                                                 'wejście czujnika
    
    
    Do                                                          'pętla
    
    
    If Pinb.0 = 1 Then Portb.3 = 1                              'warunki na widzenie czujnika lewego
    If Pinb.0 = 0 Then Portb.3 = 0
    
    If Pinb.2 = 1 Then Portb.4 = 1                              'warunki widzenia czujnika prawego
    If Pinb.2 = 0 Then Portb.4 = 0
    
    
    Delay                                                       'opóźnienie zmniejszające
    
                                                             'zakłócenia
    
    
    Loop                                                        'koniec pętli
    
    End                                                         'koniec programu
  • REKLAMA
  • #3 10364581
    Krauser
    Poziom 26  
    Patrzymy do datasheeta i widać, że potrzeba ustawić mode 7, gdzie OCR0A = 33 ustala częstotliwość, a OCR0B wypełnienie.
    TCCR0A = &B00100011
    TCCR0B = &B00001001
REKLAMA