www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

IR sprejemnik

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Pet Sep 05, 2008 4:37 pm    Naslov sporočila:  IR sprejemnik Odgovori s citatom

Mene pa zanima zakaj mi noče štet prihodov in odhodov? IR oddajnik je preizkušen in deluje.
Mikrokontroler je ATtiny2313, sprejemni modul TSOP1840

koda ki na žalost ne deluje Sad :

$regfile = "ATtiny2313.dat"
$crystal = 4000000

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
Config Lcd = 16 * 2
Cursor Off Noblink
Config Pinb.1 = Input
Config Pinb.3 = Input
Dim A As Byte
Dim B As Byte
A = 0
B = 0

Cls
Locate 1 , 1
Lcd "Prihod"
Locate 2 , 1
Lcd "Odhod"

Do
If Pinb.1 = 1 Then Goto Prihod
If Pinb.3 = 1 Then Goto Odhod
Waitms 15
Loop

Prihod:

If Pinb.3 = 1 And Pinb.1 = 1 Then
Incr A
Locate 1 , 10
Lcd A
End If
Return

Odhod:
If Pinb.1 = 1 And Pinb.3 = 1 Then
Incr B
Locate 2 , 10
Lcd B
End If
Return
End
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gkrusi
Član
Član



Pridružen-a: Tor 24 Jul 2007 17:22
Prispevkov: 811
Aktiv.: 3.72
Kraj: Ptuj

PrispevekObjavljeno: Pet Sep 05, 2008 6:04 pm    Naslov sporočila:   Odgovori s citatom

Kaj pa se dogaja? Se sploh ka izpiše na LCDju? Če se izpiše vrednost 0 in se ne povečuje potem verjetno ne prejemaš signala od senzorja ...preveri s kako LED diodo direktno na vhodu (s preduporom).
Sicer pa kot vidim morata biti aktivirana oba senzorja za povečanje spremenljivke, kar se mi zdi nekoliko nelogično; da se prvo vprašaš po vrednosti enega senzorja, potem pa še po vrednosti obeh (bi razumel, če bi bil drugi while ali pa kaj v tem smislu, ne pa dva zaporedna if stavka le da je drugi malo bolj dopolnjen)...

Kot izboljšava pa mislim da bi lahko spremeljivke definiral z malo večjo obliko (byte je verjetno mišljen 1 bajt, torej šteje samo do 255).

Drugače pa jaz ne vidim nekih napak, je pa res da v basicu nisem "doma".

_________________
Zakaj bi bilo preprosto, če je lahko zakomplicirano???
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Pet Sep 05, 2008 6:45 pm    Naslov sporočila:   Odgovori s citatom

v zanki:

Do
If Pinb.1 = 1 Then Goto Prihod
If Pinb.3 = 1 Then Goto Odhod
Waitms 15
Loop

gledam s katere strani je prekinjen signal, nato pa grem v podprogram.
Po mojem se zatakne v podprogramu. Moralo bi prištevati pa noče.

v podprogramu bi moral gledati stanja: 0,1 ; 0,0 ; 1,0 ; 1,1 in šele nato po teh izpolnjenih pogojih prišteti prihod oz. odhod. Katere ukaze moram uporabiti?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pet Sep 05, 2008 6:57 pm    Naslov sporočila:   Odgovori s citatom

Poiskusi tako napisati, da vidiš do koder ti pride program. Nato poročaj.

Poiskusni program:
Koda:

$regfile = "ATtiny2313.dat"
$crystal = 4000000

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
Config Lcd = 16 * 2
Cursor Off Noblink
Config Pinb.1 = Input
Config Pinb.3 = Input
Dim A As Byte
Dim B As Byte
A = 0
B = 0

Cls
Locate 1 , 1
Lcd "Prihod"
Locate 2 , 1
Lcd "Odhod"

Waitms 500
Cls

Do
Locate 1 , 1 : Lcd "Sem v zanki"
If Pinb.1 = 1 Then Goto Prihod
Locate 1 , 1 : Lcd "Za prvim IF"
If Pinb.3 = 1 Then Goto Odhod
Locate 1 , 1 : Lcd "Za drugim IF"
Waitms 100
Loop

Prihod:
Locate 1 , 1 : Lcd "Sem v Prihod"
If Pinb.3 = 1 And Pinb.1 = 1 Then
Incr A
Locate 1 , 10
Lcd A
End If
Locate 1 , 1 : Lcd "Konec Prihod"
Waitms 500
Return

Odhod:
Locate 1 , 1 : Lcd "Sem v odhod"
If Pinb.1 = 1 And Pinb.3 = 1 Then
Incr B
Locate 2 , 10
Lcd B
End If
Locate 1 , 1 : Lcd "Konec Odhod"
Waitms 500
Return

End


Dodal sem ukaze Wait, tao da program ne bo finkcioniral pravilno, sicer bo štel, ampak bolj počasi bo vse skupaj potekalo. Da lahko prebereš. Pa igraj se malo pa stiskaj pa malo spremeni to poiskusno kodo, če ti bo kaj šlo navzkriž.

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pet Sep 05, 2008 7:00 pm    Naslov sporočila:   Odgovori s citatom

Sploh pa, povej za kaj rabiš to. Če je za kakšen avtek z IR senzorji, potem že vem kaj je narobe. Če pa kaj druga pa Shocked
_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Dexboy
Član
Član



Pridružen-a: Pon 01 Sep 2008 22:46
Prispevkov: 1116
Aktiv.: 5.46
Kraj: Horjul

PrispevekObjavljeno: Pet Sep 05, 2008 7:12 pm    Naslov sporočila:   Odgovori s citatom

Lahko bi bilo za parkirno hišo Wink

Avti noter, prišteva
Avti ven, odšteva

Nisem prebral celega programa (tega drugega), prvega sem in mislim da bi to lahko bilo to - poplnoma enostavna varianta drugače Wink

_________________
Imagination is more important than knowledge.
-Albert Einstein-
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Pet Sep 05, 2008 7:32 pm    Naslov sporočila:   Odgovori s citatom

Dexboy točno tako. Program bi naj prišteval prihode in odhode.

program_er grem preizkušat tvojo kodo nato poročam. Hvala zaenkrat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pet Sep 05, 2008 7:35 pm    Naslov sporočila:   Odgovori s citatom

Povej še kaj o hardweru. Kako imaš postavljeni celici, je oddajna IR priključena, kam... potem bo lžje (nam) sestaviti kodo, ki bo delovala oziroma popraviti tvojo. Kako naj bi strojno to delovalo.
_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 563
Aktiv.: 2.38
Kraj: Ljubljana

PrispevekObjavljeno: Pet Sep 05, 2008 10:28 pm    Naslov sporočila:  IR sprejemnik Odgovori s citatom

Koda:
Config Pinb.1 = Input
Config Pinb.3 = Input


Uporabi ukaz Config PortB.x = Input, potem postavi pin na visok nivo Portb.x = 1.
Stanje pina beri z ukazom IF PinB.x= (0/1).
Vlado
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pet Sep 05, 2008 10:36 pm    Naslov sporočila:   Odgovori s citatom

In za vsak slučaj na koncu vsakega podprograma še enkrat napiši Portb.x = 1, ker včasih se pin ne postavi nazaj na 1, ko da daš na 0 ali obratno.
_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 60.04
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Pet Sep 05, 2008 11:03 pm    Naslov sporočila:   Odgovori s citatom

program_er je napisal/a:
In za vsak slučaj na koncu vsakega podprograma še enkrat napiši Portb.x = 1, ker včasih se pin ne postavi nazaj na 1, ko da daš na 0 ali obratno.
Tole me spominja na lov na čarovnice...
_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 495 dni


Powered by phpBB © 2001, 2005 phpBB Group