Miniräknare på AVR

Berätta om dina pågående projekt.
danei
EF Sponsor
Inlägg: 26404
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

kolla i acii-tabellen. Det är ganska lätt. Men jag kommer inte ihåg exakt hur det var. Men alla talen ligger i följd. så det är bara att ta bort förskutningen.
Rymdninja
Inlägg: 330
Blev medlem: 15 december 2003, 13:41:25
Ort: Göteborg

Inlägg av Rymdninja »

jo..._det_ är inget problem....det jobbiga är när det kommer
"23664"...hur gör man om det till binärt enkelt...?
danei
EF Sponsor
Inlägg: 26404
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Efter som du ska räkna med basen 10 så undrar jag om det inte är lättast att ha en byte per siffra.
Användarvisningsbild
AndLi
Inlägg: 17129
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

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++;
 }
}
den klarar bara av tal upp till 65535, max fem tecken, inget negativt, strängen ska vara nullterminerad, och jag har säkert pekat nått fel, men så gör man quick and dirty :)

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 :)
Rymdninja
Inlägg: 330
Blev medlem: 15 december 2003, 13:41:25
Ort: Göteborg

Inlägg av Rymdninja »

danei skrev:Efter som du ska räkna med basen 10 så undrar jag om det inte är lättast att ha en byte per siffra.
hmm.....det skulle juh vara en ide....
Det är kanske inte så snyggt, men det är nog helt klart enklare att implementera... :)
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

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).
Användarvisningsbild
AndLi
Inlägg: 17129
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

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 :)
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

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
erkki
Inlägg: 9
Blev medlem: 22 januari 2005, 01:15:04

Inlägg av erkki »

Enklast är att implementera en RPN räknare, då blir det mycket enklare att programmera gränssnittet mot användaren och ni kan koncentrera er beräkningsdelen. Frågan är bara hur duktig AVRen är på att beräkna McLaurin-serier.
Skriv svar