Sida 1 av 3
Första exempelkoden...
Postat: 2 juli 2007, 19:43:45
av sodjan
Jag har en längre tid tänk få upp lite PIC exempelkod på min hemsida.
Nu har jag till slut tagit mig tid att i alla fall lägga upp en första kod...
Det är för LCD HD44780 hantering. Se :
http://www.jescab.se/HD44780.html
Kommenterar är välkomna. Är det lagom "nivå" ?
Är det för rörigt (ja, jag såg direkt en del saker som skulle kuna vara bättre/snyggare...

)
Postat: 2 juli 2007, 19:47:29
av spufuz
kul för det är just assembler jag vill lära mig!
Är inte långt från att beställa LCD-disp. från dig.
Men har du nåt tips på "nybörjar"-projekt?
Kanske nån LED-styrning eller så?
Postat: 2 juli 2007, 19:53:46
av pcmper
He He
Tacka vet jag basic, ett lätt språk

Postat: 2 juli 2007, 20:15:12
av mrOh
Snyggt!
Jag uppskattar det verkligen. Jätteskönt att ha exempel med välkommenterad kod att glutta på när man fastnat med nåt.
Postat: 2 juli 2007, 20:17:51
av Landrash
Underbart kommenterat:D
Skulle om det är möjligt vilja ha ännu enklare exempel

Postat: 2 juli 2007, 22:21:22
av Micke_s
Ser vettigt ut och är bra kommenterat(är alergisk mot dålig kommenterad kod). Ser att du använder c-style på textsträngarna.
Programmerar sällan i asm själv men "Keep up the good work".
Postat: 2 juli 2007, 23:03:53
av sodjan
Vad är "C-style" ???
Postat: 2 juli 2007, 23:09:50
av Micke_s
Avslutar textsträngar med 0x00
Postat: 2 juli 2007, 23:24:33
av maha
Hur skulle man annars avsluta en textsträng på ett vettigt sätt?
Postat: 2 juli 2007, 23:40:55
av Micke_s
Lagra längden för sig har jag sett t.ex
Edit: eller t.ex. en kombination av tecken.
Postat: 3 juli 2007, 00:06:12
av Khaki
KANON!
Precis det vi behöver som inte har tid/lust att plöja igenom tonvis med datablad bara för att testa/bygga en kul grej. Sedan lär man sig det man behöver om man vill gå vidare.
4-5 st sådana där exempelprojekt, antingen olika eller påbyggnad, så kan du sälja hela kit till sådana som mig.

Postat: 3 juli 2007, 00:08:04
av sodjan
> Avslutar textsträngar med 0x00
Aha, då är jag med på banan igen...
Jag är fullständigt allergisk mot null-terminated strings, normalt sätt.
*Här* var det dock det enklaste sättet att lösa det på, och det medför
inga säkerhetsrisker. I *riktiga* datorer är det ett jävulens påfund.
T.ex "descriptors" är ett mycket bättre sätt, och det
förhindrar i princip helt t.ex "buffer overflow" attacker.
En descriptor är en datastruktur som innehåller olika fält
för t.ex datatyp, längd, läs/skriv rättigheter o.s.v.
Används t.ex vid subrutinanrop.
Så jag hoppas inte att min lösning här med h'00' på slutet
låter som om jag skulle vara speciellt förtjust i C/unix/linux eller
liknande "garageprodukter"...

Postat: 3 juli 2007, 00:16:31
av sodjan
> 4-5 st sådana där exempelprojekt,
Japp, de ligger som kod i min lokala maskin.
Jag måste bara få tid att snygga till dom lite och knacka ihop sidorma.
> Skulle om det är möjligt vilja ha ännu enklare exempel
Jo, det finns flera val här som är lite svåra...
Enkel kod (men med dålig programmeringstil) eller lite mer kod
som är "bättre" i stil ?
Kompletta koder som gör något "nyttigt" eller korta snuttar som
visar en speciell teknik/lösning (men som inte går att köra "as-is") ?
Jag tror att jag har en bra bild över hur jag vill ha det.
Det blir flera kompletta koder (likt den för LCD) som går att "bygga rent"
("clean build") så att man har något fungerande att utgå från.
Det kommer även att bli korta koder som visar någon speciell teknik
som är vanlig. T.ex läs/skriv från USART eller likande. Inte alltid
kompletta program...
Så ser i alla fall min bild av det ut.
En annan sak är att jag har valt allt skriva all kod i "relocatable mode",
jag tycker att det dels blir snyggare, dels är det mer "framtid" i det.
Så deet blir inga ORG eler EQU i mina koder...

Postat: 3 juli 2007, 11:39:36
av Kaggen
Var det inte i MS-DOS man hade '$' terminerade strängar?
Synd jag inte såg din exempelkod för LCD innan jag proggade min egen. Jag hade stora problem med mina delays tills det visade sig att jag satt dem på lite konstiga ställen. Däremot får jag inte till 4 rader riktigt (har en gammal 4x20 display Optrex DMC20434), i databladet för LCD:n finns inget sådant exempel på initieringen/kommando, står bara om två eller enradiga displayer i just det avsnittet.
Nåväl får väl hacka vidare på detta.
Postat: 3 juli 2007, 13:53:58
av bos
sodjan skrev:Så jag hoppas inte att min lösning här med h'00' på slutet
låter som om jag skulle vara speciellt förtjust i C/unix/linux eller
liknande "garageprodukter"...

C, garageprodukt? Vad yrar du om?