Infra távirányító
Lemaradt!
Tehát mintegy váltó kapcsoló úgy kellene működnie a PortB bemeneteknek és az infrával tudnám váltani a kapcsolást.
Egyszerűbben, váltó kapcsolást szeretnék csinálni egy kapcsolóval és egy infra vezérléssel.
Valakinek valami ötele?
Van saját elképzelésem a programról ne tesék félreérteni de kíváncsi lennék ki hogy állna neki a feladatnak!
Tehát mintegy váltó kapcsoló úgy kellene működnie a PortB bemeneteknek és az infrával tudnám váltani a kapcsolást.
Egyszerűbben, váltó kapcsolást szeretnék csinálni egy kapcsolóval és egy infra vezérléssel.
Valakinek valami ötele?
Van saját elképzelésem a programról ne tesék félreérteni de kíváncsi lennék ki hogy állna neki a feladatnak!
Tudod mit lusta vagyok megoldani a problémádat!
De ha feldobod ide a te megoldásodat, akkor megmondom, hogy szerintem jó e!
Vagy én, hogy csinálnám!
Mondjuk:
SELECT CASE var
CASE test1 : statements
[CASE test2 : statements ]
CASE ELSE : statements
END SELECT
És előrébb venném a bonyolultabb több változós feltételeket, a végére az egyszerűbbet.
Mert a Case az első igaz ágat végrehajtja, aztán kiugrik.
De ha feldobod ide a te megoldásodat, akkor megmondom, hogy szerintem jó e!
Vagy én, hogy csinálnám!
Mondjuk:
SELECT CASE var
CASE test1 : statements
[CASE test2 : statements ]
CASE ELSE : statements
END SELECT
És előrébb venném a bonyolultabb több változós feltételeket, a végére az egyszerűbbet.
Mert a Case az első igaz ágat végrehajtja, aztán kiugrik.
Ha most gonosz akarnék lenni , akkor azt mondanám, hogy a te korodban már én is lusta lennék, de tisztelem a korodat és azt, hogy mindenkinek segítesz.kapu48 írta:Tudod mit lusta vagyok megoldani a problémádat!
De ha feldobod ide a te megoldásodat, akkor megmondom, hogy szerintem jó e!
Vagy én, hogy csinálnám!
Mondjuk:
SELECT CASE var
CASE test1 : statements
[CASE test2 : statements ]
CASE ELSE : statements
END SELECT
És előrébb venném a bonyolultabb több változós feltételeket, a végére az egyszerűbbet.
Mert a Case az első igaz ágat végrehajtja, aztán kiugrik.
Én is szeretném megérni a korodat olyan szellemi frissességgel, amivel te rendelkezel. akkor összedobom a hardwert, hogy lehessen tesztelni! További szép napot
szóval a két kimeneten kell forgatni motort fel-le távval...kapu48 írta:Akkor:Kód: Egész kijelölése
Getrc5(Address , Command) If Address = 0 Then Command = Command And &B10111111 Select Case Command Case 16: Pind.4 = 0 Pind.5 = 1 Case 17: Pind.5 = 0 Pind.4 = 1 End Select Else 'Ha nincs jel kikapcsol Pind.4 = 0 Pind.5 = 0 End If
A hardver elindult, de így nem megy egyenletesen.
Próbáltam így is: Else ág megszünik és kicsi várakozás utána a nullázás előtt, eredmény ugyan az :
If Address = 0 Then
Command = Command And &B10111111
Select Case Command
Case 16:
Pind.4 = 0
Pind.5 = 1
Case 17:
Pind.5 = 0
Pind.4 = 1
End Select
End If
Waitms 100
Portd.4 = 0
Portd.5 = 0
Robi!
Írtad, hogy valahogy az időt kellene nézni vagy hogy még le van-e nyomva a gomb. Ezt hogyan?
Az időt úgy, h valamely gomb megnyomása után x ideig a 0 jelet nem veszed figyelembe....
Tessék egy vacak sorosportot felapplikáni hogy lásd mi történik programfutás alatt!
itt lenyomod a távirányitóna gombot, a GETRC5 észreveszi.
De a távirányító 1-2 adatcsomagot ad 1 sec alatt, míg a getrc5 4-6x is képes ellenőrizni! Így a 2. lépésben simán 0-ra fut....
Tessék egy vacak sorosportot felapplikáni hogy lásd mi történik programfutás alatt!
itt lenyomod a távirányitóna gombot, a GETRC5 észreveszi.
De a távirányító 1-2 adatcsomagot ad 1 sec alatt, míg a getrc5 4-6x is képes ellenőrizni! Így a 2. lépésben simán 0-ra fut....
RC5 vs pwm
Lenne egy problemam a beepitett RC5 koddal, illetve hasznalataval.
Gondoltam feldobom ide, mert lehet nem latom a fatol az erdot...
Infra taviranyitoval szeretnek rgb ledet vezerelni. A led vezerlese 3 pwm kimenettel, valamint az rc5 fogadas, ld-re iratas mukodik tokeletesen, de egyutt a ket kod nem.
A nem mukodes annyit jelent hogy mindegy melyik gombot nyomom a taviranyiton akkor is valt szineket (leptet a data mezoben).
Mega 128-at hasznalok, ebben van 3 timer (lehet tobb is). Ugy ertelmezem az RC5 alapbol a timer1-et hasznalja.
Amiket probaltam:
-Pine.5 (int5) tsop, pwm:timer1, kimenetek oc1a/b/c, rc5
-Pine.5 (int5) tsop, pwm:timer1, kimenetek oc1a/b/c, rc5, timer=2 (elvileg a at lehet konfigolni hogy masik timer-t hasznaljon rc5-hoz)
-Pind.0 (int0) tsop, pwm:timer1, kimenetek oc1a/b/c
-Pind.0 (int0) tsop, pwm:timer3, kimenetek oc3a/b/c
Gondoltam feldobom ide, mert lehet nem latom a fatol az erdot...
Infra taviranyitoval szeretnek rgb ledet vezerelni. A led vezerlese 3 pwm kimenettel, valamint az rc5 fogadas, ld-re iratas mukodik tokeletesen, de egyutt a ket kod nem.
A nem mukodes annyit jelent hogy mindegy melyik gombot nyomom a taviranyiton akkor is valt szineket (leptet a data mezoben).
Mega 128-at hasznalok, ebben van 3 timer (lehet tobb is). Ugy ertelmezem az RC5 alapbol a timer1-et hasznalja.
Amiket probaltam:
-Pine.5 (int5) tsop, pwm:timer1, kimenetek oc1a/b/c, rc5
-Pine.5 (int5) tsop, pwm:timer1, kimenetek oc1a/b/c, rc5, timer=2 (elvileg a at lehet konfigolni hogy masik timer-t hasznaljon rc5-hoz)
-Pind.0 (int0) tsop, pwm:timer1, kimenetek oc1a/b/c
-Pind.0 (int0) tsop, pwm:timer3, kimenetek oc3a/b/c
A hozzászólást 1 alkalommal szerkesztették, utoljára Little 2010. szeptember 7. kedd, 1:45-kor.
Nem is ertettem minek kell az elejere (az rc5 mintaban ugy volt, ezert hagytam)Robert írta:$mcsbyte.lbx-t vedd ki az elejéről...
Config lcdmode=port - kivenni (PINben hajtod)
Pihen: ill Torol: utan direkt nincs return?
A tobbit javitottam, de sajnos meg mindig ugyanaz a felallas: mindegy melyik gombot nyomom a taviranyiton, a data "tombben" leptet, es nem a gombokhoz tartozo funkcio hajtodik vegre. (Gondolom valamiert a timerek? akadnak ossze)
Az elején azt mondod, hogy declarálsz szubrutinokat!
„Declare Sub Pihen
Declare Sub Torol
Declare Sub Pwmki
Declare Sub Fenyfel
Declare Sub Fenyle”
Végül meg csak azonos nevű címkéket hozol létre:
Pihen:
Waitms 300
Torol:
Locate 3 , 2
Lcd " "
Fenyle:
B = B - 10
R = R - 10
G = G - 10
Return
….
Ezek nem jók!
Nézd meg a Help: „DECLARE SUB” részét!
És nincsen: ON interrupt label
Hova ugrik az INT0??
„Declare Sub Pihen
Declare Sub Torol
Declare Sub Pwmki
Declare Sub Fenyfel
Declare Sub Fenyle”
Végül meg csak azonos nevű címkéket hozol létre:
Pihen:
Waitms 300
Torol:
Locate 3 , 2
Lcd " "
Fenyle:
B = B - 10
R = R - 10
G = G - 10
Return
….
Ezek nem jók!
Nézd meg a Help: „DECLARE SUB” részét!
És nincsen: ON interrupt label
Hova ugrik az INT0??
- puzzafutar
- DrótVégénSzéndarab
- Hozzászólások: 47
- Csatlakozott: 2007. május 13. vasárnap, 6:00
Egy hasonló kérdés
Sziasztok!
van egy LCD kijelzőm és egy TSOP infra vevőm. A probléma az, hogy az alábbi kódot égettem be a ATTiny2313-omba, de mindig 255-öt ír az address-re és commandra.
Egy Sony távirányító jelét próbálom megfejteni, de nem jutottam el még odáig, hogy kicsalogassam belőle ezt a két értéket. Tudtok segíteni, hogy mit kéne máshogy? már sok helyen utánnanéztem, találtam 10 féle kódot, de egyik sem működött sajna... Írtam már pár progit AVR-re, de nem mondanám magamat nagyon járatosnak.
$regfile = "attiny2313.dat"
$crystal = 4000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
$lib "mcsbyte.lbx"
Config Portb = Output 'LCD kijelző
Config Rc5 = Pind.3 'INT1 megszakítás lábon
Enable Interrupts
Dim Address As Byte , Command As Byte
Lcd "Waiting for RC5"
Do
Getrc5(address , Command)
Locate 2 , 1
Lcd Address ; " " ; Command
Loop
End
van egy LCD kijelzőm és egy TSOP infra vevőm. A probléma az, hogy az alábbi kódot égettem be a ATTiny2313-omba, de mindig 255-öt ír az address-re és commandra.
Egy Sony távirányító jelét próbálom megfejteni, de nem jutottam el még odáig, hogy kicsalogassam belőle ezt a két értéket. Tudtok segíteni, hogy mit kéne máshogy? már sok helyen utánnanéztem, találtam 10 féle kódot, de egyik sem működött sajna... Írtam már pár progit AVR-re, de nem mondanám magamat nagyon járatosnak.
$regfile = "attiny2313.dat"
$crystal = 4000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
$lib "mcsbyte.lbx"
Config Portb = Output 'LCD kijelző
Config Rc5 = Pind.3 'INT1 megszakítás lábon
Enable Interrupts
Dim Address As Byte , Command As Byte
Lcd "Waiting for RC5"
Do
Getrc5(address , Command)
Locate 2 , 1
Lcd Address ; " " ; Command
Loop
End
- puzzafutar
- DrótVégénSzéndarab
- Hozzászólások: 47
- Csatlakozott: 2007. május 13. vasárnap, 6:00
Igen. Kisebbre a SRAM buffert...
"This program works by connecting the Data output from the IS1U621 to the ICP
' Pin of the AVR and then uses the Capture1 interrupt to measure the time
' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt
' to detect that there has not been a bit toggle for several bit times to
' detect the end of the packet."
Szóval az ICP-re.
"This program works by connecting the Data output from the IS1U621 to the ICP
' Pin of the AVR and then uses the Capture1 interrupt to measure the time
' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt
' to detect that there has not been a bit toggle for several bit times to
' detect the end of the packet."
Szóval az ICP-re.
- puzzafutar
- DrótVégénSzéndarab
- Hozzászólások: 47
- Csatlakozott: 2007. május 13. vasárnap, 6:00
átkötöttem, kijavítottam a kódot, de így nem ír ki semmit. lehet, hogy a TSOP csak a sony jeleit nem tudja kezelni? szóval lehet, hogy be kéne szerezni egy IS1U621 tipusu vevőt.
De akkor már egyszerübb a hi-fi távirányítót használni (PHILIPS), ami RC5 és szerintem jó hozzá a TSOP is.
kíváncsi vagyok a véleményekre, hogy jól gondolkodtam-e?
De akkor már egyszerübb a hi-fi távirányítót használni (PHILIPS), ami RC5 és szerintem jó hozzá a TSOP is.
kíváncsi vagyok a véleményekre, hogy jól gondolkodtam-e?