Hi,
ja hab nicht das kleine test genommen sondern auch das Quadrad und Line Demo so wie die PID Line vom Forum aber immer das selbe er macht keinen muxer
Flash ich das Selftest.hex von der CD gehts.
Beim Make macht er auch keinen Fehler Code 0
Hm...
Hallo,
du hast erst mal nix falsch gemacht. Ich nehme an du hast das Programm 'FirstTry' von der Asuro CD übersetzt und geflasht.
Dieses Testprogramm macht nämlich nichts, außer die Hardware zu initialisieren, ist sozusagen nur ein Skelett für eigene Versuche.
Hast du mal den SelbstTest durchgeführt?Code:#include "asuro.h" int main(void) { Init(); while(1); return 0; }
Auch auf der CD unter 'SelfTest' zu finden.
Gruß m.a.r.v.i.n
Hi,
ja hab nicht das kleine test genommen sondern auch das Quadrad und Line Demo so wie die PID Line vom Forum aber immer das selbe er macht keinen muxer
Flash ich das Selftest.hex von der CD gehts.
Beim Make macht er auch keinen Fehler Code 0
Hm...
Hi Ulli,
merkwürdig. Klingt nach Fehler in der Entwicklungsumgebung.
Compiliert wird aber richtig?
Object- und Hex-Files werden erzeugt und haben auch aktuelles Datum und Uhrzeit?
Hast du mal versucht den Selbsttest neu zu übersetzen mit 'make all'?
Dabei müßte ein File 'main.hex' generiert werden, das identisch sein muß zu 'selftest.hex'.
Gruß m.a.r.v.i.n
Das hört sich mehr danach an, als ob du entweder 1. nicht gespeichert hast, vor dem compilieren oder du immer noch das selbe compilierst, da du im makefile nichts genändert hast, aber ne andere datei nehmen willst.
www.subms.de
Aktuell: Flaschcraft Funkboard - Informationssammlung
Hi,
also mit den WINAVR komm ich bissl durcheinander
Ich gehe so vor:
1. lade ein Programm z.B LineDemo.c mit open in WINAVR
2. ich speichere es in TryFirst als test.c
3. ich mache nun Make (link: Auro_scr/TryFirst/make-al.bat)
4. jetzt kommt dann das...
D:\ASURO\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 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.
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
asuro.o(.text+0xae): In function `__vector_14':
D:\ASURO\ASURO_src\FirstTry/asuro.c:75: multiple definition of `__vector_14'
test.o(.text+0x0):\ASURO\ASURO_src\FirstTry/test.c:30: first defined here
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: Warning: size of symbol `__vector_14' changed from 316 in test.o to 208 in asuro.o
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\lib\avr4\crtm8.o(.in it9+0x0): undefined reference to `main'
make: *** [test.elf] Error 1
> Process Exit Code: 2
also ich komm mit den Makefile nicht zurecht
Was mach ich den da alles falsch?!
Danke für eure Hilfe.
Bye Ulli
Hallo Ulli,
in deiner Datei 'test.c' fehlt die main() Funktion. Die wird für jedes C-Programm benötigt. Wenn du die Datei 'LineDemo.c' aus dem SelfTest Ordner kopiert hast, mußt du dazu nur die Main Funktion
hinzufügen. Die Main Funktion ist die Funktion die nach dem Programm Start als erstes aufgerufen wird.Code:int Main(void) { LineFollow(); return 0; }
Die Warnung mit 'multiple definition of __vector_14' ist mir nicht ganz erklärlich.
Verwendest du die asuro.c und asuro.h aus dem SelfTest Ordner, oder eine modifizierte?
Gruß m.a.r.v.i.n
Hi,
jetzt sieht es besser aus
muss ich biss austesten!
Danke für eure Hilfe!
Bye Ulli
Das make-file von Selftest kompiliert ja mächtig viele Quelltextdateien (alle *.c aus dem SelfTest-Ordner).
Schaut man sich die main()-Funktion an, so überprüft das Selbsttest-Programm zuerst, ob es Hell-/Dunkel-Wechsel am linken Rad erkennen kann. Werden mehr als 10 Wechsel erkannt, verzweigt das Programm in die Funktion Demo().
Hier wird es nun richtig interessant. Falls ich den C-Code richtig verstehe, werden abhängig von folgenden Kollisions-Erkennungs-Tastern verschiedene Unterfunktionen aufgerufen:
Schalter 6: LineDemo() --> Asuro folgt einer Linie
Schalter 5: RechteckDemo() --> Asuro macht was auch immer?
Schalter 4: PCDemo() --> ebenfalls recht unklar, was Asuro hier treibt.
Schalter 3: IRDemo() --> Asuro durch Fernbedienung steuern?
Hat jemand von Euch diese Programme schon einmal aus dem Selbsttest-Programm heraus starten können? Was machen die Unterprogramme genau?
Ich werde jetzt gleich einmal folgendes probieren:
- SelfTest flashen
- Asuro auf ein Blatt Papier mit einer dick schwarzen Linie setzen
- Asuro einschalten
- das linke Hinterrad mehrmals rumdrehen
- Schalter 6 drücken: Asuro sollte der Linie folgen
Habe ich den Programmcode soweit richtig verstanden?
Gruß,
SnoppysBot
Hallo SnoopysBot,
ja du hast recht. Das ist eines der "Geheimnisse" des Asuro.
Die Programme funktionieren auch einigermaßen, und sind auf alle Fälle
als Grundlage für eigene Versuche brauchbar.
Der Demomode ist übrigens auch in dem Buch
"Mehr Spaß mit Asuro, Band 1" sehr gut beschrieben.
LineDemo() läßt den Asuro einer Linie folgen.
Rechteckdemo() läßt den Asuro ein Rechteck "zeichnen". Dazu werden die Odometriesensoren verwendet.
Mit PCDemo() kann man den Asuro mit einem Terminalprogramm, über die Zifferntasten des Nummernblocks, und der IR Schnittstelle steuern (8-vorwärts, 2 rückwärts, 4 links, 6 rechts, 5 stop)
Die Reichwerte der IR Schnittstelle ist leider sehr begrenzt.
Mit IrDemo() kann man den Asuro mit einer IR Fernbedienung steuern. Die Codes muß man aber zuerst an die eigene Fernbedienung anpassen.
Gruß Peter
Moin. Suche ein Programm was mir den Ladestand der battarien anzeigt (wenn es sowas gibt) jedesmal wenn er an einer markierung bzw dem ir transceiver vorbei kommt
Lesezeichen