Drivrutin för Grafisk display [AVR]

Berätta om dina pågående projekt.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Korken: Det var kodsnuttar från två olika ställen som visade på två olika saker. I standard C (ANSI C) får man endast deklarera variabler i början av "{" block, t.ex. först i en funktionskropp eller innuti ett nästlat "{" block.

Personligen gillar jag inte s.k. C/C++ kod, dvs var man använder vissa små trevliga saker från C++, men inte utnyttjar C++ fullt ut, dvs de objektorienterade egenskaperna. Kod var man klarar sig med standard C skall man skriva i standard C, så att man i alla lägen kan kompilera den med en standard C kompilator. Men detta är min personliga åsikt (som baseras på erfarenhet från 10 års jobb som programmerare :wink: ). Välskriven C eller C++ kod, även om den är skriven för en hårdvarunära sak som en MCU kan ofta flyttas med väldigt få ändringar till en ny kompilator och MCU/CPU från annan tillverkare.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Ahh, okej.
Men de få problem som uppstår är ju bara att ändra på. :)

//Emil
Användarvisningsbild
maha
EF Sponsor
Inlägg: 1685
Blev medlem: 22 november 2005, 09:47:02
Ort: Jakobstad, Finland

Inlägg av maha »

Absolut, men varför inte göra rätt från början? :wink:
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Hehe, för att vara ärlig sp viste jag inte att man var tvungen att göra så. :roll:

//Emil
sianfa
Inlägg: 2
Blev medlem: 16 september 2008, 14:15:51
Ort: Jung, Vara

Inlägg av sianfa »

Använde mig av den här koden men fick göra en hel del ändringar för att få det att funka. Sparade dock en hel del jobb, så jag får tacka så mycket.

Jag tyckte att rätt många tecken såg konstiga ut, men det är ju väldigt lätt att gå in och ändra så att de ser ut precis som man vill. Är ju egentligen inga problem att lägga till egna tecken heller om man vill. Eftersom koden är så välstrukturerad och lättförståelig tycker jag den var utmärkt att utgå från. Bra jobbat Korken!
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Tackar! :)
Lägg gärna upp lite bilder på det du har åsta kommit!

Jo, den går att förfina och jag har bara inte orkat samt tecknena jag har är alla gjorda för hand, så de vart som jag tyckte om det, men det går att ändra på för de som vill. :)

//Emil
Användarvisningsbild
Rohan
Inlägg: 1063
Blev medlem: 7 april 2004, 08:24:39
Ort: Eksjö, Småland
Kontakt:

Inlägg av Rohan »

Fråga:
Hur mycket minne kräver det här? Sitter nämligen och funderar på om jag ska använda en grafisk display till mitt projekt eller om jag ska hålla mig till de teckenbaserade.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Nu är jag inte säker, men de enda globala variablerna är lcd_x och lcd_y och de är 2 byte, sen dras det mer när speciella funktioner körs och LCD_Draw_Line drar mest, men de minnet frigörs när funktionen har körts klart.

Någon är säkert bättre på detta än mig men jag kan köra koden på en Mega88 utan problem.

Edit:
Jag pratar om RAM, inte Flash.
Det drar ca 4kb Flash har jag för mig.

//Emil
Senast redigerad av Korken 16 september 2008, 17:31:37, redigerad totalt 1 gång.
sianfa
Inlägg: 2
Blev medlem: 16 september 2008, 14:15:51
Ort: Jung, Vara

Inlägg av sianfa »

Jag kör den på en ATmega16. Programmet tar just nu 6832 bytes men då är det en del annat också (dioder, AD-omvandlare med mera).

Håller på med ett annat projekt nu så hårdvaran är inte igång, men jag kan se om jag kan fixa någon bild om ett tag. Projektet ska nämligen igång igen inom ett par veckor.
Användarvisningsbild
Rohan
Inlägg: 1063
Blev medlem: 7 april 2004, 08:24:39
Ort: Eksjö, Småland
Kontakt:

Inlägg av Rohan »

Jag tänkte i första hand på det minne som teckentabellen tar. Ritar du direkt på displayen eller dubbelbuffrar på något vis? Jag gjorde ett överslag och kom fram till att min display på 192x64 pixlar skulle kräva 192*64/8 = 1536 byte SRAM. Och sedan eventuella teckentabeller men det borde väl inte bli mer än 7*10*100/8 = 875 för 100 tecken, det skulle visserligen ligga i programminnet eller eeprom. Men det kanske går lika bra att rita direkt i displayens minne?
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Inget av det ligger i RAMet, jag ritar direkt mot displayen.
Och alla tecken ligger i Flash, allt för att det skulle dra så lite RAM _som möjligt_.

//Emil
Användarvisningsbild
Rohan
Inlägg: 1063
Blev medlem: 7 april 2004, 08:24:39
Ort: Eksjö, Småland
Kontakt:

Inlägg av Rohan »

Det låter ju onekligen smidigt. Fortsätter gärna med några fler frågor, om det går för sig.

1) Skulle det finnas någon fördel med buffring i SRAM?
2) Har du någon uppskattning på hur lång tid det tar att rita en display, säg 10% full? Alltså ungefär 1200 pixlar.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Inte på en sånhär display skulle jag tro, kanske att det finns någon liten fördel som jag inte vet.
Att rita ut en sablans massa linjer, cirklar och alla tecken samtidigt (som testbilden fast 2x mer grejer) skulle jag uppskatta till 0.5s.
Jag kan utan problem uppdatera rader med text, t.e.x. tider och sånt och har kraft att spara.

//Emil
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Re: Drivrutin för Grafisk display [AVR]

Inlägg av PaNiC »

Gammal tråd, men ett litet bekymmer här..
Jag har problem med att linjer inte går att dra mer än 45 grader stigande från vänster till höger?
I vissa fall fortsätter linjen dras, men hamnar således i 45 graders vinkel och slutar någon annanstans än den ska. I andra fall hamnar den på helt fel håll.
Användarvisningsbild
sm2wmv
Inlägg: 2289
Blev medlem: 6 maj 2008, 00:10:11
Ort: Burträsk
Kontakt:

Re: Drivrutin för Grafisk display [AVR]

Inlägg av sm2wmv »

c99 kör jag, det fungerar fint också.

Edit: Oooooj, gammal tråd ser jag.
Skriv svar