Ik ben nu 2 weken aan het rommelen met een PIC.
Best wel leuk opzich.
LCD schermpje werkt ook al aardig.

Ik schrijf het programma gewoon in .asm (kladblok)

Nu heb ik de volgende vraag:
Ik wil dmv. toetsen door een menu bladeren, dit moet worden weergegeven op het LCD.
Nu wil ik graag de tekst op onderstaande manier opslaan:

HoofdMenu = "Algemeen","Instellingen","Status"

Dus in een soort van array, hoe werkt dit met een PIC 16F84A ?

Vervolgens wil ik dmv. de knopjes een woord maken.
Dit word weergegeven op het LCD.
Bijv. Schuur

Nu moet "Schuur" worden opgeslagen in de PIC.
Moet ik nu voor elke character een appart adres nemen ?
Dus bijv. op 0x028 komt de S en op 0x029 komt de c en op 0x030 komt de h, enz...

Of kan dit simpeler en dus dynamischer ?
Alvast bedankt voor de antwoorden ;-)

hoi,

1 adres = 1 karakter. Gaat helaas niet anders.
Ik hoop dat je genoeg aan je RAM en/of je EEPROM hebt.

Da fripster

Op 6 december 2005 20:11:57 schreef fripster:
hoi,

1 adres = 1 karakter. Gaat helaas niet anders.
Ik hoop dat je genoeg aan je RAM en/of je EEPROM hebt.

Da fripster

Ik heb ook een lcd'tje (gisteren gekregen).
Voor een array heb je zeker genoeg plaats, als je hem een beetje slim gebruikt kun je hem vaker dan 1x gebruiken dus heb je er dan maar 1 nodig.

Je hebt verschillende mogelijkheden.

Als je weet hoeveel woorden je maximaal wilt opslaan en hoe lang die woorden maximaal mogen zijn, dan kan je gewoon geheugenruimte voor ieder woord reserveren.

Je kan ook bijhouden welk woord waar staat: je hebt dan een lijst (=array) waar begin-adressen in staan.
Je kunt dan meer woorden opslaan (veel korte woorden of weinig lange) en bent wat dat betreft dus flexibel.
Is alleen wel iets meer programmeerwerk.

Als je echt wil bezuinigen op bits kan je elke letter van het woord opslaan als een 5 bits offset tov vd letter a.

Dan heb je voor heel het alfabet slechts
5*26 bit nodig ipv 8*26 bits. Dus een besparing van 37.5%, vooral als je veel tekst hebt zal het wel iets helpen

Voor de hoofdletters moet je ook gewoon een offset bijtellen.

Is wel wat geknutsel om te programmeren (dus niet simpeler), maar je kan wel wat bits besparen.

Grtz

Op 7 december 2005 16:21:36 schreef JayT:
Als je echt wil bezuinigen op bits kan je elke letter van het woord opslaan als een 5 bits offset tov vd letter a.

Dan heb je voor heel het alfabet slechts
5*26 bit nodig ipv 8*26 bits. Dus een besparing van 37.5%, vooral als je veel tekst hebt zal het wel iets helpen

Voor de hoofdletters moet je ook gewoon een offset bijtellen.

Is wel wat geknutsel om te programmeren (dus niet simpeler), maar je kan wel wat bits besparen.

Grtz

Dat is wel mogelijk maar dat is ontzettend veel werk.
Je hebt gelovelijk in een gemiddelde pic ongeveer 300 ram zitten en dat zijn dus 300 karakter. moet denk ik genoeg zijn ;)

Bedankt voor de informatie, ik heb gister Proton+ PicBasic besteld. ;-)
Dat zal ook wel een stukje makkelijker werken.

Je kunt het ook in je flashgeheugen wegschrijven. Dan heb je waarschijnlijk wel plek zat.

Of een externe, serieele EEPROM van zoveel K.

Op 8 december 2005 14:25:04 schreef DIY:
Je kunt het ook in je flashgeheugen wegschrijven. Dan heb je waarschijnlijk wel plek zat.

je kan niet in je programmagehuegen opslaan , want u programma zit daar .

tenzij je de data-ram-geheugen bedoelt

Op 8 december 2005 14:25:04 schreef DIY:
Je kunt het ook in je flashgeheugen wegschrijven. Dan heb je waarschijnlijk wel plek zat.

Runtime opslaan in de flash van een 16F84(a) lukt niet.
Dit kan wel bij de 16F87x en ik dacht de 16F88. Zo werken de bootloaders ook. Voor een 16F84(a) heb je maar weinig plek. 64 bytes aan EEPROM. en iets meer aan RAM maar daar ben je er al enkele van kwijt voor je programma. Betere optie is externe EEPROM.

Op 8 december 2005 22:13:44 schreef Willie Worteltje:
[...]
Runtime opslaan in de flash van een 16F84(a) lukt niet.

Maar de TS noemt allemaal vaste teksten die niet veranderen en die kan je dus het makkelijk in het FLASH opslaan, meestal heb je daar de meeste ruimte over. Anders is het EE een optie als je dat niet gebruikt (maar meestal slechts 128 tot 256 bytes)

Op 8 december 2005 22:13:44 schreef Willie Worteltje:
Runtime opslaan in de flash van een 16F84(a) lukt niet.

Dit had ik even over het hoofd gezien (ben de F84a niet meer gewend..)
Maar je kunt toch lookuptable maken mbv retlw?
Dan kun je wel degelijk in flash je data zetten en via een offset de juiste letters pakken.

EDIT

Op 8 december 2005 21:47:19 schreef Extragroot:
je kan niet in je programmagehuegen opslaan , want u programma zit daar .

Dat kan met andere PICs dus wel..

[Bericht gewijzigd door DIY op ]

Voor vaste teksten idd geen bezwaar om de flash te gebruiken mbv een lookuptable(retlw). Doe ik ook. Echter de TS wil ook een aantal woorden(bijv Schuur) ingeven en opslaan. Dit kan opgeslagen worden in de EEPROM (tot 64 letters in een 16F84A).

[Bericht gewijzigd door Willie Worteltje op ]

Het gaat ook inderdaad om teksten die de gebruiker zelf kan invoeren.
Ik denk dat ik binnenkort maar ff een grotere MC haal.
En ik neem aan dat Proton+ Pic Basic mij ook een handje helpt ;-)
Alleen heb ik hem nog niet binnen, ik hoop morgen dan.