Go Down

Topic: tempfiles in Windows 10 (Read 696 times) previous topic - next topic

diddp00

Dec 20, 2018, 01:07 pm Last Edit: Dec 20, 2018, 01:08 pm by diddp00
Ik probeer een kleuren TFT schermpje van 320x480 met een CTE32HR controller aan de gang te krijgen.
Dat lukt wonderwel, alleen de bitmaps blijven problemen geven.

Daarom maak ik steeds nieuwe ".c" filetjes met wat aanpassingen. Nu loop ik er tegenaan dat oude ".c" files me in de weg gaan zitten vanuit een temp-map in de APPDATA van W10.
Als ik met File paul8 een nieuwe poging doe een bitmap weer te geven krijg ik een compileerfout die o.a. relateert aan de file paul7 die helemaal niet in de sketch meer voor komt.(zie attachment)
Dat bestandje paul7 komt nog wel voor in de tempfiles van APPDATA maar als ik die leeg maak komen ze bij de volgende keer compileren weer even hard terug.

Het zal vast aan mijn behoorlijke ontwetendheid op dit terrein komen, maar ik kom er niet verder mee.

sterretje

#1
Dec 20, 2018, 07:55 pm Last Edit: Dec 20, 2018, 07:56 pm by sterretje
Je hoeft niet meteen jezelf de schuld te geven ;) Kan ook aan de manier liggen waarop Arduino met files omgaat.

Kun je aub je programma en foutmeldingen in een post plaatsen in plaats van in een word document. Graag code-tags gebruiken ([code] en [/code]).

Verder een link naar de bibliotheek die je gebruikt en welke Arduino je gebruikt; je programma zal niet werken op een 328P ;)

Waar is de file paul8.c? In dezelfde directory als de sketch? Misschien kun je die als aanhangsel bijvoegen in een post.
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

diddp00

Ik ga een poging doen om het als code in te voegen:
Code: [Select]
// bibliotheek voor het werken met het display
#include <UTFT.h>

// maak een object van klasse UTFT
// en geef de identifier van het weergavemodel en het aantal controlepennen
UTFT myGLCD(CTE32HR, 38, 39, 40, 41);

// waarbij twee reeks beelden
extern unsigned int paul8[0x1800];
//extern unsigned int gerdie5[0x798];

void setup()
{
  // initialiseer het display met de horizontale oriĆ«ntatie
  myGLCD.InitLCD(0);
}



void loop()
{
  // schilder het display met witte kleur
  myGLCD.fillScr(255, 255, 255);
  // toon de afbeelding

    myGLCD.drawBitmap(0, 0, 160, 240, paul8);
//    delay(1000);
//    myGLCD.drawBitmap(0, 0, 144, 216, gerdie5);

 
 
  delay(10000);
}


En de foutmelding:
Code: [Select]
sketch\paul8.c.o (symbol from plugin): In function `paul7':

(.text+0x0): multiple definition of `paul7'

sketch\paul6.c.o (symbol from plugin):(.text+0x0): first defined here

c:/users/pauld/appdata/local/arduino15/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\pauld\AppData\Local\Temp\ccaLEozd.ltrans0.ltrans.o: In function `drawBitmap':

D:\Arduino\IDE\libraries\UTFT/UTFT.cpp:1155: undefined reference to `paul8'

D:\Arduino\IDE\libraries\UTFT/UTFT.cpp:1155: undefined reference to `paul8'

collect2.exe: error: ld returned 1 exit status
exit status 1
Fout bij compileren.


De library is de UTFT library van GitHub van 21-3-16.

Het programma draait op een Mega-cloon

Het filetje paul8.c is mijn poging een bitmap van een pasfoto te maken (ook daar gaat nog van alles verkeerd, maar als ik de juiste omvang opgeef in de code kreeg ik wel een beeld) ik zal het als attachment toevoegen


sterretje

Enig idee hoevel UTFT bibliotheken er op github rondslingeren?

Ik heb https://github.com/telamon/utft gedownload (was ook van maart 2016) en ik krijg een compile error en vermoed dat ik dus de verkeerde heb.

Code: [Select]
topic_586235.0:6: error: 'CTE32HR' was not declared in this scope

 UTFT myGLCD(CTE32HR, 38, 39, 40, 41);

             ^

exit status 1
'CTE32HR' was not declared in this scope


Met deze kwam ik iets verder: https://github.com/ivanseidel/UTFT/ maar compileert nog steeds niet.

Linkje graag.
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

sterretje

Ik heb je programma even aangepast zodat ik UTFT niet nodig heb ;)

Wat ik vemoed dat je doet is een copy maken van paulX.c naar paulX+1.c maar je past de variabele paulX niet aan; de file paul8.c bevat de variabele paul8. Nu heb je dus twee.c files die beiden de variabele paulX hebben en de linker weet niet welke je wilt gebruiken en protesteert.

Als je iedere keer dat je een file maakt de variabele naam in de file (en de sketch) aanpast, zul je geen problemen hebben.


Het enig problem dat ik verder ben tegen gekomen is dat het geheel teveel geheugen gebruikt maar aangezien je daar niet over hebt geklaagd heb ik daar niet verder naar gekeken; ik was eigenlijk een beetje verbaasd daarover.
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

diddp00

Je hebt gelijk, ik heb zitten haspelen met die namen in de file zelf.
Nu loopt dat in elk geval wel waarvoor natuurlijk dank.

Het geheugengebruik was ik ook al tegenaan gelopen, een Mega heeft echter voldoende ruimte zelf. Dus even een testje gedaan met de hele "plaat" in de sketch en dat werkt al veel beter.

Nu nog zorgen dat de .c-files die ik zelf maak ook duidelijk worden getoond, want de kant en klare doen het wel goed.
Maar voor nu ben ik gelukkig weer wat verder en kan ik weer door "rommelen"

sterretje

Het geheugengebruik was ik ook al tegenaan gelopen, een Mega heeft echter voldoende ruimte zelf. Dus even een testje gedaan met de hele "plaat" in de sketch en dat werkt al veel beter.
Ik heb een mega gekozen voor het compileren en om wat voor reden dan ook kwam ik op iets van 12000 bytes RAM uit.

Ah, ik weet het nu; je array in paulX.c is een array van ints, niet van bytes. Dus 0x1800 (6144 decimal) keer twee.
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

Go Up