jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Ik wil graag op een 2*16 lcd scherm teksten programeren zonder elke keer de PIC(16F628A) te moeten programeren.
Ik wil dat doen door een 3*4 toetsenbordje te gebruiken, waarmee ik dan de letters in voer(zoals bij het smsen).
Ik wil dus bijvoorbeeld de 2 gebruiken voor a, b of c. De 3 voor d, e of f enzovoort.
Weten jullie misschien hoe ik dat kan doen?
Ik dacht zelf de nummers eerst te koppelen aan de letters(hoe weet ik nog niet) Ik wil er ook een extra knopje bij maken voor de backspace en de enter(Print op LCD).
De teksten van de personen moeten na de Printactie op de eerste regel komen te staan waarna de andere persoon iets op de 2de regel kan schrijven.
Als de teksten te lang zijn wil ik se als Shifting tekst weergeven.
Kunnen jullie me daar een beetje mee op weg helpen?
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Da's wel een hele open vraag...
Waar programmeer je in? C, assembler, PICBASIC...
[edit]
Eigenlijk is het een gesloten vraag met als antwoord ja of nee
[Bericht gewijzigd door picsels op (35%)]
Jeroen Boere
IF you can't convince them, then confuse them!
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Videomodulator
AKA Naftebakje @Tweakers.net --- Zonder dwarsliggers geen spoor
Het lijkt me dat Jorim23 idd voor elke tekst zijn PIC opnieuw programmeert.
Ben je niet eenvoudiger uit door gewoon een PCtoetsenbord via een µC aan je LCD te hangen (met een compiler die een PS/2 library heeft is dat zo gepiept)?
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Ik denk dat ik Jorim wel snap.
Hij wil de PIC zo programmeren dat hij zelf text kan weergeven op het scherm.
Dus een paar loopjes met inkey, waarbij er geteld wordt hoevaak een toets ingedrukt wordt. Dat correspondeert dan weer met een letter of een spatie.
Het Hekje bv als Backspace gebruiken etc...
Maar dan moet er ook weer iets bij dat de cursor 1 postitie opschuift.
Het is met wat nadenkwerk wel mogelijk...
vergeet dan de knopjes niet voor backspace, space, volgende regel, evt navigeren met pijltjes toetsen
mischien een MAX 232 eraan en dan via via de COM-opoort en een terminal programma even nieuwe tekst erop zetten
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Of als je met PICBASIC werkt: gebruik een (sony) IR remote: genoeg knoppen voor alle functies (ervan uitgaande dat je met 0..9 de letters á la SMS erop zet).
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Op 1 oktober 2007 19:35:47 schreef shiptronic:
vergeet dan de knopjes niet voorbackspace,space, volgende regel...
Worden beide gedaan via de "0" toets.
Backspace kan met het hekje...
Navigeren zou mogelijk horizontaal kunnen. Vertikaal lijkt me onnodig met een 2 regel-displaytje
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Ik bedoel inderdaat hetzelfde als Fantomaz zegt alleen zeg ik t iets anders
, maar de bedoeling is gelukkig duidelijk.
Wat ik me nu trouwens af vraag, kan dit wel met een 16F628?Of is die te klein qua aansluitingen(voor het lcd-tje 6, knopjes een stuk of wat)
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 1 oktober 2007 19:52:24 schreef jorim23:
Wat ik me nu trouwens af vraag, kan dit wel met een 16F628?Of is die te klein qua aansluitingen(voor het lcd-tje 6, knopjes een stuk of wat)
het kan prima, als je het LCD in 4-bits mode aansluit en de knopjes als matrix, waarbij je de datalijnen van de LCD wee kan hergebruiken. of je neemt geen knopjesmatrix maar een PC toetsenbord, kost maar 2 pinnen.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Ik heb hier een knopjesmatrix liggen. Hoe moet je een LCD in 4-bits mode aansluiten dan? Is dat zoals beschreven staat in de picbasic cursus?
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Op 1 oktober 2007 19:59:45 schreef jorim23:
Ik heb hier een knopjesmatrix liggen. Hoe moet je een LCD in 4-bits mode aansluiten dan? Is dat zoals beschreven staat in de picbasic cursus?
Ja.
4 datalijnen. Een R/W en een EN(able).
Mochten die datalijnen en die andere twee in de weg zitten met het toetsenbordje, kun je de defaults van de datalijnen en de R/W en EN aanpassen zodat ze via een andere weg aangestuurd kunnen worden.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Oke, ik heb het invoeren van nummers door. Nu heb ik nog 2 vraagjes.
1. Hoe kan ik de nummers die ik invoer omzetten naar letters? Bijvoorbeeld: ik druk 1 keer op de 2 en krijg een a. Ik druk 2 keer op de 2 en ik krijg een b. etc.
2. Hoe kan ik er voor zorgen dat ik na een punt automatisch een hoofdletter krijg?
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
waarom gebruik je niet gelijk T5 ? dat is een stuk simppeler met indrukken, wel een extra woorden boek aan leggen natuurlijk 
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
@ picsels: Ik denk dat ik het niet helemaal snap wat je bedoelen. Zou je het iets gedetailleerder kunnen uitleggen?
@ shiptronic: Dat lijkt me meer een optie voor later, maar wel een goed idee. Dank je.
[Bericht gewijzigd door jorim23 op (35%)]
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
dim var as byte
var = 0
start:
gosub toetsherkenning
if toets = 2 then ;als de toets ingedrukt is dan...
gosub toetsherkenning
while toets = 2 ;afdwingen toets los te laten
wend
inc var ;variabele vergroten
if var = 1 then print at x,y, "A"
if var = 2 then print at x,y, "B"
if var = 3 then print at x,y, "C"
if var = 4 then var = 1 ;vaker dan 3x wordt weer 1
endif
goto start
Even een opzetje hoor...
Die gosub zou naar een lookup commando moeten gaan, en daar zou gezien moeten worden welke toets ingedrukt wordt.
Je zou voor elke toets zo'n stukje code neer kunnen planten. Ieder uiteraard met zijn eigen corresponderende letters en/of opdrachten.
Je moet er nog een timertje in verwerken die je dwingt elke herindrukking van een toets binnen een gestelde tijd te doen omdat hij anders de dan aanwezige letter neerzet en een positie verder gaat.
Zoals je mobiel dat ook doet.
Verder moet je de XY assen van de printopdracht moeten laten verschuivenwanneer er een letter gezet wordt.
MAar dit is even de basis...
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Dat lookupverhaal ken ik niet.
het kan zijn dat het wat anders is dan wat ik bedoel.
Ik heb ook de instructie INKEY in mijn hoofd en mogelijk dat ik de boel doorelkaar haal.
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Op 2 oktober 2007 22:45:30 schreef picsels:
letter = LookUp var, [ "ABC" ] Print At x,y, letter
Wat doet lookup in dat verhaal??
even offtopic. in dit topic zitten erg veel posts van members... 
Ik lees alleen even mee over dat loopup gedeelte
[Bericht gewijzigd door Mitchell S op (28%)]
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Misschien even de help raadplegen?
Syntax
Variable = LOOKUP Index , [ Constant { , Constant... etc } ]Overview
Look up the value specified by the index and store it in variable. If the index exceeds the highest index value of the items in the list, then variable remains unchanged.
Operators
- Variable - a constant, variable, or expression. This is where the retrieved value will be stored.
- Index - a constant or variable. This is the item number of the value to be retrieved from the list.
- Constant(s) - any 8-bit value (0-255).A maximum of 255 values may be placed between the square brackets, 256 if using a 16-bit core device.
Oh ja, tip: gebruik niet de LOOKUPL, daar zit een bug in.
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
Op 2 oktober 2007 23:24:33 schreef Fantomaz:
[...]Wat doet lookup in dat verhaal??
Fantomaz, LOOKUP is gewoon een instructie, kijk dus even in de handleiding.
Kortgezegd komt het hierop neer.
De waarde van 'Index' bepaalt welk karakter wordt gekozen uit de opgegeven lijst (0 is het eerste karakter, 1 het tweede, enz.)
Dus:
PietJanHein = LOOKUP Index, ["ABCDEF"]
Als 'Index' de waarde 0 heeft, dan krijgt 'PietJanHein' de waarde 65 (dat is de ASCII code voor 'A')
Als 'Index' de waarde 1 heeft, dan krijgt 'PietJanHein' de waarde 66 (dat is de ASCII code voor 'B')
Als 'Index' de waarde 4 heeft, dan krijgt 'PietJanHein' de waarde 69 (dat is de ASCII code voor 'E')
Lees ook LOOKUPL beter in sommige situaties.
EDIT:
LOOKUPL een bug?
Dat is nieuw voor mij.