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 ATTiny2313 PWM Jak obsłużyć 3 kanały?

I.T.I 27 Sty 2010 13:29 3596 15
REKLAMA
  • #1 7599922
    I.T.I
    Poziom 16  
    Witam. Jako, że mam ferie (:D) postanowiłem je spędzić kreatywnie wiec postanowiełm wziąć się za bascoma i w końcu nauczyć się jak obsługiwać i wykorzystywać pwm no wiec znalazłem jakiś króciutki program w internecie wrzuciłem go na procka i działa super ale na jednym porcie chciałem zrobić sterowanie reszta portów PWM woziłem notę katalogowa znalazłem które porty maja pwm skonfigurowałem i nie działa
    Wiec proszę was o to byście mi wytłumaczyli co robię zle i jak to ma wyglądać

    kod nie przerobimy

    
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    'pin OC0A (PB2) - wyjście
    Config Portb.2 = Output
    
    'Mode=3 (Fast PWM , TOP = &HFF)
    Set Tccr0a.0
    Set Tccr0a.1
    
    'clear OC0A on compare OCR0A(Pwm0a)
    Set Tccr0a.7
    
    Pwm0a = 10       ' gdy counter0(TCNT0) <= Pwm0a , OC0A(PB2)=1 , TCNT0 > Pwm0a , OC0A(PB2)=0
    
    Set Tccr0b.cs00       'prescale = 1
    
    Do
    Waitms 10
    Incr Pwm0a
    Loop    


    i przerobiony


            
                $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config Portb.2 = Output
    Set Tccr0a.0
    Set Tccr0a.1
    Set Tccr0a.7
    Pwm0a = 1
    Set Tccr0b.cs00
    
    Config Portb.3 = Output
    Set Tccr1a.0
    Set Tccr1a.1
    Set Tccr1a.7
    Pwm1a = 255
    Set Tccr0b.cs00
    
    Do
    Waitms 20
    Incr Pwm1a
    Loop
  • REKLAMA
  • #2 7600437
    Konto nie istnieje
    Poziom 1  
  • #3 7600448
    I.T.I
    Poziom 16  
    doszedłem do takiego czegoś

                  $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config Portb.2 = Output
    Set Tccr0a.1
    Set Tccr0a.0
    Set Tccr0a.7
    Pwm0a = 0
    Set Tccr0b.cs00
    
    Config Portb.3 = Output
    Set Tccr1a.0
    Set Tccr1a.0
    Set Tccr1a.7
    Pwm1a = 0
    Set Tccr1b.cs00
    
    
    
    
    Do
    Waitms 30
     Incr Pwm1a
     Incr Pwm0a
    
    Loop


    Lecz trzeciego nie mogę odpalić
  • REKLAMA
  • #4 7600485
    Konto nie istnieje
    Poziom 1  
  • #5 7600641
    I.T.I
    Poziom 16  
    zmieniłem. Już wszystko jest ok tylko 3 nie mogę odpalić pomożecie??
  • #6 7600816
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #8 7602476
    ZbeeGin
    Poziom 39  
    Po co NAM ta nota? Przecież wybitnie Tobie jest ona potrzebna! Wszystko tam jest napisane czarno na białym. Skoro poprawnie skonfigurowałeś kanał A z Timer1 to bez problemu skonfigurujesz kanał B.
  • REKLAMA
  • #9 7603092
    I.T.I
    Poziom 16  
    Doszedłem do czegoś takiego lecz to nie działa.
    
    
    
                $regfile = "attiny2313.dat"
    $crystal = 1000000
    
    Config Portb.2 = Output
    Set Tccr0a.0
    Set Tccr0a.0
    Set Tccr0a.7
    Pwm0a = 0
    Set Tccr0b.cs00
    
         Config Portb.3 = Output
     Set Tccr1a.0
     Set Tccr1a.0
     Set Tccr1a.7
     Pwm1a = 0
     Set Tccr1b.cs00
    
    Config Portb.4 = Output
    
     Set Tccr1b.0
     Set Tccr1b.0
     Set Tccr1b.7
     Pwm1a = 0
     Set Tccr1a.cs00
    
     Dim A As Integer
    
    Do
     For A = 1 To 254
    
      Waitms 10
       decr Pwm1a
       Decr Pwm0a
      Decr Pwm1b
    
        Next A
    
       For A = 1 To 254
    
      Waitms 10
       Incr Pwm1a
       Incr Pwm0a
      Incr Pwm1b
    
        Next A
    
    Loop
  • Pomocny post
    #10 7603220
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #11 7603293
    janbernat
    Poziom 38  
    Spokojnie- dobrze kombinujesz.
    Bity w rejestrach w Bascomie ustawiasz pojedynczo.
    Tak że Set Tccr1a.cs00- jest ustawiony bit cs00.
    A jak ustawisz Set Tccr1b.7 - to masz 00000111 w tym rejestrze.
    Sprawdź jak jest on ustawiony wtedy.( tu głupoty napisałem- jak sprawdził Atom)
    Ustawisz siódmy bit.

    Dodano po 3 [minuty]:

    " i tylko czekasz na gotowca."
    Nie- to jest ADHD chyba.
  • Pomocny post
    #12 7603419
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #13 7603471
    janbernat
    Poziom 38  
    Cholera- tego nie wiedziałem.
    Człowiek całe życie się uczy i głupi umiera.
    Ale I.T.I dobrze kombinuje- tylko jest niecierpliwy.
  • Pomocny post
    #14 7603598
    Konto nie istnieje
    Poziom 1  
  • #15 7603896
    I.T.I
    Poziom 16  
    ooo ile odpowiedzi Panowie nie kłucie się ;p Dzięki za wszystko ale poradziłem sobie sam (obraziłem się trochę na forum i dopiero teraz wszedłem) wiec ci co chcieli pomóc dostana pomógł (jee).
    Trochę wyjaśnienia
    1.Bez noty katalogowej nie zaczynam pracy.
    2.Nie używałem bascomowych tych tam i sam chciałem skonfigurować ponieważ być może w wakacje przerzucam się na c (a tam bez tego ani rusz)
    3.Dzięki za wszystko kochani jesteście :P

    A to jest to co spłodziłem :P





              $regfile = "attiny2313.dat"
    $crystal = 1000000
    
                   Config Portb.2 = Output
                   Config Portb.3 = Output
                   Config Portb.4 = Output
    
    
     Set Tccr0a.0
     Set Tccr0a.0
     Set Tccr0a.7
    
     Set Tccr1a.0
     Set Tccr1a.0
     Set Tccr1a.7
    
    
      Set Tccr1a.7
      Set Tccr1a.5
      Set Tccr1b.7
    
      Set Tccr0b.cs00
      Set Tccr1b.cs00
                                                 
        Pwm0a = 255
          Pwm1a = 255
           Pwm1a = 255
    
     Dim A As Integer
    
    Do
     For A = 1 To 250
    
      Waitms 5
       decr Pwm1a
       Decr Pwm0a
      Decr Pwm1b
    
        Next A
    
       For A = 1 To 250
    
      Waitms 5
       Incr Pwm1a
       Incr Pwm0a
      Incr Pwm1b
    
        Next A
    
    Loop


    Zamykamy temat.
  • #16 7604865
    Konto nie istnieje
    Poziom 1  
REKLAMA