PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger sucht Hilfe beim Programmieren des Asuro



cccp86
19.02.2007, 21:10
Hallo,
kann mir bitte jemand helfen? Wir haben in der Schule folgende Aufgabenstellung bekommen:

Das Hello World eines Mikrocontrollers ist das Leuchten einer LED. Der Asuro besitzt vier Leuchtdioden. Eine dieser
Leuchtdioden ist zweifarbig und kann daher drei verschiedene Farben erzeugen. Ihre Aufgabe ist es, alle LEDs anzusteuern.
Dazu sollen diese nacheinander aktiviert werden. Leuchten alle LEDs, so sind sie nacheinander wieder zu deaktivieren.
Dies alles soll in einer Schleife geschehen, die die Abfolge nach Beendigung erneut zur Ausf¨uhrung bringt. Es ist zu
beachten, dass zwischen den einzelnen Schritten eine kurze Pause erfolgen muss, da sonst die LEDs zu schnelle f¨ur das
menschliche Auge ein- und ausgeschaltet werden. Eine geeignete Verz¨ogerungsfunktion der Asuro-Bibliothek ist dabei zu
nutzen. Die Reihenfolge der LEDs ist in Abbildung 1 angegeben und sollte eingehalten werden.

Ich habe die Aufgabe so gelöst:

#include "../lib/asuro.h"

int main(void){
Init();
StatusLED(OFF);
while(1){

BackLED(OFF,ON);
Msleep(500);

BackLED(ON,ON);
Msleep(500);

FrontLED(ON);
Msleep(500);

StatusLED(GREEN);
Msleep(500);

StatusLED(Yellow);
Msleep(500);

StatusLED(RED);
Msleep(500);

BackLED(OFF,OFF);
FrontLED(OFF);
StatusLED(OFF);


for(int i=0;i<=100;i++) Sleep(255);
}
}

Jetzt wollte ich fragen, ob jemand weiss, was ich falsch gemacht habe und wie ich das ändern soll, damit es funktioniert.

gtacelt
19.02.2007, 21:42
Was funktioniert den nicht?
compilieren?
Ausführung des Programms? (unerwartete Ereignisse usw..)

Aja benutze bitte die [code*][/code*] -Buttons (ohne die *) :)

Auf die schnelle finde ich verdächtig:

#include "asuro.h" //" " wenn .h im gleichen ordner wie die .c datei ist
//< > wenn im verzeichniss des compilers die lib drinn is...


dann...
Msleep(500);
Benutzt du überhaupt die neue Lib die Msleep enthält?

cccp86
19.02.2007, 21:54
Benutze folgende lib: Revision 2.60 vom 27.September2005, weiß nicht, ob es die neue ist.

Also, wenn ich dass Programm so habe und dann bei Tools auf Make All gehe, dann kommt bei mir folgender Fehler:
> „make.exe“ all
make.exe: ***No rule to make target àll`. Stop.
> Process Exit Code: 2

Ist es überhaupt ein Fehler und wie muss ich danach weiter vorgehen. So viel ich weiß, muß ich es doch Flashen. Wie funktioniert das genau?

Besten Dank

radbruch
19.02.2007, 21:55
Leuchten alle LEDs, so sind sie nacheinander wieder zu deaktivieren.
Zeit vergessen!


for(int i=0;i<=100;i++) Sleep(255);
i ist nicht definiert.


StatusLED(Yellow);
YELLOW wäre richtiger.

gtacelt
19.02.2007, 21:59
Ich schließe mal daraus das du das Programmers Notepad benutzt.

Als prinzipiell geht das ganze so:

-Programm schreiben
-Programm in den Ordner "First Try" über/anstatt test.c speicher
(das makefile sucht nach dem programm namens test.c und compiliert nur dieses - willst du es anders nennen musst du das im makefile ändern)
-make
-jetzt hat man eine .hex datei im ordner
-die hex datei flashen
-hoffen das es klappt :D

edit:
wie ich seh hat radbruch auch noch was gesehn ^^'

cccp86
19.02.2007, 22:00
Was ist dieses i und wie kann ich es definieren?

cccp86
19.02.2007, 22:04
Wo finde ich diese Ordner genau?

Programm in den Ordner "First Try" über/anstatt test.c speicher
(das makefile sucht nach dem programm namens test.c und compiliert nur dieses - willst du es anders nennen musst du das im makefile ändern)
-make

Benutze das Programm Notepad 2

gtacelt
19.02.2007, 22:16
i soll in deinen Fall ja ein integer (sagmal gibt euch euer prof hausaufgaben, die ihr nicht lösen könnt?! das ist ein gutes c buch: http://www.galileocomputing.de/openbook/c_von_a_bis_z/) also eine ganzahlige zahl (sprich, ohne ein komma). jetzt musst du den Compiler überhaupt mal sagen wer i ist. das machst du mit int i;. das ganze aber noch vor Init(); schreiben.


Wo finde ich diese Ordner genau?
hast du nach studieren der anleitung, die in der anleitung beshcriebenen, first tries gemacht?
wenn ja- dann weißt du sicher welcher ordner gemeint ist.
wenn nein-könntest du es ja nachholn


so.. jetzt gute nacht, bin morgen wieder on. habt ziemlich kopfweh -.-
es wird dir schon wer helfen ;D

damaltor
19.02.2007, 22:55
du kannst mal probieren, die ersten beispiele der anleitung nachzubauen. NICHT rauskopieren, dann funktionieren sie nicht.
die asuro.c sowie die asuro.h solltest du am einfachsten ins gleiche verzeichnis wie deinen quellcode (test.c) kopieren. dementsprechend heisst dann die erste zeile in deinem programm
#include "asuro.h"
Dann solltest du erstmal in ruhe die Beispiele aus der anleitung probieren, die anleitung ist für solche grundsätzlichen sachen absolut perfekt. einfach mal in ruhe lesen.
wenn das make im pn2 nicht funktioniert, gibts noch ne andere möglichkeit:
start>ausführen>"cmd" eingeben>OK
dann musst du mithilfe der dos-befehlszeile in das passende verzeichnis wechseln und gibst dann "make all" ein.

Danjo00
20.02.2007, 03:23
schreib mal statt Msleep nur Sleep einfach das M weglassen hat bei mir funktioniert bei der version. Und Hör auf den rat von Damaltor hat mich auch weiter gebracht ist eigendlich ganz einfach (einfach nur lesen).