basic-stamp 1 Proj. Board

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

basic-stamp 1 Proj. Board

Inlägg av sebastiannielsen »

jag ska programmera en Basic stamp 1 project board. Jag har kopplat en krets ihop med en kortläsare.


Bild

Kod: Markera allt

'{$STAMP BS1}
'{$PBASIC 1.0}

HIGH 0
INPUT 3
GOTO m
inta:
DEBUG "?"
LOW 4
m:

IF PIN3 = 0 THEN rc

GOTO m

rc:
DEBUG "#"
HIGH 4
readcard:
IF PIN3 = 1 THEN inta

IF PIN2 = 1 THEN read2
IF PIN2 = 0 THEN readcard
read2:
IF PIN1 = 1 THEN senddeb
GOTO send0
senddeb:
DEBUG "1"
GOTO nnn
send0:
DEBUG "0"
nnn:
GOTO readcard


Men den tar inte emot på rätt sätt.
Den får olika nollor och ettor fastän jag har läst av strobe och sett till att den bara läser när strobe är (1)

Pin 0 och Vcc är strömförsörjning. Därför är pin0 "hög" vid programmets start.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Nedan följer ett citat av mig från en annan tråd i samma ämne. Jag tror att den gäller även här. Picbasic är inte blixtrande snabb, särskilt inte när massor av tid slösas bort genom att skicka ut debuggingsutskrifter på serieporten samtidigt.
Som du skrev (EDIT: och sedan tog bort?) så skulle man eventuellt kunna ligga och läsa av signalerna i en mjuvaruloop på PC'n. Det kan kanske fungera, nackdelen med det är att det kommer in uppåt 10000 bitar per sekund vilket gör att om datorn blir upptagen med nåt annat i 0.0001 sekund (= 0.1 mS) så kommer den att tappa bort en bit under inläsningen, vilket förmodligen kommer att resultera i att användaren måste dra kortet en gång till.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

finns det nån "slökrets" som buffrar upp data, present triggar inspelning , och flera present raderar tidigare data.
och sen skickar ut det seriellt?
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

Kom på en mycket snabbare kod.

Kod: Markera allt

'{$STAMP BS1}
'{$PBASIC 1.0}
HIGH 0
INPUT 1
INPUT 2
INPUT 3
GOTO m
inta:
SEROUT 4, N2400 , ("#")
m:
IF PIN3 = 0 THEN rc
GOTO m
rc:
SEROUT 4, N2400 , ("?")
readcard:
IF PIN3 = 1 THEN inta
IF PIN2 = 1 THEN read2
IF PIN2 = 0 THEN readcard
read2:
IF PIN1 = 1 THEN senddeb
GOTO send0
senddeb:
SEROUT 4, N2400 , ("1")
GOTO nnn
send0:
SEROUT 4, N2400 , ("0")
nnn:
IF PIN2 = 0 THEN nnn
GOTO readcard
Om man kopplar 4:an till serial-mottagning på en laptop
Och kör sedan GND (5 på serporten) till Vss så funkar det finfint och går mycket snabbare. Men det blir fortfarande olika data.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

En "Serout 2400" tar ca 4 mS att utföra. Bittarna från kortläsaren kommer in med upp till 0.1 mS intervall enligt databladet har jag för mig. Programmet är alltså 40 gånger för slött.

Har du provat att dra kortet lååångsamt genom läsaren?
Användarvisningsbild
MadModder
Co Admin
Inlägg: 30022
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Undrar om det inte skulle gå snabbare att läsa av kortläsaren direkt med parallellporten och hoppa över BS1:an helt.
sebastiannielsen
Inlägg: 3662
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg av sebastiannielsen »

är pararellporten snabbare än serialporten?
Användarvisningsbild
PaNiC
Inlägg: 2565
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Ja.
Skriv svar