Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[mega88] Timer - Pwm - Rc5 - pytanie

nouki 18 Dec 2009 19:38 1288 5
  • #1
    nouki
    Level 25  
    Witam.

    Robię sobie projekt i natrafiłem na pewien problem.
    Chce zrobić sobie układ 6xPwm +rc5, lecz wyczytałem że podczas polecenia getrc5 używany jest timer0 a konkretnie przerwanie od niego.
    Zastanawia mnie jaki to ma wpływ podczas pracy Pwm i w jaki sposób będzie się to objawiało, jak rozwiązać konflikt. Proszę o rady i pomysły.
    Czy pozostaje mi tylko rozwiązać pwm programowo z pominięciem sprzętowego udogodnienia

    W pętli programowej na pewno będzie na raz używane polecenie getrc5 i w tym samym czasie będzie pracował Pwm.
  • #2
    mirekk36
    Level 42  
    Wystarczy że dasz sobie spokój ze sprzętowym PWMx6 a zrobisz programowy PWMx6 albo nawet PWMx10

    a wtedy będziesz miał wolny timer dla Getrc5

    z drugiej strony może się okazać, że Bascomowe Getrc5 będzie ci co nieco zakłócać pracę programowego PWM'a

    Więc albo weźmiesz procka, który ma więcej PWMów sprzętowych (co może być mocno bez sensu) albo co będzie miało duży sens zrobić to wszystko w C - wtedy na pewno da radę
  • #3
    nouki
    Level 25  
    W C napisałem i nie widzę problemów większych lecz to ma być niestety w bascomie.
    Mam zrobić sterownik 6xpwm +podczerwień +....
    Wybrałem właśnie mega88 ze względu na 6 gotowych pwm ( czysta łatwizna) i wszystko było ok nim nie dodałem komend obsługi z pilota.
  • #4
    Dr.Vee
    VIP Meritorious for electroda.pl
    A nie możesz napisać własnej procedury "Getrc5" w bascomie?
    Uruchamiasz PWMy, więc znasz częstotliwość przepełnienia dowolnego timera.
    W getrc5 sprawdzasz odstępy pomiędzy zdarzeniami na pinie odbiornika IR - trzeba wziąć poprawkę na przepełnienie timera, ale oprócz tego nic się nie zmienia.

    Pozdrawiam,
    Dr.Vee
  • #5
    nouki
    Level 25  
    Napociłem się nad tym i wypociłem takie coś. O mało nie zabrakło procka.

    Nie wiem czy działa bo dopiero jutro będę miał płytkę do tego.
    Nie śmiać się proszę i tak jak na moje zaawansowanie w bascomie nie wygląda nie-źle.
    Chętnie przyjmę poprawki.

    Podczas symulowania jak trafia na polecenie getrc5 wraca do początku i tak w koło ciekawe czemu tak się dzieje.
    Code:


    $crystal = 8000000
    $regfile = "m8def.dat"


    Config Timer2 = Timer = , Prescale = 1

    Config Lcdbus = 4
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Pc.3 , Db5 = Pc.2 , Db6 = Pc.1 , Db7 = Pc.0 , E = Pc.4 , Rs = Pc.5





    Dim Licznik As Byte
    Dim Licznik1 As Byte
    Dim Y As Integer
    Declare Sub Klawisze
    Declare Sub Menu
    Declare Sub 1
    Declare Sub 2
    Declare Sub 3
    Declare Sub 4
    Declare Sub 5
    Declare Sub 6
    Declare Sub 7
    Declare Sub 8
    Declare Sub Program
    Declare Sub Hom
    Declare Sub Wybier
    Declare Sub Tekst
    Declare Sub Tekst1
    Declare Sub Tekst2
    Declare Sub Tekst4
    Declare Sub Pilot
    Declare Sub Odczyt
    Declare Sub Zapis
    Declare Sub Tek
    Declare Sub Papa
    Declare Sub Zat


    Declare Sub Poziom1
    Declare Sub Poziom2
    Declare Sub Poziom3
    Declare Sub Poziom4
    Declare Sub Poziom5
    Declare Sub Poziom6
    Declare Sub Poziom7
    Declare Sub Poziom8

    Dim W1 As Byte
    Dim W2 As Byte
    Dim W3 As Byte
    Dim W4 As Byte
    Dim W5 As Byte
    Dim W6 As Byte
    Dim W7 As Byte
    Dim W8 As Byte

    Dim K As Byte

    Dim Wynik1 As Integer
    Dim Wynik2 As Integer
    Dim Wynik3 As Integer
    Dim Wynik4 As Integer
    Dim Wynik5 As Integer
    Dim Wynik6 As Integer
    Dim Wynik7 As Integer
    Dim Wynik8 As Integer

    Dim Wy1 As Byte
    Dim Wy2 As Byte
    Dim Wy3 As Byte
    Dim Wy4 As Byte
    Dim Wy5 As Byte
    Dim Wy6 As Byte
    Dim Wy7 As Byte
    Dim Wy8 As Byte

    Dim Wy1a As Byte
    Dim Wy2a As Byte
    Dim Wy3a As Byte
    Dim Wy4a As Byte
    Dim Wy5a As Byte
    Dim Wy6a As Byte
    Dim Wy7a As Byte
    Dim Wy8a As Byte
    Dim Address As Byte , Command As Byte








    '**** wyjscia pwm**
    Config Portd.3 = Output
    Config Portd.5 = Output
    Config Portd.6 = Output

    Config Portd.7 = Output
    Config Portb.0 = Output

    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output


    Config Rc5 = Pinb.7


    '*** klawiaturka***
    Config Pind.0 = Input                                       'menu
    P1 Alias Pind.0
    Set Pind.0

    Config Pind.1 = Input
    P2 Alias Pind.1                                             '-
    Set Pind.1

    Config Pind.2 = Input
    P3 Alias Pind.2                                             '+
    Set Pind.2


    Config Pind.4 = Input
    P4 Alias Pind.4                                             'enter
    Set Pind.4

     Config Pinb.6 = Input
    P5 Alias Pinb.6                                             '1/0
    Set Pinb.6

    Config Portb.5 = Output                                     ' podswietlanie lcd
    Led Alias Portb.5                                           '1/0
    '****** zaearki  **************

    On Timer2 Tim2_int
    Enable Timer2
    Enable Interrupts
    Timer2 = 6
    Licznik = 0


    Y = 1
    Call Odczyt


    Wy1a = Wy1
    Wy2a = Wy2
    Wy3a = Wy3
    Wy4a = Wy4
    Wy5a = Wy5
    Wy6a = Wy6
    Wy7a = Wy7
    Wy8a = Wy8

    '***PETLA STARTOWA***


    Sub Hom
    Do
    Call Pilot
    If Command = 12 Then
    Set Led
    Lcd " czekaj"
    Call Pilot
    Call Odczyt
    Waitms 100
    Call Program
    End If
    If P5 = 0 Then
    Set Led
    Lcd " czekaj"
    Call Odczyt
    Waitms 100
    Call Program
    End If
    Waitms 10
    Cls
    Loop
    End Sub


    ' **** PETLA PROGRAMU************** REG WYPELNIENIA*********************

    Program:
    Cls
    Do


    If W1 = 1 And Wy1 > Wy1a Then
    Incr Wy1a
    Elseif W1 = 1 And Wy1 < Wy1a Then
    Decr Wy1a
    Elseif W1 = 0 Then
    Wy1a = 0
    End If

    If W2 = 1 And Wy2 > Wy2a Then
              Incr Wy2a
           
    Elseif W2 = 1 And Wy2 < Wy2a Then
              Decr Wy2a

    Elseif W2 = 0 Then
    Wy2a = 0
    End If



    If W3 = 1 And Wy3 > Wy3a Then
              Incr Wy3a

     Elseif W3 = 1 And Wy3 < Wy3a Then
              Decr Wy3a

       Elseif W3 = 0 Then
    Wy3a = 0
       End If



    If W4 = 1 And Wy4 > Wy4a Then
              Incr Wy4a

     Elseif W4 = 1 And Wy4 < Wy4a Then
              Decr Wy4a

       Elseif W4 = 0 Then
    Wy4a = 0
       End If



    If W5 = 1 And Wy5 > Wy5a Then
              Incr Wy5a

     Elseif W5 = 1 And Wy5 < Wy5a Then
              Decr Wy5a

        Elseif W5 = 0 Then
    Wy5a = 0
       End If



    If W6 = 1 And Wy6 > Wy6a Then
              Incr Wy6a

     Elseif W6 = 1 And Wy6 < Wy6a Then
              Decr Wy6a

       Elseif W6 = 0 Then
    Wy6a = 0
       End If


    If W7 = 1 And Wy7 > Wy7a Then
              Incr Wy7a

     Elseif W7 = 1 And Wy7 < Wy7a Then
              Decr Wy7a

       Elseif W7 = 0 Then
    Wy7a = 0
       End If



    If W8 = 1 And Wy8 > Wy8a Then
              Incr Wy8a

     Elseif W8 = 1 And Wy8 < Wy8a Then
              Decr Wy8a

       Elseif W8 = 0 Then
    Wy8a = 0
       End If

    Call Klawisze
    Call Tek
    Loop

        '*** KLAWISZE ****
     Call Pilot

    Sub Klawisze
    Call Pilot
    If Command = 0 Then
    Call Menu
       End If
    If P1 = 0 Then                                              'KLAWISZ MENU =1
     Call Menu
      End If

    If  Command = 12 Then
    Call Papa
    End If

    If P5 = 0 Then                                              ' WYŁĄCZ + ZAPISZ DANE
    Call Papa
    End If
    End Sub

    '*********** MENU *************

    Sub Menu
    Cls

    Do
    Locate 1 , 1
    Lcd "WYJSCIE " ; Y ; "  "                                   'WYBIERANIE WYJSCIA DO URUCHOMIENIA BADZ WYLACZENIA
    Locate 4 , 1
    Lcd "MENU  +  - SET WYJ"
     Waitms 20
     Call Pilot

    If Address = 0 Then

         Command = Command
     Y = Command
     End If


    If P2 = 0 Then
    Y = Y + 1
    End If

    If Y > 8 Then
    Y = 1
    End If

    If P3 = 0 Then
     Y = Y - 1
     End If

    If Y < 1 Then
     Y = 8
     End If

    If  Command = 9 Then
    Call Wybier
       End If


    If P4 = 0 Then
    Call Wybier
     End If

     If P5 = 0 Then Call Program

    Loop
    End Sub




    '*-************* POZIOMY USTAWIEN WYL/ ZAL WYJSC USTAWIANIE POZIOMOW WYJSCIOWYCH***********************



    Sub Poziom1                                                 'POZIOM 1
    Cls
    Do
    Locate 1 , 1
    Lcd "WYJ1 = " ; W1 ; "            "
    Locate 2 , 7
    Lcd ; Wynik1 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy1 = Wy1 + 5
    End If
    If Command = 17 Then
    Wy1 = Wy1 - 5
    End If


    If W1 = 0 And Command = 1 Then
    W1 = 1
    Call Tekst4
    Elseif W1 = 1 And Command = 1 Then
    W1 = 0
    Call Tekst1
    End If

    If W1 = 0 And P1 = 0 Then
    W1 = 1
    Call Tekst4
    Elseif W1 = 1 And P1 = 0 Then
    W1 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy1 = Wy1 + 5
    End If
    If P3 = 0 Then
    Wy1 = Wy1 - 5
    End If

    If Wy1 > 255 Then
     Wy1 = 10
     End If
    If Wy1 < 5 Then
     Wy1 = 255
     End If

    Wynik1 = Wy1 * 100                                          '**/ PRZELICZENIE NA WYNIK PROCENTOWY
    Wynik1 = Wynik1 / 255

    If P4 = 0 Then
    Writeeeprom Wy1 , 2
    Call Program
    End If


    Loop
    End Sub


    Sub Poziom2                                                 'POZIOM 2
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ2 = " ; W2 ; "            "
    Locate 2 , 7
    Lcd ; Wynik2 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy2 = Wy2 + 5
    End If
    If Address = 0 And Command = 17 Then
    Wy2 = Wy2 - 5
    End If

    If W2 = 0 And Command = 2 Then
    W2 = 1
    Call Tekst4
    Elseif W2 = 1 And Command = 2 Then
    W2 = 0
    Call Tekst1
    End If

    If W2 = 0 And P1 = 0 Then
    W2 = 1
    Call Tekst4
    Elseif W2 = 1 And P1 = 0 Then
    W2 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy2 = Wy2 + 5
    End If
    If P3 = 0 Then
    Wy2 = Wy2 - 5
    End If

    If Wy2 > 255 Then
     Wy2 = 10
     End If
    If Wy2 < 5 Then
     Wy2 = 255
     End If

    Wynik2 = Wy2 * 100
    Wynik2 = Wynik2 / 255

    If P4 = 0 Then
    Writeeeprom Wy2 , 3
    Call Program
    End If


    Loop
    End Sub


    Sub Poziom3                                                 'POZIOM 3
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ3 = " ; W3 ; "            "
    Locate 2 , 7
    Lcd ; Wynik3 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy3 = Wy3 + 5
    End If
    If Command = 17 Then
    Wy3 = Wy3 - 5
    End If

    If W3 = 0 And Command = 3 Then
    W3 = 1
    Call Tekst4
    Elseif W3 = 1 And Command = 3 Then
    W3 = 0
    Call Tekst1
    End If

    If W3 = 0 And P1 = 0 Then
    W3 = 1
    Call Tekst4
    Elseif W3 = 1 And P1 = 0 Then
    W3 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy3 = Wy3 + 5
    End If
    If P3 = 0 Then
    Wy3 = Wy3 - 5
    End If

    If Wy3 > 255 Then
     Wy3 = 10
     End If
    If Wy3 < 5 Then
     Wy3 = 255
     End If

    Wynik3 = Wy3 * 100
    Wynik3 = Wynik3 / 255

    If P4 = 0 Then
    Writeeeprom Wy3 , 4
    Call Program
    End If


     Loop
    End Sub


    Sub Poziom4                                                 'POZIOM   4
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ4 = " ; W4 ; "            "
    Locate 2 , 7
    Lcd ; Wynik4 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy4 = Wy4 + 5
    End If
    If Command = 17 Then
    Wy4 = Wy4 - 5
    End If

    If W4 = 0 And Command = 4 Then
    W4 = 1
    Call Tekst4
    Elseif W4 = 1 And Command = 4 Then
    W4 = 0
    Call Tekst1
    End If

    If W4 = 0 And P1 = 0 Then
    W4 = 1
    Call Tekst4
    Elseif W4 = 1 And P1 = 0 Then
    W4 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy4 = Wy4 + 5
    End If
    If P3 = 0 Then
    Wy4 = Wy4 - 5
    End If

    If Wy4 > 255 Then
     Wy4 = 10
     End If
    If Wy4 < 5 Then
     Wy4 = 255
     End If

    Wynik4 = Wy4 * 100
    Wynik4 = Wynik4 / 255

    If P4 = 0 Then
    Writeeeprom Wy4 , 5
    Call Program
    End If


    Loop
    End Sub


    Sub Poziom5                                                 'POZIOM   5
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ5 = " ; W5 ; "            "
    Locate 2 , 7
    Lcd ; Wynik5 ; "%  "
    Lcd ""
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy5 = Wy5 + 5
    End If
    If Command = 17 Then
    Wy5 = Wy5 - 5
    End If

    If W5 = 0 And Command = 5 Then
    W5 = 1
    Call Tekst4
    Elseif W5 = 1 And Command = 5 Then
    W5 = 0
    Call Tekst1
    End If

    If W5 = 0 And P1 = 0 Then
    W5 = 1
    Call Tekst4
    Elseif W5 = 1 And P1 = 0 Then
    W5 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy5 = Wy5 + 5
    End If
    If P3 = 0 Then
    Wy5 = Wy5 - 5
    End If

    If Wy5 > 255 Then
     Wy5 = 10
     End If
    If Wy5 < 5 Then
     Wy5 = 255
     End If

    Wynik5 = Wy5 * 100
    Wynik5 = Wynik5 / 255

    If P4 = 0 Then
    Writeeeprom Wy5 , 6
    Call Program
    End If

    Loop
    End Sub




    Sub Poziom6                                                 'POZIOM 6
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ6 = " ; W6 ; "            "
    Locate 2 , 7
    Lcd ; Wynik6 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy6 = Wy6 + 5
    End If
    If Command = 17 Then
    Wy6 = Wy6 - 5
    End If

    If W6 = 0 And Command = 6 Then
    W6 = 1
    Call Tekst4
    Elseif W6 = 1 And Command = 6 Then
    W6 = 0
    Call Tekst1
    End If

    If W6 = 0 And P1 = 0 Then
    W6 = 1
    Call Tekst4
    Elseif W6 = 1 And P1 = 0 Then
    W6 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy6 = Wy6 + 5
    End If
    If P3 = 0 Then
    Wy6 = Wy6 - 5
    End If

    If Wy6 > 255 Then
     Wy1 = 10
     End If
    If Wy6 < 5 Then
     Wy1 = 255
     End If

    Wynik6 = Wy6 * 100
    Wynik6 = Wynik6 / 255

    If P4 = 0 Then
    Writeeeprom Wy6 , 7
    Call Program
    End If


    Loop
    End Sub


    Sub Poziom7                                                 'POZIOM 7
    Cls
     Do

     Locate 1 , 1
     Lcd "WYJ7 = " ; W7 ; "            "
     Locate 2 , 7
    Lcd ; Wynik7 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat


    If Command = 16 Then
    Wy7 = Wy7 + 5
    End If
    If Command = 17 Then
    Wy7 = Wy7 - 5
    End If

    If W7 = 0 And Command = 7 Then
    W7 = 1
    Call Tekst4
    Elseif W7 = 1 And Command = 7 Then
    W7 = 0
    Call Tekst1
    End If

    If W7 = 0 And P1 = 0 Then
    W7 = 1
    Call Tekst4
    Elseif W7 = 1 And P1 = 0 Then
    W7 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy7 = Wy7 + 5
    End If
    If P3 = 0 Then
    Wy7 = Wy7 - 5
    End If

    If Wy7 > 255 Then
     Wy7 = 10
     End If
    If Wy7 < 5 Then
     Wy7 = 255
     End If

    Wynik7 = Wy7 * 100
    Wynik7 = Wynik7 / 255

    If P4 = 0 Then
    Writeeeprom Wy7 , 8
    Call Program
    End If


    Loop
    End Sub


    Sub Poziom8                                                 'POZIOM  8
    Cls
    Do

    Locate 1 , 1
    Lcd "WYJ8 = " ; W8 ; "            "
    Locate 2 , 7
    Lcd ; Wynik8 ; "%  "
    Call Tekst
    Call Pilot
    Call Zat

    If Command = 16 Then
    Wy8 = Wy8 + 5
    End If
    If Command = 17 Then
    Wy8 = Wy8 - 5
    End If

    If W8 = 0 And Command = 8 Then
    W8 = 1
    Call Tekst4
    Elseif W8 = 1 And Command = 8 Then
    W8 = 0
    Call Tekst1
    End If

    If W8 = 0 And P1 = 0 Then
    W8 = 1
    Call Tekst4
    Elseif W8 = 1 And P1 = 0 Then
    W8 = 0
    Call Tekst1
    End If

    If P2 = 0 Then
    Wy8 = Wy8 + 5
    End If
    If P3 = 0 Then
    Wy8 = Wy8 - 5
    End If

    If Wy8 > 255 Then
     Wy8 = 10
     End If
    If Wy8 < 5 Then
     Wy8 = 255
     End If

    Wynik8 = Wy8 * 100
    Wynik8 = Wynik8 / 255

    If P4 = 0 Then
    Writeeeprom Wy8 , 9
    Call Program
    End If


    Loop
    End Sub




    Sub Tekst

    Locate 2 , 1
    Lcd "MOC: "
    Locate 4 , 1
    Lcd "WL/WYL  +   -   ZAP"
    End Sub


    Sub Tekst2
    Locate 2 , 1
    Lcd "mPILOTA BY WLACZYC "
    Locate 3 , 1
    Lcd " BADZ KLAWISZ +"
    End Sub

    Sub Tekst1
    Locate 1 , 1
     Lcd "WYJSCIE WYLACZONE"
     Waitms 100
    End Sub

    Sub Tekst4
    Locate 1 , 1
     Lcd "WYJSCIE WLACZONE"
     Waitms 100
    End Sub


     Sub Pilot
     Getrc5(address , Command)
     End Sub

     Sub Zat
     If Command = 0 Then
    Call Program
    End If
    End Sub

    Sub Wybier
    Select Case Y

          Case 1 : Call Poziom1

          Case 2 : Call Poziom2

          Case 3 : Call Poziom3

          Case 4 : Call Poziom4

          Case 5 : Call Poziom5

          Case 6 : Call Poziom6

          Case 7 : Call Poziom7

          Case 8 : Call Poziom8


       End Select
       End Sub

     Sub Papa
     Cls
    Locate 1 , 1
    Lcd " ZAPIS DANYCH"
    Call Zapis
    Locate 2 , 1
    Lcd "     PA  PA"
    Waitms 10
    Wy1a = 0
    Wy2a = 0
    Wy3a = 0
    Wy4a = 0
    Wy5a = 0
    Wy6a = 0
    Wy7a = 0
    Wy8a = 0

    Reset Led
    Wait 1
    Call Hom
    End Sub

     Sub Zapis
     Writeeeprom Wy1 , 2
    Writeeeprom Wy2 , 3
    Writeeeprom Wy3 , 4
    Writeeeprom Wy4 , 5
    Writeeeprom Wy5 , 6
    Writeeeprom Wy6 , 7
    Writeeeprom Wy7 , 8
    Writeeeprom Wy8 , 9

    Writeeeprom W1 , 12
    Writeeeprom W2 , 13
    Writeeeprom W3 , 14
    Writeeeprom W4 , 15
    Writeeeprom W5 , 16
    Writeeeprom W6 , 17
    Writeeeprom W7 , 18
    Writeeeprom W8 , 19
    End Sub


    Sub Odczyt
    Readeeprom Wy1 , 2
    Readeeprom Wy2 , 3
    Readeeprom Wy3 , 4
    Readeeprom Wy4 , 5
    Readeeprom Wy5 , 6
    Readeeprom Wy6 , 7
    Readeeprom Wy7 , 8
    Readeeprom Wy8 , 9

    Readeeprom W1 , 12
    Readeeprom W2 , 13
    Readeeprom W3 , 14
    Readeeprom W4 , 15
    Readeeprom W5 , 16
    Readeeprom W6 , 17
    Readeeprom W7 , 18
    Readeeprom W8 , 19
    End Sub

    Sub Tek
    If K = 3 Then
    K = 0
    Config Lcdbus = 4
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Pc.3 , Db5 = Pc.2 , Db6 = Pc.1 , Db7 = Pc.0 , E = Pc.4 , Rs = Pc.5
    Locate 1 , 1
    Lcd "W1: " ; Wynik1 ; "%  W2: " ; Wynik2 ; " %"
    Locate 2 , 1
    Lcd "W3: " ; Wynik3 ; "%  W4: " ; Wynik4 ; " %"
    Locate 3 , 1
    Lcd "W5: " ; Wynik5 ; "%  W6: " ; Wynik6 ; " %"
    Locate 4 , 1
    Lcd "W7: " ; Wynik7 ; "%  W8: " ; Wynik8 ; " %"
    End If
    Incr K
    End Sub

    '*************** ZEGARKI*****************



    Tim2_int:
    Counter2 = Counter2 + 6
    Incr Licznik
      If Licznik < Wy1a Then
      Set Portd.3
       Else
        Reset Portd.3
     End If

      If Licznik < Wy2a Then
      Set Portd.5
       Else
        Reset Portd.5
     End If

     If Licznik < Wy3a Then
      Set Portd.6
       Else
        Reset Portd.6
     End If

     If Licznik < Wy4a Then
      Set Portd.7
       Else
        Reset Portd.7
     End If

      If Licznik < Wy5a Then
      Set Portb.0
       Else
        Reset Portb.0
     End If

     If Licznik < Wy6a Then
      Set Portb.1
       Else
        Reset Portb.1
     End If

       If Licznik < Wy7a Then
      Set Portb.2
       Else
        Reset Portb.2
     End If

     If Licznik < Wy8a Then
      Set Portb.3
       Else
        Reset Portb.3
     End If
    Return

  • #6
    nouki
    Level 25  
    Po poprawkach działa lecz wyświetlacz zaczyna pokazywać dziwne i niechciane znaczki. Niekiedy dzieje się to po wejściu w menu już za pierwszym razem a niekiedy po 10 czy 20 razie.
    Podczas krzaczenia szleje pwm na wszystkich wyjściach na klawisze reaguje ale nie wykonuje poleceń.