Infra távirányító

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

HozzászólásSzerző: gerry » 2010. augusztus 1. vasárnap, 15:14

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! :)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3321
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2010. augusztus 1. vasárnap, 16:54

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!

:lol:

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.
8)

Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

HozzászólásSzerző: gerry » 2010. augusztus 2. hétfő, 12:16

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!

:lol:

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.
8)


Ha most gonosz akarnék lenni :twisted: , 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.
Én is szeretném megérni a korodat olyan szellemi frissességgel, amivel te rendelkezel. :D akkor összedobom a hardwert, hogy lehessen tesztelni! További szép napot :)

Avatar
Ragen
DrótVégénSzéndarab
Hozzászólások: 17
Csatlakozott: 2010. július 16. péntek, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Ragen » 2010. augusztus 28. szombat, 22:07

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


szóval a két kimeneten kell forgatni motort fel-le távval...
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?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9990
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2010. augusztus 29. vasárnap, 7:05

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....

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3321
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2010. augusztus 29. vasárnap, 7:43

És mért nem teszel be a Select Case-be 3. gomb vizsgálatot? Amivel megállíthatnád a motort! :?:

Avatar
Little
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2006. december 28. csütörtök, 7:00

RC5 vs pwm

HozzászólásSzerző: Little » 2010. szeptember 6. hétfő, 14:22

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
A hozzászólást 1 alkalommal szerkesztették, utoljára Little 2010. szeptember 7. kedd, 1:45-kor.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9990
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2010. szeptember 6. hétfő, 14:31

$mcsbyte.lbx-t vedd ki az elejéről...

Config lcdmode=port - kivenni (PINben hajtod)

Pihen: ill Torol: utan direkt nincs return?

Avatar
Little
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2006. december 28. csütörtök, 7:00

HozzászólásSzerző: Little » 2010. szeptember 6. hétfő, 14:48

Robert írta:$mcsbyte.lbx-t vedd ki az elejéről...

Config lcdmode=port - kivenni (PINben hajtod)

Pihen: ill Torol: utan direkt nincs return?


Nem is ertettem minek kell az elejere (az rc5 mintaban ugy volt, ezert hagytam)
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)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3321
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2010. szeptember 6. hétfő, 19:26

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!
:?: :roll:

És nincsen: ON interrupt label
Hova ugrik az INT0??
:?:

Avatar
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

HozzászólásSzerző: puzzafutar » 2011. január 4. kedd, 21:11

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

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9990
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2011. január 4. kedd, 21:13

A Sony nem RC5 kódolást használ....

http://www.mcselec.com/index.php?option ... &Itemid=57

Avatar
puzzafutar
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2007. május 13. vasárnap, 6:00

HozzászólásSzerző: puzzafutar » 2011. január 4. kedd, 21:21

megnéztem, amit adtál linket. a bascom fordító hibát ír, mégpeddig a
"Config Serialout = Buffered , Size = 150" sorra.
out of SRAM space - kevés lenne hozzá az AVR? ha nem, akkor hogyan korrigálhatom? vegyem kisebbre a méretét? melyik lábra kössem a TSOP kimentet?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9990
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2011. január 4. kedd, 21:26

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.

Avatar
puzzafutar
DrótVégénSzéndarab
Hozzászólások: 47
Csatlakozott: 2007. május 13. vasárnap, 6:00

HozzászólásSzerző: puzzafutar » 2011. január 4. kedd, 21:39

á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? :D


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég