Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[avr] [bascom] [noob] pwm, sterowanie oswietleniem

Gibol 13 Gru 2008 20:14 2090 5
  • #1 13 Gru 2008 20:14
    Gibol
    Poziom 17  

    Tworze sterownik oświetlenia choinki, jestem początkujący jezeli chodzi o programowanie, chce zawszeć w programie kilka wariantów oświetlenia, na razie napisałem jeden i zajmuje 50% Flasha, cały dzień próbuję to skrócić jakoś, ale nie wychodzi mi za bardzo, proszę o jakąś propozycję na skrócenie programu, ale z zachowaniem funkcjonalności tak jak jest teraz bo o to mi dokładnie chodziło.

  • #3 13 Gru 2008 20:40
    Gibol
    Poziom 17  

    jakis przyklad jak to zrobic nie tacąc tej regulacji jaka daje mi T1?

    Edit:

    Lol - po 3 piwach dostalem przeblysku...

    Code:
    $regfile = Mega32.def
    
    $crystal = 20000000                                         '20MHz

    Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Dim T1 As Integer
    Dim Licznik As Integer

    Config Portd = Output

    T1 = 1

    Do
     
    Pwm1a = 1
    Pwm1b = 255
    Waitms T1
    Pwm1a = 16
    Pwm1b = 240
    Waitms T1
    Pwm1a = 32
    Pwm1b = 224
    Waitms T1
    Pwm1a = 48
    Pwm1b = 208
    Waitms T1
    Pwm1a = 64
    Pwm1b = 192
    Waitms T1
    Pwm1a = 72
    Pwm1b = 176
    Waitms T1
    Pwm1a = 88
    Pwm1b = 160
    Waitms T1
    Pwm1a = 112
    Pwm1b = 144
    Waitms T1
    Pwm1a = 128
    Pwm1b = 128
    Waitms T1
    Pwm1a = 144
    Pwm1b = 112
    Waitms T1
    Pwm1a = 160
    Pwm1b = 96
    Waitms T1
    Pwm1a = 176
    Pwm1b = 80
    Waitms T1
    Pwm1a = 192
    Pwm1b = 64
    Waitms T1
    Pwm1a = 208
    Pwm1b = 48
    Waitms T1
    Pwm1a = 224
    Pwm1b = 32
    Waitms T1
    Pwm1a = 240
    Pwm1b = 16
    Waitms T1
    Pwm1a = 255
    Pwm1b = 1
    Waitms T1
    Pwm1a = 240
    Pwm1b = 16
    Waitms T1
    Pwm1a = 224
    Pwm1b = 32
    Waitms T1
    Pwm1a = 208
    Pwm1b = 48
    Waitms T1
    Pwm1a = 192
    Pwm1b = 64
    Waitms T1
    Pwm1a = 176
    Pwm1b = 80
    Waitms T1
    Pwm1a = 160
    Pwm1b = 96
    Waitms T1
    Pwm1a = 144
    Pwm1b = 112
    Waitms T1
    Pwm1a = 128
    Pwm1b = 128
    Waitms T1
    Pwm1a = 112
    Pwm1b = 144
    Waitms T1
    Pwm1a = 96
    Pwm1b = 160
    Waitms T1
    Pwm1a = 80
    Pwm1b = 176
    Waitms T1
    Pwm1a = 64
    Pwm1b = 192
    Waitms T1
    Pwm1a = 48
    Pwm1b = 208
    Waitms T1
    Pwm1a = 32
    Pwm1b = 224
    Waitms T1
    Pwm1a = 16
    Pwm1b = 240
    Waitms T1
    Incr Licznik



    If Licznik < 8 Then
    Incr T1
    Else
    Decr T1

    If Licznik = 16 Then Set Porta.0
    End If


    Loop                                                       


    Tam gdzie set portA BEDZIE prog dalej :)

    Moderowany przez zumek:

    Proszę poprawić tytuł wiadomości - regulamin p.11
    Kod z pierwszego postu, dodać jako załącznik, a nie wklejać na forum > 1400 linii kodu - prosze poprawić.

  • #4 14 Gru 2008 14:15
    Freddy
    Poziom 43  

    A nie prościej w taki sposób ?

    Code:

    .........
    Read Tablica
    Do
    .........
    For I = 1 To Ileśtam
         Robota(tablica(el1) , Tablica(el2) , Czas)
    Nexti
    .........
    Incr Licznik
    If Licznik < 8 Then
    Incr T1
    Else
    Decr T1

    If Licznik = 16 Then Set Porta.0
    End If


    Loop

    Sub Robota(w1 As Byte , W2 As Byte , T1 As Byte)
       Pwm1a = W1
       Pwm1b = W2
       Waitms T1
    End Sub

    Tablica1
    Data 1 , 255 , 16 , 240 , 32 , 224 , 48 , 208 , 64 , 192

  • #5 14 Gru 2008 17:30
    Gibol
    Poziom 17  

    do czego sluzy "Read Porta.0 Tablica " ?

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME