PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Nibo 2 Programmierung



freekwave
17.08.2011, 18:37
Hi Leute,
Ich bin gerade dabei meine Nibo2 zu programmieren, doch irgendwie funktioniert kein Programm (auch nicht die aus der Tutorial) das ich auf den Nibo2 aufspiele. Es funktionieren nur die Programme die in der NiboLib sind. Immoment benutze ich Avr Studio 4.
mfg freekwave

Achim S.
17.08.2011, 19:28
Hallo freekware
Kannst du bitte ein paar Angaben machen, was nicht geht. Leider ist dein Ausruck "irgendwie" nicht klar. Ansonsten kannst du ja mal nach dem Nibo 2 Magazin auf diesen Seiten suchen. Da wird auch eine Menge erklärt. Vielleicht hilft dir das weiter.
Achim

freekwave
17.08.2011, 20:27
Also, wenn ich selbst programmierte Programme oder die Programme aus der Tutorial PDF auf den Nibo2 aufspiele dann zeigt der Nibo überhaupt keine Reaktion.
Wenn ich jetzt aber die Programme aus der Nibo Library aufspiele, dann sind alle funktionen aus dem aufgespielten Programm da.
mfg freekwave

Achim S.
17.08.2011, 20:36
Wieder machst du den Fehler, nur die Hälfte zu schreiben. Wie hat ein Kollege aus dem Netz geschriebn: Leider ist meine Kristallkugel defekt. Daher kann ich nichts sehen. Um Fehler zu finden braucht man Angaben. Welche Fehlermeldung kommt vom Studio 4? Wie sehen deine Programme aus? Stimmt die Programmierung? Lassen sich die Prg übersetzen? Wie siehtes mit der Prg bei dir aus? Bist Profi in C? Lass mal ein paar Infos rüber kommen. Ohne diese kann ich dir nicht helfen.
Achim

freekwave
17.08.2011, 20:53
Jaa tut mir leid, ich bin heute etwas durcheinander :-). Also AVR Studio bringt überhaupt keine Fehlermeldung. Das Programm wird sogar komplett auf den Nibo übertragen. Ich hab auch die genau selben Einstellungen wie in der Tutorial getroffen mit Frequenz usw.. Hier mal ein Beispiel Programm:



#include <nibo/niboconfig.h>
#include <nibo/leds.h>
#include <nibo/delay.h>




int



main() {leds_init();




while(1==1)


{
delay(500);leds_set_status(LEDS_RED, 0);
delay(500);leds_set_status(LEDS_GREEN, 0);}




return



0;


}

Ich hoffe das reicht dir xD.
ach ich bin kein profi in c sonder eher blutiger Anfänger und arbeite hauptsächlich mt copy and past xD
mfg freekwave

Achim S.
18.08.2011, 18:49
Hast recht. Dein Prg sieht wirklich komisch aus. Hat fast was mit Spagetti Code zu tun. Auf die schnelle schlage ich erst mal ein Buch über C vor. Da steht z.B. drin wie ein Prg aufgebaut ist. So mit Anfang usw. Habe dir mal Prg kopiert. Das läuft sehr gut und hat viele Kommentare. Versuch es mal zu kopieren und besser ist es zu kapieren


// ***** Test LED 2 (Einfach) *****
// by h.j.seeger@web.de

#include <nibo/niboconfig.h> // Anweisung Präprozessor

#include <nibo/leds.h> // Ladet Haeder Datein und bindet ein
#include <nibo/delay.h>
#include <avr/interrupt.h>
#include <nibo/gfx.h>
#include <nibo/display.h>
#include <nibo/pwm.h>
#include <nibo/bot.h>

int main() // Beginn Hauptprogramm

{ // Beginnt Prg mit {

sei(); // Einbinden der Datein
display_init();
pwm_init(); // PWM Datein
gfx_init(); // Display Datein
bot_init(); // Bot-Datein
leds_init(); // IO-Ports für LEDs initiiert


leds_set_displaylight(1024); // Setzt Helligkeit Display


gfx_fill(0x00); // Löscht Bildschirm
gfx_move(5, 5); // Angabe Ort
gfx_set_proportional(0); // Angabe Schrift
gfx_print_text("Testprogramm Nibo 2"); // Ausgabe Text
gfx_move(35, 15); // Angabe Ort
gfx_set_proportional(0); // Angabe Schrift
gfx_print_text("LED Test 2"); // Ausgabe Text

gfx_move(0,25); // Angabe Ort
gfx_hline(128);
// gfx_hline(128); // zieht Linie, Länge (128);

gfx_move(5, 35); // Angabe Ort
gfx_set_proportional(0); // Angabe Schrift
gfx_print_text("LED Rot+Gruen+Orange"); // Ausgabe Text
gfx_move(25, 45); // Angabe Ort
gfx_set_proportional(0); // Angabe Schrift
gfx_print_text("Rechts drehend"); // Ausgabe Text


while(1==1) // while Schleife { ... }

{ // in der geschweiften Klammer steht der
// Anweisungsblock

int farbe; // es wird Variable namens "farbe" vom Typ int
// (Ganzzahl) deklariert

for (farbe=0; farbe<4; farbe++) // als nächste werden zwei ineinander
// geschachtelte for Schleifen verwendet
// die äussere Schleife läuft über den
// Wert der Variable "farbe". Die Variable
// wird bei 0 initialisiert und nimmt bis
// Abbruchbedingung nacheinander die Werte
// 0, 1, 2 und 3 an
{

int ledNr; // Mit der Anweisung "int led" wird die
// Variable namens "ledNr" vom Typ int
// deklariert

for (ledNr=0; ledNr<8; ledNr++) // Diese wird in der inneren Schleife
// verwendet.In der inneren for-Schleife
// stehen nun auch die eigentlichen
// Anweisungen. Mit der 8 werden die
// Anzahl der LEDs angegeben.
{

leds_set_status(farbe, ledNr); // mit "leds_set_status(farbe, ledNr);"
// wird der LED mit der ledNr die Farbe
// farbe zugewiesen.

delay(150); // Es wird 150ms gewartet
}
}
}
return 0;
}

So wie dein Prg aussieht kann das nicht gehen. Hilft nur lernen.
Achim

Achim S.
18.08.2011, 19:06
gfx_move(0,25); // Angabe Ort
gfx_hline(128);
// gfx_hline(12; // zieht Linie, Länge (12;

Es hat sich leider ein Fehler eingeschlichen.
Roboternetz bringt bei (1 2 8), ein Smily und lässt sich nicht ausschalten

Achim S.
18.08.2011, 19:08
Sorry es geht immer noch nicht.
die Zeile muss heissen

gfx_move(0,25); // Angabe Ort
gfx_hline (Klammer auf) 128 (Klammer zu);
// gfx_hline(12; // zieht Linie, Länge (12;
Leider geht es nicht anders!! Mist.
Achim

freekwave
18.08.2011, 20:03
hmm irgendwie funktionierts nich warum auch immer. Also das selbe Problem wie vorher.
:(

Achim S.
18.08.2011, 20:46
Das Prg geht, bis auf den Fehler mit der 128.
Wenn du damit keine Anzeige hast, ist das Problem wahrscheinlich vor dem Monitor zu suchen. Hast du denn ein Display mit dran? Lasse dir nicht alle Infos aus der Nase ziehen!
Achim

freekwave
18.08.2011, 21:01
Boa ich hab den Fehler gefund und der ist sehr peinlich ;). Und zwar hab ich ganz am Anfang beim erstellen des Projekts den falschen prozessor ausgewählt.
Aber vielen Dank für deine Hilfe Achim

MAYL
31.10.2011, 09:38
Hallo zusammen,

Ich habe mir vor kurzem den Nibo2 zugelegt.
Nach dem mech. Aufbau, der ohne Probleme erledigt war, kommt jetzt das Programmieren an die reihe.

Dazu muss ich jedoch sagen das ich noch keine Ahnung davon habe.
Jedoch lerne ich C nebenbei in der Technikerschule.

Nach Torturial habe ich alles richtig gemacht mit der Konfiguratin von AVRStudio.

Trotzdem bekomme ich, unabhängig vom Quellcode, diese Fehlermeldung:

avr-objcopy: 'Nibotest.elf': No such file

Das ist wahrschienlich nur eine Kleinigkeit aber ich finde dazu keine zu mir passende Beschreibung...

Ich hoffe ihr könnt mir da ein wenig Unterstützung geben ;)

Achim S.
31.10.2011, 19:21
Hallo Mayl
Begrüsse dich erst ein mal in unserem Kreis. Und wieder ist ein neuer User zu dem erlauchten Kreis Nibo-Freunde gestossen. Spaas beiseite. Es freut mich sehr. So wie es aussieht findet er die gesuchte Datei nicht. ES gibt verschiedene Fehler dazu. Angabe einer falschen Datei, Ziellaufwerk, nicht compiliert, Unterschied zwischen Dateinamen und Zieladresse. Kann leider wenig aus der Entfernung sagen. Die Angaben im Torturial stimmen. Bitte noch mal alle einstellungen kontrollieren. Achte auf gross und klein. Eine beschreibung gibt es für diesen Fehler nicht, da der Text eigentlich eindeutig ist. Suche mal hier im Netz nach dem Nibo2 Magazin. Steht vielleicht was zur Einstellung drin. Wenn nicht schick einen mail.
Achim

Hero_123
31.10.2011, 19:39
Hallo MAYL

Die Info "avr-objcopy: 'Nibotest.elf': No such file" ist etwas dünn...

- welches AVR-Studio benutzt Du denn - AVR Studio4 oder AVR Studio5? Hast Du die Einstellungen gemacht wie sie im "Tutorial zur Programmierung" stehen? Hast Du mal die Programme ausprobiert, die im Tutorial stehen (wichtig sind die Einstellungen zur Übertragung auf den NIBO! - siehe ab S/5..) - wenn da alle Einstellungen richtig sind, MUSS es klappen!

check das Ganze nochmal - und viel Glück & Spass

mfg

Hero_123

MAYL
01.11.2011, 11:31
Hmm, würde ja gerne mehr Informationen geben ;)

Ich nutze Version 4.10
Build 730


Wie läuft das mit der .elf-Datei überhaupt ab? Wird die automatsch von AVR generiert, oder muss ich das über ein anderes Tool erledigen?

Bezüglich den Einstellungen:
Ich habe erst nur das befolgt was im Text stand. Dieses dann fuchs eingestellt und getestet. Ergebnis negativ..

Daraufhin habe ich zusätzlich noch die Einstellungen aus den Screenshots übernommen. Aus kein Erfolg..

Letztlich habe ich dann die Aktuellste Anleitung direkt von nicai-systems.com geladen und verglichen, in der hoffnung er gäbe eine neue Version. Aber das hat soweit aber alles gestimmt...


Naja Ich werde dann nochmal von vorne anfangen, vielleicht klappts ja dieses mal^^

PS: Danke für fie herzliche Aufnahme hier :D

Grüße, Mayl

Hero_123
01.11.2011, 20:47
Hallo MAYL

Hm...also:

Du erstellst Dir Dein Programm kompilierst es mit dem AVR Studio ( wie das geht, steht ja im "Tutorial zur Programmierung"); die Pfadangaben: siehe "Tutorial zur Programmierung" auf Seite 6 - da wird der "Output file name" und "Output file directory" eingegeben - und wenn Du nun mittels explorer in diesen directories suchst - da stehen die files, die vom AVR Studio erzeugt werden -auch das *.elf file - auch das wird ja erzeugt.

Du benötigst aber nicht das *elf-file zum laden, man soll ja beim Übertragen anwählen: "Flash" "use current simulator/emulator file"....


mfg

Hero_123

MAYL
02.11.2011, 19:36
Es läuft endlich.

Fehlerursache:

Project -> Confiuguration Options -> Custom Options -> Use AVR Toolchain.

Hacken weg und avr-gss.exe und make.exe manuell auswählen. ;)

Anders generiert der die .elf-Datei nicht..

Jetzt kann ich mich endlich mit dem Programmieren umärgern. :D

Trotzdem danke!

Hero_123
02.11.2011, 20:25
Hallo MAYL

Prima!

Ich versteh's aber dennoch nicht so ganz - "Project" -> "Configuration Options" -> "Custom Options" => da habe ich bei mir bei "External Tools" den Haken bei "Use WINAVR", und beim Eintrag avr-gcc den entsprechenden Pfad "C:\WinAVR_20100110\bin\avr-gcc.exe" und beim Eintrag make den Pfad für das make, also "C:\WinAVR_20100110\utils\bin\make.exe"; diese Pfade werden doch automatisch angelegt,wenn Du WINAVR und das AVRStudio installierst...

Naja, wie auch immer....:)

mfg

Hero_123

MAYL
02.11.2011, 21:40
Wahrscheinlich ist das ein Feld, welches versionsabhängig vorkommt.

Hier ein Bild meiner (funktionierenden) Einstellungen :

20451

Für den Fall das bei jemandem das gleiche Problem auftaucht wie bei mir ;)

Hero_123
03.11.2011, 20:47
Nein, das ist genau das gleiche wie bei mir, nur habe ich bei mir einen Haken bei "External Tools" - Use AVR Toolchain" => und da sollte auch ein Haken sein...;)

mfg
Hero_123