Archiv verlassen und diese Seite im Standarddesign anzeigen : HILFE
MarkusH91
03.11.2006, 14:05
Ich hab noch ein gaaaaaaaaanz großes Problem!
Und zwar will ich den Asuro zum Fahren bringen und wenn er dann irgendwo dagegen fährt soll er anhalten und die Status LED soll Rot leuchten!
Kann bitte jemand denn Code posten???
Mein bisheriger Code ist ungefähr so:
(Bin grad an einem anderen Rechner deshalb kann ich ihn nicht posten)
MotorDri(Fwd,Fwd);
MotorSpeed(120,120);
If(taste = 0);
StatusLED(RED);
MotorSpeed(0,0);[/code]
Toschtosch
03.11.2006, 15:39
Ich hab noch ein gaaaaaaaaanz großes Problem!
Kann bitte jemand denn Code posten???
von copy & paste lernt man nix
und das programm was du jetzt mal kurz hingeschrieben hast wird schon ma nich gehen :D
poste am besten nochmal deinen ganzen quelltext, dann kann man besser fehler finden, als in so nem "schnell hingeschriebenen" source code
mfg toschtosch
gast1234
03.11.2006, 16:15
Hallo MarkusH91,
Dein gaaaaanz großes Problem lässt sich gaaanz einfach lösen.
Du hast nämlich schon fast alles aufgeschrieben, was du dafür brauchst.
Nur eine Sache fehlt. Lies Dir doch nochmal den Teil mit der Programmierung durch. Das sind nur wenige Grundlagen. Insbesondere die while Schleife und if Abfragen sind für Dich interessant. Dann folgt der asurospezifische Teil. Da sind wenige aber wichtige Beispiele, die Du verwenden kannst. Dann Kopf anschalten und diese Beispiele kombinieren, ist wie Lego. Gaaaanz einfach, so wie Du wolltest.
Auf die gefahr hin, das MarkusH91 mich verflucht, weil er den code jetzt doch lieber selbst schreiben wollte ;)
#include "asuro.h"
int main() {
MotorDir(FWD,FWD);
MotorSpeed(120,120);
if(PollSwitch()>0) {StatusLED(RED);}
MotorSpeed(0,0);
while(1);
return 0;
}
Asuro anleitung s 60. da steht fsat alled, was du brauchst.
mfg EDH
PS: Der Code ist nur als hilfe gedahct, fals du doch nicht auf des rätsels lösung kommen solltest
ich empfehle dir ein gutes buch über c (oder zur not c++)
zum beispiel C von A bis Z vom Galileo Verlag.
Wenn de des auswendig kannst, haste alles drauf, was de in deiner hobbyprogrammierer karriere so brauchst
mfg EDH
MarkusH91
04.11.2006, 20:56
Jaok ich hab halt leider no net so ne große ahnung
MarkusH91
04.11.2006, 20:59
Bei mir kommt bei deinem Programm immer der fehler:
C:\Dokumente und Einstellungen\***********\Desktop\ASURO_src\FirstT ry>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=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
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
test.c: In function `main':
test.c:8: error: parse error before "return"
make: *** [test.o] Error 1
> Process Exit Code: 2
P.S.: Wo gibt es denn das Hyperterminal???
Ich kenn mich ja net aus mim Asuro aber müsste der Code nich so sein?:
#include "asuro.h"
int main() {
while(1) {
MotorDir(FWD,FWD);
MotorSpeed(120,120);
if(PollSwitch()>0) {StatusLED(RED);}
MotorSpeed(0,0);
}
return 0;
}
Ansonsten wird das alles ja nur einmal ausgeführt...
Wo gibt es denn das Hyperterminal???
Bei Windowas XP:
Start->Programme->Zubehör->Kommunikation.
da steht dann irgendwo HyperTerminal.
jon
@coCo
das der code nur einmal ausgeführt wird, war vollste absicht. allerdings geht dein vorschlag natürlich auch.
@MarkusH91
bist du sicher, das du nicht was an dem code verändert hastß ich kann hier keinern fehler erkenne
(parse error hat meistens was mit klammer oder strichpunkt zu tun)
mfg EDH
langsam tasten wir uns ran, hm? ;)
das kästle wird aber damit noch net stehen bleiben, weil´s im nächsten moment wieder auf MotorSpeed(120,120); geht..
also versuch mers mal so:
#include "asuro.h"
int main()
{
while(1)
{
if(PollSwitch()>0)
{
StatusLED(RED);
MotorSpeed(0,0);
}
else
{
MotorDir(FWD,FWD);
MotorSpeed(120,120);
}
}
return 0;
}
gruesse
oh, das hab ich bei coCo ganz übersehen.
MarkusH91
04.11.2006, 21:26
mein Asuro fährt gar net erst los!
(1)rufe pollswitch mehrmals auf (da steht was in der anleitung über einen kondensator wo sich erst entladen muss)
(2) kriegt der motor überhaupt saft
(3) ham die taster beim selbstest funktioniert
mfg EDH
MarkusH91
04.11.2006, 21:51
klappt trotzdem nicht
hast du gemessen, ob der motor überhaupt strom kriegt
irgendwo in der asuro aleitung ist ein beispielcode zu den tastern (ich hab die anleitung grad net zur hand). probier den mal aus
Kann sein dass ich mich irre. Aber ich habe heute gelesen, dass die AVRs das größer-als-Zeichen (>) net kennen. Man solle die Umkehrung bevorzugen, sprich anstatt von x > 0, 0 < x schreiben. Das größer-gleich-Zeichen ist aber anscheinend bekannt.
Ich weiß nicht mehr wo ich das gelesen habe und ob es überhaupt auf die AVRs bezogen war...
Könnte jemand was dazu sagen?
dass die AVRs das größer-als-Zeichen (>) net kennen.
Ich würde diese Aussage auf Deiner Stelle löschen, bevor ein Anfänger meint, es wäre so richtig ](*,)
Sorry, dass ich sch**** laber. Ich hab das irgendwo heute gelesen, aber wie gesagt ich weiß gar nimmer ob es auf die AVRs bezogen war. Wahrscheinlich nicht.
jein.. @izaseba
im datenblatt gibt es ein BRLO (branch if lower) und ein BRSH (branch if same or higher). ein "branch if higher" gibts nicht. wahrscheinlich meinte coco das.
was allerdings der compiler aus einem ">" macht, ist was anderes. ich vermute ganz fest, dass es geht.
EDIT:
musste coco in schutz nehmen! der hat grade exakt soviele beiträge wie ich! O:)
gruesse
Ja Katze, nur Du hast das Programm nicht im Assembler geschrieben...
Aber egal, auf C bezogen kann man schreiben was man will und darum geht es.
Gruß Sebastian
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.