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

Zmiana TIMER1 na TIMER2 dla PWM w ATMEGA32 - jak to zrobić? BASCOM

Mariuszek15 13 Paź 2024 12:05 369 12
REKLAMA
  • #1 21261173
    Mariuszek15
    Poziom 24  
    Posty: 961
    Pomógł: 16
    Ocena: 49
    Witam!

    Potrzebuję zmienić TIMER1 do obsługi PWM na TIMER2 ktoś pomoże? ATMEGA32 BASCOM
  • REKLAMA
  • #2 21261265
    johny_w
    Poziom 24  
    Posty: 674
    Pomógł: 80
    Ocena: 63
    Nie bardzo rozumiem w czym masz problem.
    Możesz to rozwinąć?
    TIM1 jest 16 bitowy, a TIM2 8 bitowy. O to chodzi?
  • REKLAMA
  • #3 21261278
    Mariuszek15
    Poziom 24  
    Posty: 961
    Pomógł: 16
    Ocena: 49
    W bascom-ie potrzebuję zmienić TIMER1 na TIMER2 jak wykonać to na rejestrach ?
  • #4 21261295
    johny_w
    Poziom 24  
    Posty: 674
    Pomógł: 80
    Ocena: 63
    Bascoma nie znam więc nie pomogę.
  • REKLAMA
  • #5 21261406
    Mariuszek15
    Poziom 24  
    Posty: 961
    Pomógł: 16
    Ocena: 49
    Config Pinb.3 = Output 
    'Config Timer0 = Pwm , Prescale = 1 , Compare Pwm = Clear Down
    Set Tccr0.pwm0
    Set Tccr0.com00
    Set Tccr0.com01
    Set Tccr0.cs00
    Ocr0 = 127
    'T2 już normalnie ;)
    Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Down
    Ocr2 = 127
  • #7 21261549
    Mariuszek15
    Poziom 24  
    Posty: 961
    Pomógł: 16
    Ocena: 49
    Wrzuć coś zatem ;)
  • #8 21261573
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Nie ma szans. Bascomem zajmowałem się dobre kilkanaście lat temu, jak pisałem książkę. Kompletnie nic już nie pamiętam...i dobrze. Mark odwala kawał dobrej roboty, ale sam temat nie jest zbytnio rozwojowy, jak ktoś chce wyjść spoza amatorki. Tak, czy inaczej, zwykły help wystarczał aż nadto 😉. R
  • #9 21261674
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1463
    Mariuszek15 napisał:
    Witam!

    Potrzebuję zmienić TIMER1 do obsługi PWM na TIMER2 ktoś pomoże? ATMEGA32 BASCOM


    Widzisz, kolego.
    Tak to się kończy, jak się rżnie przypadkowy kod z netu bez zrozumienia

    Sorry Batory, ale taka jest prawda
  • REKLAMA
  • #10 21261759
    Mariuszek15
    Poziom 24  
    Posty: 961
    Pomógł: 16
    Ocena: 49
    >>21261674

    To jak jesteś mądrzejszy to napisz jak powinno być :)
  • #11 21262321
    bart-projects
    Poziom 30  
    Posty: 836
    Pomógł: 200
    Ocena: 261
    Bascomowe komendy konfiguracyjne tylko z pozoru wyglądają na jakieś nieefektywne.
    Bascom taką konfigurację timera by zrobił dwoma wpisami do dwóch rejestrów i finał a nie rzeźbił tak jak pokazane wyżej czterema wpisami.

    Jak już ktoś chce ustawiać bity w rejestrach to mozna to zrobić za jednym zamachem poleceniem Bits()

    Jedynym pretekstem do grzebania po rejestrach byłoby to że Bascom domyślnie PWM konfiguruje jako Fast PWM. Jeśli ktoś chce tryb Phase correct to wystarczy sobie jeden bit zmienić.
  • #12 21267581
    ZbeeGin
    Poziom 39  
    Posty: 4329
    Pomógł: 605
    Ocena: 463
    bart-projects napisał:
    Jedynym pretekstem do grzebania po rejestrach byłoby to że Bascom domyślnie PWM konfiguruje jako Fast PWM. Jeśli ktoś chce tryb Phase correct to wystarczy sobie jeden bit zmienić.

    O ile dobrze pamiętam to TIMER1 zawsze był konfigurowany jako dual-slope, i parametr COMPARE_x_PWM decydował o obu porównaniach (komplementarnie).

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono temat zmiany konfiguracji TIMER1 na TIMER2 w celu obsługi PWM w mikrokontrolerze ATMEGA32 przy użyciu języka BASCOM. Użytkownik zadał pytanie dotyczące rejestrów, na co odpowiedziano, że w BASCOM nie ma potrzeby bezpośredniego operowania na rejestrach, ponieważ dostępne są mnemoniki konfiguracyjne. Podano przykładową konfigurację dla TIMER2, w tym ustawienia preskalera i wartości OCR. Zauważono różnice między TIMER1 a TIMER2, gdzie TIMER1 jest 16-bitowy i konfigurowany jako Phase Correct, a TIMER2 jest 8-bitowy i domyślnie działa w trybie Fast PWM. Wskazano również, że zmiana trybu PWM wymaga jedynie modyfikacji jednego bitu w rejestrze.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA