Miniräknare på AVR
Kod: Markera allt
uint16 convert(char *indata)
{
uint16 result = 0;
uint16 i = 10000
while(*indata)
{
result += (*indata - '0') * i;
i /= 10;
if(!i) i=1; //fix
indata++;
}
}

EDIT: missa ett +, den funkar nu!
Suck, den kommer ju bara funka med 5 siffriga tal.. Ibland är jag rätt bra trög.... jaja.. ni får se till att formatera asciiteckena med nollor först

Om man kör åt andra hållet och behandlar minst värda siffran först så klarar man dels valfritt antal siffror (tills värdena blir för stora) och dels så får man multiplikation med 10 istället för division, vilket görs med bara ett par shift och additioner på en liten processor (utan mul och div i hårdvara).Suck, den kommer ju bara funka med 5 siffriga tal.. Ibland är jag rätt bra trög.... jaja.. ni får se till att formatera asciiteckena med nollor först
cyr: sant sant.. men det blir ju jobbigare eftersom man måste ta reda på hur lång strängen är i förväg.. så man vet var man ska sluta...
iof är det ju bara att whilea sig på samma sätt jag gör, lagra adressen och sen whilea sig igenom igen från andra hållet.. men det kommer ju gå åt en massa mer minne och instruktioner
iof är det ju bara att whilea sig på samma sätt jag gör, lagra adressen och sen whilea sig igenom igen från andra hållet.. men det kommer ju gå åt en massa mer minne och instruktioner

Har ni redovisat era projekt ?
Jag skrev klart miniräknarprogrammet men har inte orkat redovisa än
Jag tog ändå mer än tillräckligt med poäng i höstas så det är lite svårt att motivera sig 
Här är mitt program om någon vill kika:
http://authors.aspalliance.com/aylar/Vi ... odeID=3768
Kompilerat:
http://authors.aspalliance.com/aylar/Vi ... odeID=3769
/Johan
Jag skrev klart miniräknarprogrammet men har inte orkat redovisa än


Här är mitt program om någon vill kika:
http://authors.aspalliance.com/aylar/Vi ... odeID=3768
Kompilerat:
http://authors.aspalliance.com/aylar/Vi ... odeID=3769
/Johan