Generera HEX-fil från BASCOM AVR BAS-fil
Generera HEX-fil från BASCOM AVR BAS-fil
Jag har ändrat lite i ett program till flödesmätare från ELEKTOR juli/aug 2008 med Atmega8.
Tankvolym och antal pulser/liter från givaren,och den grafiska volymvisaren.
När jag försöker generera en HEX-fil från BASCOM AVR demo,blir det bara en error-fil.
Jag hoppas det beror på den 8Kb-begränsningen som demon är behäftad med.
Jag behöver hjälp med att få denna HEX-fil på 8Kb genererad från ett program
utan begränsningar.Jag kan ju sända denna bas.fil med mail.
Tankvolym och antal pulser/liter från givaren,och den grafiska volymvisaren.
När jag försöker generera en HEX-fil från BASCOM AVR demo,blir det bara en error-fil.
Jag hoppas det beror på den 8Kb-begränsningen som demon är behäftad med.
Jag behöver hjälp med att få denna HEX-fil på 8Kb genererad från ett program
utan begränsningar.Jag kan ju sända denna bas.fil med mail.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
> blir det bara en error-fil.
Och vad står det i den ?
Har du ens tittat i den ?
Och vad står det i den ?
Har du ens tittat i den ?
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Det står "Error:51 Line:56 value doesn´t fit into WORD".
Jag kan ingenting om programmering,men meddelandet betyder väl att jag inte
kan gå in och ändra enbart siffrorna för då stämmer det inte.
Så ämnesfrågan är felställd.
Det behövs någon med programmeringskunskap i BASCOM BASIC för att ändra värdena.
Som är följande:
Flödesgivaren i programmet ger 1800 pulser/liter.Ska ändras till 10000 pulser/liter för att passa givaren som finns att köpa.
Tankvolymen i programmet är 26 liter.Ska ändras till 56 liter i mitt fall.
Den grafiska visningen har 15 (16)x 5=80 streck.48000(full tank):80=600 pulser/streck i programmet.
Ska ändras till 560000(full tank):80=7000 pulser/streck.
Men jag har även provat att bara ändra antalet pulser/liter till 10000.Men det blir samma felkod ändå.
Jag kan ingenting om programmering,men meddelandet betyder väl att jag inte
kan gå in och ändra enbart siffrorna för då stämmer det inte.
Så ämnesfrågan är felställd.
Det behövs någon med programmeringskunskap i BASCOM BASIC för att ändra värdena.
Som är följande:
Flödesgivaren i programmet ger 1800 pulser/liter.Ska ändras till 10000 pulser/liter för att passa givaren som finns att köpa.
Tankvolymen i programmet är 26 liter.Ska ändras till 56 liter i mitt fall.
Den grafiska visningen har 15 (16)x 5=80 streck.48000(full tank):80=600 pulser/streck i programmet.
Ska ändras till 560000(full tank):80=7000 pulser/streck.
Men jag har även provat att bara ändra antalet pulser/liter till 10000.Men det blir samma felkod ändå.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Om du inte ändrar nånting, får du samma felkod ändå?
Re: Generera HEX-fil från BASCOM AVR BAS-fil
> Det står "Error:51 Line:56 value doesn´t fit into WORD".
OK. Och har du alls kollat på "line 56" ? Vad står det där ??
"WORD" borde vara dubbel-byte (16-bitars) variabel. Tar alltså värden
0 -> 65535 (eller ca -32767 -> 32767 om det variablen är "signed").
Exakt vad har du ändrat i koden ? (Original kod + din ändring).
Har du ändrat något så att det inte längre får plats i en 16-bitars variabel ?
> ... 48000(full tank)... ...560000(full tank)...
Ser ju lite misstänkt ut. Om det nu är så att 48000 resp 560000
är värden som används i koden på något sätt...
OK. Och har du alls kollat på "line 56" ? Vad står det där ??
"WORD" borde vara dubbel-byte (16-bitars) variabel. Tar alltså värden
0 -> 65535 (eller ca -32767 -> 32767 om det variablen är "signed").
Exakt vad har du ändrat i koden ? (Original kod + din ändring).
Har du ändrat något så att det inte längre får plats i en 16-bitars variabel ?
> ... 48000(full tank)... ...560000(full tank)...
Ser ju lite misstänkt ut. Om det nu är så att 48000 resp 560000
är värden som används i koden på något sätt...
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Nu har jag ändrat från 1800 pulser/liter till 10000 pulser/liter och ändrat grafiska visningen
från 600 pulser till 7000 pulser.Då går det att generera en hex-fil.
Så det bör då vara ändringen av tankvolymen från 48000 till 560000 pulser som är felande länken.
Men var "line 56" i programmet finns kan jag inte avgöra.
från 600 pulser till 7000 pulser.Då går det att generera en hex-fil.
Så det bör då vara ändringen av tankvolymen från 48000 till 560000 pulser som är felande länken.
Men var "line 56" i programmet finns kan jag inte avgöra.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
> Men var "line 56" i programmet finns kan jag inte avgöra.
Skapas det inte någon list fil ?
Skapas det inte någon list fil ?
Re: Generera HEX-fil från BASCOM AVR BAS-fil
http://www.elektor.com/magazines/2008/j ... 1796.lynkx
Artikeln med programvara finns på denna länk.
Jag hamnar ungefär på rad "Volume" där jag ändrat tankvolym från 48000 pulser till 560000 pulser(låter logiskt).
Min gissning som amatör att man inte kan lägga in ett sexsiffrigt tal.
Kan man åtgärda det i programmet?
Artikeln med programvara finns på denna länk.
Jag hamnar ungefär på rad "Volume" där jag ändrat tankvolym från 48000 pulser till 560000 pulser(låter logiskt).
Min gissning som amatör att man inte kan lägga in ett sexsiffrigt tal.
Kan man åtgärda det i programmet?
Re: Generera HEX-fil från BASCOM AVR BAS-fil
tja, 48000 får plats i ett WORD (16 bitar), 560000 gör det inte.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Du får nog läsa på lite om din BASIC interpreter, men i början av koden har du en bunt rader som startar med DIM
Gissar att du får byta ut en del av "Word" mot "long" eller nått sånt, sen får du se upp så att de andra variablerna är tillräckligt stora, för att hålla dina tal, kan ju vara så att "long" får bytas ut mot "long Long" eller nått.
Kod: Markera allt
Dim J As Byte , K As Byte , Flag As Bit
Dim Volume As Word , Volumerestant As Word , Volumeavant As Word
Dim Barre As Word , Nombrebarre As Byte
Dim Reservoir As String * 8
Dim Volumeprecedent As Word
Dim Moyenne As Byte , Sommemoyenne As Byte
Dim Seconde As Byte
Dim Ci As Long
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Borde väl gå att ändra platsen där talet ifråga ska hamna från word till int24 eller dword.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
Dim Volumeprecedent As Word
Är det ovanstående Dim-rad som ska ändras?
Vad ska det stå istället?
Har en fråga om visningen av förbrukningen liter/timme.Det är nu en dryg minut mellan
uppdateringen av visningen.Skulle önska att den uppdateras ca. var tjugonde sekund.
Var hittar jag detta kommando i programmet.
Jag har själv bara en manual över BASCOM,det finns inte någon info om ovanstående frågor.
Är det ovanstående Dim-rad som ska ändras?
Vad ska det stå istället?
Har en fråga om visningen av förbrukningen liter/timme.Det är nu en dryg minut mellan
uppdateringen av visningen.Skulle önska att den uppdateras ca. var tjugonde sekund.
Var hittar jag detta kommando i programmet.
Jag har själv bara en manual över BASCOM,det finns inte någon info om ovanstående frågor.
Re: Generera HEX-fil från BASCOM AVR BAS-fil
> Jag har själv bara en manual över BASCOM...
Länk till den ?
> ...det finns inte någon info om ovanstående frågor.
Nja, jo, det gör det nog...
Länk till den ?
> ...det finns inte någon info om ovanstående frågor.
Nja, jo, det gör det nog...

Re: Generera HEX-fil från BASCOM AVR BAS-fil
Tror knappast att nån här har tid att skriva om ditt program åt dig.
Vi är säkert några som kan göra det på betald arbetstid (600:-/h + moms och uppåt), men jag tror inte du är intresserad av den varianten.
Så, kvarstår för dig att göra det själv.
Vad du då måste göra är att lära dig den BASIC-dialekten som din interpreter använder, och sedan lära dig hur programmet är konstruerat/skrivet.
Därefter kan du "problemfritt" ändra koden.
Beträffande dina frågor kan ingen besvara dem utan att göra föregående.
Naturligtvis står inte dina svar i interpreterns handbok, då den bara talar om hur interpretern fungerar samt ev beskriver syntaxen i den använda dialekten.
Vad du däremot bör får svar på är storlekarna på de olika datatyperna, där ett WORD brukar motsvara 16 bitar, dvs 2 byte.
Den datatypen du skall använda måste naturligtvis vara minst lika stor som det största tal du skall behandla.
16 bitar motsvarar ett största tal om 65 535, 32 bitar (4 byte) ger 4 294 967 295. (under förutsättning att man pratar om positiva heltal).
Vi är säkert några som kan göra det på betald arbetstid (600:-/h + moms och uppåt), men jag tror inte du är intresserad av den varianten.
Så, kvarstår för dig att göra det själv.
Vad du då måste göra är att lära dig den BASIC-dialekten som din interpreter använder, och sedan lära dig hur programmet är konstruerat/skrivet.
Därefter kan du "problemfritt" ändra koden.
Beträffande dina frågor kan ingen besvara dem utan att göra föregående.
Naturligtvis står inte dina svar i interpreterns handbok, då den bara talar om hur interpretern fungerar samt ev beskriver syntaxen i den använda dialekten.
Vad du däremot bör får svar på är storlekarna på de olika datatyperna, där ett WORD brukar motsvara 16 bitar, dvs 2 byte.
Den datatypen du skall använda måste naturligtvis vara minst lika stor som det största tal du skall behandla.
16 bitar motsvarar ett största tal om 65 535, 32 bitar (4 byte) ger 4 294 967 295. (under förutsättning att man pratar om positiva heltal).