Hi
ich denke, die Bezeichnung "initializer2.hex" ist aussagekräftig genug...
mfg
Hero_123
Druckbare Version
Hi
ich denke, die Bezeichnung "initializer2.hex" ist aussagekräftig genug...
mfg
Hero_123
Hi Achim.
Auch wenn der Nibo1 schon ausgestorben ist, werden ihn wohl der ein
oder andere wohl besitzen. Folglich werden dafür wohl auch Libs und Header-Files benötigt. Mit manchen Header-Files in inlude/nibo kann ich
persönlich nicht viel anfangen und dachte mir daher immer, daß die für den Nibo1 benötigt werden. Es gibt/gab ja auch iodefs_nibo1.h und iodefs_nibo2.h. Die motco.h ist, soweit ich das verstehe ja auch nicht für den Nibo2, oder ? (Bin aber aber auch nicht wirklich sicher)
sourcecode
Hi
es müsste doch eigentlich klar sein - was eine "2" enthält, ist für den NIBO2, was eine "1" enthält, für den NIBO1 und ohne Bezeichnung gilt für beide (klingt für mich jedenfalls logisch).
mfg
Hero_123
Hi.
Klingt schon logisch, aber warum sind dann in der motco.h und in der copro.h Funktionen für den Motor ?
sourcecode
Hallo zusammen,
klar und eindeutig ist nur jenes, was auch entsprechend verständlich und eindeutig beschrieben ist.
Eine solche verständliche Beschreibung fehlt leider beim Nibo2 an mehreren Stellen.
Ich habe mich bisher nicht dafür interessiert, was es für Nibo-Versionen gegeben hat. OK, irgendwie habe ich gesehen, dass es mal einen Nibo (ohne Zähler) gegeben hat. Hat es aber auch einen Nibo1 gegeben? Woran soll ich erkennen können dass Nibo=Nibo1 ist? Vermuten kann man alles.
Als weiteres Beispiel:
"Delay" hat entsprechend Quelltext die Einheit "ms", dieses ist für mich die typische Bezeichnung für "Millisekunden". Dieses hat wohl vielleicht auch mit einem älteren und langsameren Prossor mal gestimmt, passt aber bei meinem Nibo2 absolut nicht. Für Anfänger eine unangenehme Falle bei der Fehlersuche.
Nachdem die Bauanleitung und das Tutorial grundsätzlich einen guten Start ermöglichen und offensichtlich für Anfänger ausgelegt sind, tappt genau diese Zielgruppe anschließend in einige Fallen. Wie man im Forum sehen kann stolpern offensichtlich auch einige erfahrene Anwender durch fehlende oder undeutliche Beschreibungen.
Leider reagiert hier der Hersteller mit "gründlicher" Zurückhaltung.
Hallo Freunde
im Netz z.B. bei Henkes ist immer nur die Rede von Nibo 1. Rausgekommen ca. 2007. Hat sich aber eigenartiger weise nicht durchgesetzt. Dann kam 2009 der Nibo 2. Laut meinen Infos waren sie im Grundaufbau gleich. Nur der erste hatte mehr diskrete Bauteile drauf. Im Nibo Wiki sieht man einige Bilder. Wenn man genau hinsieht erkennt man den Unterschied. Der 7805 ist noch kein Chip und Motorregelplatine wird nicht direkt auf Grundplatine gesteckt sondern über ein Kabel verbunden. Der Prozessor ist aber gleich. Wenn damals der gleiche drauf ist wie heute, wozu brauche ich dann eine extra Datei? Was die gründliche Zurückhaltung betrifft, sehe ich die Sache genauso. Das Wort Kundendienst besteht aus zwei Wörten. Einmal Kunde und zweitens Dienst. War 28 Jahre im Kundendienst tätig und kenn so ziemlich jede Version. Vertrete immer wieder die Meinung, ein Gerät ist nur so gut wie sein Kundendienst. Aber das muss jeder für sich entscheiden.
Achim
Hallo
naja, es gibt schon entscheidende Unterschiede zwischen NIBO1 und NIBO2 - der NIBO2 hat z.B. als Motorregler den ATmega88, dieser kann derzeit NICHT alleine programmiert werden usw...
und "delay" und "ms" (wobei "Millisekunden" schon der korrekte Begriff ist ;-)) - das hat m.E. nichts mit älterem oder neuerem Prozessor zu tun (eine Millisekunde ist eine Millisekunde, egal welcher Prozessor genutzt wird)... man sollte schon die Dokumentation der lib lesen VOR Nutzung derselben, wobei ich aber auch der Meinung bin, daß diese Doku doch etwas dünn ist
mfg
Hero_123
Hallo elektrolutz
was meints Du mit
ZITAT:
"Als weiteres Beispiel:
"Delay" hat entsprechend Quelltext die Einheit "ms", dieses ist für mich die typische Bezeichnung für "Millisekunden". Dieses hat wohl vielleicht auch mit einem älteren und langsameren Prossor mal gestimmt, passt aber bei meinem Nibo2 absolut nicht. Für Anfänger eine unangenehme Falle bei der Fehlersuche. " ZITATENDE
- WAS passt da bei Deinem NIBO2 nicht?
mfg
Hero_123
Hallo Hero_123,
hier ein Beispiel mit der Möglichkeit der hörbaren Feststellung (ohne Messgeräte):
Beschreibung aus Lib-Doc zu V2.7
void sound_tone ( int interval, int time )
Ton für time ms abspielen, die Frequenz wird durch interval vorgegeben
Gebe ich für "int interval" eine Frequnez eines Tonleiter-Tones an, erzeugt der kleine Piepser nicht einmal annähernd einen passenden Ton zu einem Instrumententon (z.B. Keyboard, Flöte, ...)
Gebe ich für "int time" 20000 ein, sollte ein Ton mit der Dauer von 20 Sek. gespielt werden. Mein Nibo2 piepst noch nicht einmal eine gefühlte Sekunde lang.
(In einem früheren Posting hat "workwind" dargestellt, dass der Wert 20000 für "int time" ca. 1/4 Sek. entspricht.)
Mit gleichem von Hand eingegebenen Code erzeugt "Achim S." gleiches Ergebnis.
Vielleicht machen Achim und ich ja den gleichen Fehler, wie sehen die Ergebnisse bei dir aus.
Hier mal mein kleines Testprogramm:
Code:#include <nibo/niboconfig.h>
#include <nibo/leds.h>
#include <avr/io.h>
#include <nibo/sound.h>
#include <nibo/delay.h>
#include <nibo/display.h>
#include <nibo/gfx.h>
#include <nibo/bot.h>
#include <nibo/iodefs.h>
#include <nibo/pwm.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include "nibo/adc.h"
#define _delay_ms
int main()
{
sei();
leds_init();
bot_init();
display_init();
gfx_init();
pwm_init();
sound_init();
leds_set_displaylight(800);
gfx_move(30, 0);
gfx_set_proportional(1);
gfx_print_text("LED test");
gfx_set_proportional(0);
while(1==1)
{
if (PIND & (1 << PD4))
{
leds_set_status(1,5);
}
else
{
leds_set_status(2,5);
sound_tone(100,32767);
delay(325);
sound_tone(0,0);
}
int farbe;
for (farbe=4; farbe>-1; farbe--)
{
int ledNr;
for (ledNr=0; ledNr<8; ledNr++)
{
leds_set_status(farbe, ledNr);
delay(50);
}
}
char text[20]="-- -- -- -- --";
// Spannung
bot_update();
float volt = 0.0166 * bot_supply - 1.19;
sprintf(text, "%3.2fV", (double)volt);
gfx_move(30, 8);
gfx_set_proportional(1);
gfx_print_text("supply: ");
gfx_set_proportional(0);
gfx_print_text(text);
// Batterie
float vbatt = (adc_read(AN_VBAT)-24)*0.01734;
char buffer[20];
gfx_move(30, 16);
sprintf(buffer, "%5.2fV", (double)vbatt);
gfx_set_proportional(1);
gfx_print_text("supply: ");
gfx_set_proportional(0);
gfx_print_text(buffer);
// sound
sound_tone(20, 20000);
sound_tone(40, 20000);
sound_tone(60, 20000);
sound_tone(80, 20000);
sound_tone(100, 20000);
sound_tone(120, 20000);
sound_tone(140, 20000);
sound_tone(160, 20000);
// Headlights
int Headlight;
for (Headlight=0; Headlight<1025; Headlight++)
{
leds_set_headlights (Headlight);
delay(1);
}
for (Headlight=1024; Headlight>-1; Headlight--)
{
leds_set_headlights (Headlight);
delay(1);
}
}
return 0;
}
Hallo elektrolutz
danke für Dein Testprogramm; wenn ich - wie Du oder "Achim S."
- deinen geposteten Code verwende
- einen NIBO2 habe
- die gleiche lib (nibolib V2.7) verwende
- das gleiche initialier2.hex geflasht habe
- die gleichen Compiler, Linker, Frequenzeinstellungen des AVRStudio4 habe
dann ist imho davon auszugehen, daß sich mein NIBO2 wie deiner oder der von "Achim S." verhält.
Wenn die lib V2.7 (oder die dazugehörige Doku) fehlerbehaftet ist, sollte man das bekannt machen, speziell dann, wenn "workwind" in einem früheren posting offensichtlich schon darauf hingewiesen hat...und man sollte den "Lieferant" der lib auch darauf hinweisen, daß sein "Produkt" nicht fehlerfrei ist, und das sollte der machen, der den Fehler feststellt - oder was meinst Du?
Man kann ja ein neues Thema aufmachen mit dem Titel "Fehler in der NIBO2 Lib V2.7 nibolib-20100910" und da diese beschreiben, dann würden ALLE NIBO2 User davon profitieren - was hältst Du von dieser Idee?
...Und jeder kann dann die Fehler/Unzulänglichkeiten posten, die er gefunden hat - das wäre dann so eine Art KnowHowBase...
mfg
Hero_123