Hallo, Kann mir bitte jemand die beigefügten Dateien in ein Hex-File umwandeln? Ich abe keinen Compiler dafür hier und kann mittels Modem auch keinen laden, da der 23MB groß ist. Danke im Voraus Sigma N.
Hallo, mein compailer stellt einige Fehler fest: > "make.exe" all set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=eeprom_001.lst -std=gnu99 eeprom_001.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > eeprom_001.d; \ [ -s eeprom_001.d ] || rm -f eeprom_001.d set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=timer0_001.lst -std=gnu99 timer0_001.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > timer0_001.d; \ [ -s timer0_001.d ] || rm -f timer0_001.d set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=adc001.lst -std=gnu99 adc001.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > adc001.d; \ [ -s adc001.d ] || rm -f adc001.d set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart001.lst -std=gnu99 uart001.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > uart001.d; \ [ -s uart001.d ] || rm -f uart001.d set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=pwm001.lst -std=gnu99 pwm001.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > pwm001.d; \ [ -s pwm001.d ] || rm -f pwm001.d set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \ [ -s main.d ] || rm -f main.d -------- begin -------- avr-gcc (GCC) 3.4.3 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: main.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c -o main.o main.c: In function `main': main.c:324: warning: implicit declaration of function `outp' main.c:359: warning: implicit declaration of function `inp' Compiling: pwm001.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=pwm001.lst -std=gnu99 pwm001.c -o pwm001.o pwm001.c: In function `pwm_init': pwm001.c:22: warning: implicit declaration of function `outp' Compiling: uart001.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart001.lst -std=gnu99 uart001.c -o uart001.o uart001.c: In function `uart_puts_p': uart001.c:222: warning: implicit declaration of function `PRG_RDB' Compiling: adc001.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=adc001.lst -std=gnu99 adc001.c -o adc001.o Compiling: timer0_001.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=timer0_001.lst -std=gnu99 timer0_001.c -o timer0_001.o Compiling: eeprom_001.c avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=eeprom_001.lst -std=gnu99 eeprom_001.c -o eeprom_001.o Linking: main.elf avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 main.o pwm001.o uart001.o adc001.o timer0_001.o eeprom_001.o --output main.elf -Wl,-Map=main.map,--cref -lm main.o(.text+0x5bc): In function `main': C:\unzipped\tested_2004/main.c:324: undefined reference to `outp' main.o(.text+0x5c8):C:\unzipped\tested_2004/main.c:325: undefined reference to `outp' main.o(.text+0x5d4):C:\unzipped\tested_2004/main.c:326: undefined reference to `outp' main.o(.text+0x612):C:\unzipped\tested_2004/main.c:343: undefined reference to `outp' main.o(.text+0x630):C:\unzipped\tested_2004/main.c:351: undefined reference to `outp' main.o(.text+0x6c2):C:\unzipped\tested_2004/main.c:370: more undefined references to `outp' follow main.o(.text+0x6c8): In function `main': C:\unzipped\tested_2004/main.c:370: undefined reference to `inp' main.o(.text+0x752):C:\unzipped\tested_2004/main.c:382: undefined reference to `outp' main.o(.text+0x7dc):C:\unzipped\tested_2004/main.c:400: undefined reference to `outp' pwm001.o(.text+0x16): In function `pwm_init': C:\unzipped\tested_2004/pwm001.c:22: undefined reference to `outp' pwm001.o(.text+0x28):C:\unzipped\tested_2004/pwm001.c:23: undefined reference to `outp' uart001.o(.text+0x190): In function `uart_puts_p': C:\unzipped\tested_2004/uart001.c:223: undefined reference to `PRG_RDB' uart001.o(.text+0x1aa): In function `uart_putsl_p': C:\unzipped\tested_2004/uart001.c:233: undefined reference to `PRG_RDB' make.exe: *** [main.elf] Error 1 > Process Exit Code: 2 wenn du die Fehler beseitigtst kann ich es gern nochmahl versuchen. P.S.: Was soll das Programm eigentlich machen ? Gruß
Das Programm stammt von der Seite:http://www.opend.co.za/hardware/nimh1/nimh1.htm Das ist ein Akku-Lader. Leider hat der Gute keine Hex-Datei angefügt. :-( Ich selbst verstehe von C absolut nichts und kann daraufhin nichts über enthaltene Fehler sagen. Mir hat schon jemand mal das Programm compilieren können und auch das HEX-File gesandt. Ich habe das aufgespielt und es läuft auch, aber ich bekomme aus Pin 15 (OC1A) keine Impulse. Mein Atmega ist aber in Ordnung, denn ich habe mittels Bascom-Programm danach getestet, ob der AD-Wandler "lebt" und dort bekomme ich auch ein PWM-Signal heraus. Ich habe auch schon den Schöpfer der Schaltung angemailt, aber noch keine Antwort von ihm. Gruß Sigma N.
Probiere es nochmal mit der alten Verson 20040404. Meld mich gleich nochmahl.
Danke Euch beiden für Eure Mühe. @Markus Das war es auch nicht. Die LED´s blinken, wie sie sollen, aber aus Pin15 (OC1A) bekomme ich nichts heraus. Schade, die Schaltung gefiel mir. Ich habe in der Not ein kleines Programm geschrieben, um Taster,LED´s und Pin15 zu testen. Das funktioniert. Da muß ich wohl das Fahrrad noch einmal erfinden. :_(( Gruß Sigma N.
@sigma n. Dein Testprogramm kommt mir so bekannt vor....?! Hast Du das Akku-Programm jetzt laufen? Wenn nicht, wird es einfacher sein, das Ganze noch einmal neu zu schreiben. MfG Paul
@Marcus Danke für Deinen 2. Versuch, aber das Verhalten ist gleich geblieben. :-( Keine PWM am Anschluß 15. Auch wenn der Autor "tested Version" angegben hatte, weiß man ja nicht, wie sein Test ausgegangen ist. :-) @Paul Ja, Du hast Recht, ich habe eine Anleihe bei Dir genommen. Ist doch nicht schlimm, oder? Gruß Sigma N.
Ich glaube, ich habe den Fehler gefunden. Im Schaltbild hatte er den Starttaster auf PC2 gelegt, im Programm scheint er auf PC3 zu liegen. Kann mal ein C-Kundiger in den Quelltext gucken, ob das so stimmt? Gruß Sigma N.
Nur mal aus Interesse, ist die Formatierung des Quelltextes nur im Textfile so extrem oder programmierst du wirklich mit 10000 Leerstellen pro Tab? Sowas kenne ich eigentlich nur von Leuten, die ausschließlich mit Visual Studio arbeiten.
Hi in diesem C-File sind Tabs drin. Du mußt deinen Editor schon passend einstellen. Ja, auch den Editor von VS kann man so einstellen. Matthias
So, es ist vollbracht! Der Fehler war tatsächlich der Starttaster, dessen Belegung zwischen Programm (Portc.3) und Schaltbild (Portc.2) differierte. ICH habe das Programm nicht erstellt. Wie ich weiter oben schon schrieb, beherrsche ich "C" nicht. Deswegen hat mich die Fehlersuche auch so viel Zeit gekostet. Erfahrung: Benutze nie fremde C-Programme, wenn Du mit dem Quelltext und den zahlreichen Anhängseln nichts anfangen kannst. Ich danke allen Helfern und "Compilierern" für ihre Hilfe. 3Kreuze! Sigma N.
'Nabend habe auch gerademal 'reingesehen. Die Funktionalität beschränkt sich, ausser der Kalibiererfunktion, lediglich in einem 14Stunden Timer??? Hmmm - also wenn man da schon einen uC verwendet, hätte man doch gleich 'ne du/dt Abschaltung mit einbauen können. So hätte man das auch, vom Terminal abgesehen, auch mit einer Konstantsromquelle und nem 555er erledigen können, oder wie seht ihr das? Sonst: schön wenns endlich geht! Ich hatte schon im Datenblatt nachgelesen, ob die Timer initialisierung evtl. falsch ist - stimmte aber alles... Auf den Taster bin ich nicht gekommen ;-)) Viele Grüße AxelR.
Ich habe dem Autor den Fehler mitgeteilt. Er wird noch eine Version mit 7-Segment-Anzeige schreiben. Ich selbst werde das Ganze mal mit Bascom schreiben. Das ist wesentlich übersichtlicher. Gruß Sigma N.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.