Może inaczej...
Zacznijmy od początku. Jak Twój potencjometr ma być sterowany. Pokaż schemat połączeń.
Potencjometr Alps z silniczkiem sterowanie pilotem RC5
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
- niveasoft
- Posty: 1313
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5
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ć.
Poniższy kod jest stuprocentowy i przetestowany na 2080 i 2078. Wyjścia to PC6 i PC7, ale można zmienić na dowolne.
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ć.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Config Portd.2 = Output : Portd.2 = 0 : Glosniej Alias Portd.2
- Config Portc.7 = Output : Portc.7 = 0 : Ciszej Alias Portc.7
- Config Rc5 = Pind.2
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m32def.dat"
- $crystal = 16000000
- $hwstack = 32
- $swstack = 16
- $framesize = 32
- Const Wartosc_timeout = 25
- Config Timer1 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1
- Compare1a = 155 '10ms @16MHz/1024
- Dim Address As Byte , Kod As Byte
- Dim Odbierz_rc5 As Byte 'flaga
- Dim Odlicz_timeout As Byte
- Config Portd.2 = Input : Set Portd.2
- Config Portc.6 = Output : Portc.6 = 0 : Glosniej Alias Portc.6
- Config Portc.7 = Output : Portc.7 = 0 : Ciszej Alias Portc.7
- Config Rc5 = Pind.2 , Wait = 2000
- On Int0 Rc5
- Config Int0 = Falling : Enable Int0
- Enable Interrupts
- Do
- If Odbierz_rc5 = 1 Then
- Getrc5(address , Kod)
- Kod = Kod And &B01111111
- Select Case Kod
- Case 16 : Reset Ciszej : Set Glosniej
- Odlicz_timeout = Wartosc_timeout
- Case 17 : Reset Glosniej : Set Ciszej
- Odlicz_timeout = Wartosc_timeout
- End Select
- Gifr.intf0 = 1 : Enable Int0 :
- Odbierz_rc5 = 0
- End If
- If Tifr1.ocf1a = 1 Then
- Tifr1.ocf1a = 1
- If Odlicz_timeout > 0 Then
- Decr Odlicz_timeout
- If Odlicz_timeout = 0 Then
- Reset Glosniej
- Reset Ciszej
- End If
- End If
- End If
- Loop
- End
- Rc5:
- Disable Int0
- Odbierz_rc5 = 1
- Return
- kulamario
- Posty: 207
- Rejestracja: 17 sie 2015, 20:05
- Lokalizacja: Greystones
- Kontakt:
Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5
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
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
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5
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?
- kulamario
- Posty: 207
- Rejestracja: 17 sie 2015, 20:05
- Lokalizacja: Greystones
- Kontakt:
Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5
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
oj kolego nie posadzaj mnie o takie coś to oczywiste że zmieniłem pin
po prostu nie dawałem juz zmienionego kodu
- niveasoft
- Posty: 1313
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Potencjometr Alps z silniczkiem sterowanie pilotem RC5
Tak powinno działać na Tiny13. Wazne tylko by sygnał RC5 był na PORTB.1 bo tam jest INT0
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "attiny13.dat"
- $crystal = 1200000 ' Tiny13 pracuje na 1,2MHz lub 9,6MHz
- $hwstack = 32
- $swstack = 0
- $framesize = 24
- $lib "mcsbyte.lib"
- Const Wartosc_timeout = 200
- Dim Address As Byte , Kod As Byte
- Dim Odbierz_rc5 As Byte 'flaga
- Dim Odlicz_timeout As Byte
- Config Portb.1 = Input : Set Portb.1
- Config Portb.3 = Output : Portb.3 = 0 : Glosniej Alias Portb.3
- Config Portb.4 = Output : Portb.4 = 0 : Ciszej Alias Portb.4
- Config Rc5 = Pinb.1 , Wait = 2000
- On Int0 Rc5
- Config Int0 = Falling : Enable Int0
- Enable Interrupts
- Do
- If Odbierz_rc5 = 1 Then
- Getrc5(address , Kod)
- Kod = Kod And &B01111111
- Select Case Kod
- Case 16 : Reset Ciszej : Set Glosniej
- Odlicz_timeout = Wartosc_timeout
- Case 17 : Reset Glosniej : Set Ciszej
- Odlicz_timeout = Wartosc_timeout
- End Select
- Gifr.intf0 = 1 : Enable Int0 :
- Odbierz_rc5 = 0
- End If
- Waitms 1
- If Odlicz_timeout > 0 Then
- Decr Odlicz_timeout
- If Odlicz_timeout = 0 Then
- Reset Glosniej
- Reset Ciszej
- End If
- End If
- Loop
- End
- Rc5:
- Disable Int0
- Odbierz_rc5 = 1
- Return
