Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: pimowo » 15 lis 2017, 2:42

Może inaczej...
Zacznijmy od początku. Jak Twój potencjometr ma być sterowany. Pokaż schemat połączeń.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: niveasoft » 15 lis 2017, 12:55

Problemem któregoś było to że ktoś ustawił jako wyjście PD2 a na PD2 jest przecież wejście RC5 i INT0
Nie wiem skąd się to wzięło. Skopiowałem to z jakiegoś kodu w tym wątku i nie zauważyłem.
To nie mogło działać.
  1. Config Portd.2 = Output : Portd.2 = 0 : Glosniej Alias Portd.2
  2. Config Portc.7 = Output : Portc.7 = 0 : Ciszej Alias Portc.7
  3.  Config Rc5 = Pind.2
Poniższy kod jest stuprocentowy i przetestowany na 2080 i 2078. Wyjścia to PC6 i PC7, ale można zmienić na dowolne.
  1. $regfile = "m32def.dat"
  2. $crystal = 16000000
  3. $hwstack = 32
  4. $swstack = 16
  5. $framesize = 32
  6.  
  7. Const Wartosc_timeout = 25
  8.  
  9. Config Timer1 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1
  10.  Compare1a = 155                                            '10ms @16MHz/1024
  11.  
  12. Dim Address As Byte , Kod As Byte
  13. Dim Odbierz_rc5 As Byte                                     'flaga
  14. Dim Odlicz_timeout As Byte
  15.  
  16. Config Portd.2 = Input : Set Portd.2
  17. Config Portc.6 = Output : Portc.6 = 0 : Glosniej Alias Portc.6
  18. Config Portc.7 = Output : Portc.7 = 0 : Ciszej Alias Portc.7
  19.  
  20. Config Rc5 = Pind.2 , Wait = 2000
  21.  
  22. On Int0 Rc5
  23.  Config Int0 = Falling : Enable Int0
  24.  
  25. Enable Interrupts
  26.  
  27. Do
  28.  
  29.   If Odbierz_rc5 = 1 Then
  30.  
  31.     Getrc5(address , Kod)
  32.     Kod = Kod And &B01111111
  33.  
  34.       Select Case Kod
  35.        Case 16 : Reset Ciszej : Set Glosniej
  36.          Odlicz_timeout = Wartosc_timeout
  37.        Case 17 : Reset Glosniej : Set Ciszej
  38.          Odlicz_timeout = Wartosc_timeout
  39.       End Select
  40.  
  41.     Gifr.intf0 = 1 : Enable Int0 :
  42.      Odbierz_rc5 = 0
  43.   End If
  44.  
  45.   If Tifr1.ocf1a = 1 Then
  46.    Tifr1.ocf1a = 1
  47.  
  48.    If Odlicz_timeout > 0 Then
  49.     Decr Odlicz_timeout
  50.      If Odlicz_timeout = 0 Then
  51.       Reset Glosniej
  52.       Reset Ciszej
  53.      End If
  54.    End If
  55.  
  56.   End If
  57.  
  58. Loop
  59. End
  60.  
  61. Rc5:
  62. Disable Int0
  63.  Odbierz_rc5 = 1
  64. Return
Awatar użytkownika
kulamario
Posty: 207
Rejestracja: 17 sie 2015, 20:05
Lokalizacja: Greystones
Kontakt:

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: kulamario » 15 lis 2017, 13:46

Powiem tak - Niveasoft jak zawsze bezbłędnie
kod działa 100%
Powiedz mi jeszcze czy nie będzie problemów jak będę chciał go odpalić na attiny13
bo widzę ze tam timer jest ustawiony
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: pimowo » 15 lis 2017, 15:19

niveasoft pisze: ↑
15 lis 2017, 12:55
Problemem któregoś było to że ktoś ustawił jako wyjście PD2 a na PD2 jest przecież wejście RC5 i INT0
Nie wiem skąd się to wzięło. Skopiowałem to z jakiegoś kodu w tym wątku i nie zauważyłem.
To byłem ja, tak to jest jak coś się robi teoretyczne i na sucho bez sprzętu. Napisałem swój kod, a przyciski przepisałem z kodu @kulamario

Najciekawsze jest to, że Kolega wszystko podłączył-przycisk i pilot pod jeden pin? :D
Awatar użytkownika
kulamario
Posty: 207
Rejestracja: 17 sie 2015, 20:05
Lokalizacja: Greystones
Kontakt:

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: kulamario » 15 lis 2017, 15:57

pimowo uważasz ze bym był na tyle głupi ze by sobie podłączać przyciski pod pin od IR?
oj kolego nie posadzaj mnie o takie coś to oczywiste że zmieniłem pin
po prostu nie dawałem juz zmienionego kodu
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5

Post autor: niveasoft » 15 lis 2017, 17:25

Tak powinno działać na Tiny13. Wazne tylko by sygnał RC5 był na PORTB.1 bo tam jest INT0
  1. $regfile = "attiny13.dat"
  2. $crystal = 1200000   ' Tiny13 pracuje na 1,2MHz lub 9,6MHz
  3. $hwstack = 32
  4. $swstack = 0
  5. $framesize = 24
  6.  
  7. $lib "mcsbyte.lib"
  8.  
  9. Const Wartosc_timeout = 200
  10.  
  11. Dim Address As Byte , Kod As Byte
  12. Dim Odbierz_rc5 As Byte                                     'flaga
  13. Dim Odlicz_timeout As Byte
  14.  
  15. Config Portb.1 = Input : Set Portb.1
  16. Config Portb.3 = Output : Portb.3 = 0 : Glosniej Alias Portb.3
  17. Config Portb.4 = Output : Portb.4 = 0 : Ciszej Alias Portb.4
  18.  
  19. Config Rc5 = Pinb.1 , Wait = 2000
  20.  
  21. On Int0 Rc5
  22.  Config Int0 = Falling : Enable Int0
  23.  
  24. Enable Interrupts
  25.  
  26. Do
  27.  
  28.   If Odbierz_rc5 = 1 Then
  29.  
  30.     Getrc5(address , Kod)
  31.     Kod = Kod And &B01111111
  32.  
  33.       Select Case Kod
  34.        Case 16 : Reset Ciszej : Set Glosniej
  35.          Odlicz_timeout = Wartosc_timeout
  36.        Case 17 : Reset Glosniej : Set Ciszej
  37.          Odlicz_timeout = Wartosc_timeout
  38.       End Select
  39.  
  40.     Gifr.intf0 = 1 : Enable Int0 :
  41.      Odbierz_rc5 = 0
  42.   End If
  43.  
  44.   Waitms 1
  45.  
  46.   If Odlicz_timeout > 0 Then
  47.    Decr Odlicz_timeout
  48.     If Odlicz_timeout = 0 Then
  49.      Reset Glosniej
  50.      Reset Ciszej
  51.     End If
  52.   End If
  53.  
  54. Loop
  55. End
  56.  
  57. Rc5:
  58. Disable Int0
  59.  Odbierz_rc5 = 1
  60. Return
  61.  
ODPOWIEDZ