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

[ATMEGA16] [BASCOM] PWM Zegarek na Timer-ach

Mariuszek15 03 Maj 2009 15:50 3534 10
REKLAMA
  • #1 6484982
    Mariuszek15
    Poziom 24  
    Witam :) Mam problem, zegarek na Timer0 nie chodzi poprawnie natomiast na Timer 1 pracuje poprawnie. Pwm działa tylko na Timer1. Co zrobić aby zegarek pracował na Timer1 a Pwm na Timer0?

    Config Timer1 = Timer , Prescale = 64
    Enable Interrupts
    Enable Timer1
    On Timer1 Mierzymy
    
    Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
  • REKLAMA
  • #2 6485000
    wader_669
    Poziom 28  
    co to znaczy zegarek, licznik czasu rzeczywistego? Nie wiem czy do konca rozumiem twoj problem, bo chyba sam dokladnie nie wiesz co piszesz. Przerwanie moze ci sie wywolywac w roznych okresach czasu poniewaz timer0 i timer1 roznia sie iloscia bitow w counterze

    Dodano po 2 [minuty]:

    timer0 jest 8 bitowy, a timer1 16 bitowy

    Dodano po 1 [minuty]:

    i timer0 nie ma wyjsc na pwm
  • REKLAMA
  • #3 6485018
    Mariuszek15
    Poziom 24  
    No tak wiem o tym, że timer0 jest 8 bitowy, a timer1 16 bitowy. Tak chodzi mi o zegarek czasu rzeczywistego. A pwm da się zrobic na innych timerach timer2 timer3?
  • #4 6485120
    dawid512
    Poziom 32  
    Cytat:
    i timer0 nie ma wyjsc na pwm
    Jesteś tego pewien? Radze sprawdzić :)
  • #5 6485309
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #6 6485402
    Mariuszek15
    Poziom 24  
    To jak skonfigurować PWM na Timer0 lub Timer2??

    Może takie coś? :

    $regfile = "m16def.dat" 'Deklaracja rodzaju procesora
    Ddrd = B00110000                                            'Porty pełniące funkcję Timera powinny być skonfigurowane jako wyścia
    Tccr1a = &HA3 'Phase correct PWM mode ,PWM = 10 bit
    Tccr1b = &H5 'Prescale 1024
    Do
    
    Pwm1a = Pwm1a + 1 'Ten program powoduje cykliczną zmianę dlugości
    If Pwm1a = 1000 Then Pwm1a = 0 'impulsów na wyjściach Portd.5
    
    Waitms 5 '
    
    Pwm1b = Pwm1b + 1 'I Portd.4
    If Pwm1b = 1000 Then Pwm1b = 0
    
    Loop
    End
  • #7 6485600
    dawid512
    Poziom 32  
    Nie zważając czy konfiguracja rejestrów jest poprawna to i tak konfigurujesz T1.
  • #8 6485717
    Mariuszek15
    Poziom 24  
    To co należy zrobić, aby skonfigurować Timer0?
  • #9 6486026
    Konto nie istnieje
    Poziom 1  
  • #10 6488897
    wader_669
    Poziom 28  
    le kurcze to pomyslilem sie. ale chyba z bascoma nie ma mozliwosci konfiguracji tege, wiec recznie bedziesz musial to zrobic. Wtedy radze poczytac note i odpowiednio ustawic rejestr.
  • REKLAMA
  • #11 6488975
    Mariuszek15
    Poziom 24  
    Zegar na Timer0 ruszył, natomiast PWM jest zrobione na Timer1. Przyczyną nie działania Timer0 to procedura RC5(!!??) Teraz tylko pozostało wyregulować odmierzanie czasu..
REKLAMA