Advertisement
kamilnowinski

Czołg IR

Dec 4th, 2011
1,263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $regfile = "m8def.DAT"                                      
  2. $crystal = 8000000                                          
  3.  
  4. Config Rc5 = Pinb.0                                         'pinb.0 - odbiór sygnału IR
  5.  
  6. Dim Adres As Byte , Command As Byte                        
  7. Dim Speed As Integer
  8.  
  9. Enable Interrupts                                          
  10.  
  11. Config Portc = Output                                      
  12.        Portc = &B00000000                                  
  13.  
  14.  
  15. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
  16.  
  17.  
  18. Speed = 255                                                 'prędkośc na maksa
  19.  
  20.  
  21.  
  22. Do                                                  
  23.  
  24. Getrc5(adres , Command)                                     'pobierz adres i komende z pilota
  25.  
  26.    Command = Command And &B01111111
  27.  
  28.  
  29.  
  30. Waitms 50
  31.                          'warunki i odwołania do podprogramów
  32.  
  33.    If Command = 2 Then
  34.       Gosub Przod
  35.    End If
  36.  
  37.    If Command = 8 Then
  38.       Gosub Tyl
  39.    End If
  40.  
  41.    If Command = 4 Then
  42.       Gosub Lewo
  43.    End If
  44.  
  45.    If Command = 6 Then
  46.       Gosub Prawo
  47.    End If
  48.       'regulacja prędkości , dostosuj wartosci komend do swojego pilota :P
  49.    If Command = 32 Then
  50.       Incr Speed
  51.       If Speed = 251 Then
  52.          Speed = 250
  53.       End If
  54.    End If
  55.  
  56.    If Command = 33 Then
  57.       Decr Speed
  58.       If Speed = 1 Then
  59.          Speed = 2
  60.       End If
  61.  
  62.    End If
  63.       'koniec regulacji prędkości
  64.  
  65.   If Command = 127 Then Pwm1a = 0                           'komenda 127 podawana jest kiedy
  66.   If Command = 127 Then Pwm1b = 0                           'procesor nie odbiera sygnału z nadajnika
  67.                                                              'przy tej komendzie stój!
  68.  
  69.   Loop                                              
  70.  
  71. End                                                        
  72.  
  73.                                                            'podprogramy:
  74.  
  75. Przod:
  76. Do
  77.  
  78.  
  79.     Waitms 50
  80.     ' gasienica prawa
  81.     Pwm1a = Speed
  82.     Set Portc.0
  83.     Reset Portc.1
  84.     ' gasienica lewa
  85.     Pwm1b = Speed
  86.     Set Portc.2
  87.     Reset Portc.3
  88.  
  89.    If Command = 2 Then Return
  90.  
  91.  Loop
  92. End
  93.  
  94.  
  95. Tyl:
  96. Do
  97.  
  98.     Waitms 50
  99.     ' gasienica prawa
  100.     Pwm1a = Speed
  101.     Set Portc.1
  102.     Reset Portc.0
  103.     ' gasienica lewa
  104.     Pwm1b = Speed
  105.     Set Portc.3
  106.     Reset Portc.2
  107.  
  108.    If Command = 8 Then Return
  109.  
  110. Loop
  111. End
  112.  
  113.  
  114. Lewo:
  115. Do
  116.  
  117.      Waitms 50
  118.     ' gasienica prawa
  119.     Pwm1a = Speed
  120.     Set Portc.0
  121.     Reset Portc.1
  122.     ' gasienica lewa
  123.     Pwm1b = Speed
  124.     Set Portc.3
  125.     Reset Portc.2
  126.  
  127.    If Command = 4 Then Return
  128.  
  129. Loop
  130. End
  131.  
  132. Prawo:
  133.     Waitms 50
  134.     ' gasienica lewa
  135.     Pwm1a = Speed
  136.     Set Portc.1
  137.     Reset Portc.0
  138.     ' gasienica lewa
  139.     Pwm1b = Speed
  140.     Set Portc.2
  141.     Reset Portc.3
  142.  
  143.    If Command = 6 Then Return
  144. Return
  145.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement