RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 NIBO 2 Projekte NIBO2 + GFX: RTTTL Nokiaringtone Player

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: NIBO2 + GFX: RTTTL Nokiaringtone Player

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1311

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Hi Egon, gibt es Zweifel, Probleme oder so?

Gerade die HEX nochmal geflasht - Programm macht wie gewollt.
und wenn ja - wo?
Daheim im Keller..

Nehme an Du meinst wo die Routinen stecken - in timer2.h und timer2.c, habe aber derzeit nur eine Routine, die eingetragen wird - in audio.c in timer2_init
/* AUDIO ISR in Timer2 ISR anmelden */
	timer2_init(&audio_ISR_T2);
Die 10 möglichen Funktionen werden allerdings nicht gleichzeitig abgearbeitet - in jeder Millisekunde wird nur eine Funktion aufegrufen, nach 10ms wieder die erste.
ISR (TIMER2_COMP_vect){
 
	if(++ISR_index > 9) ISR_index = 0;
 
	FunctionPtr_t ISR_task = ISR_T2_tasktable[ISR_index];
 
	if(ISR_task != 0){
		ISR_task();
	}
}

Bin aber gerade mit den Floorsensoren am kämpfen.. und in copro.c sind sehr,sehr viele cli() und sei() drin, bin gespannt ob das mit Fahren und Musik noch klappt.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1312

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo BirgerT

Bist wohl ein kleiner Witzbold - "Daheim im Keller" :clap:

Dass die Routinen in timer2.h und timer2.c stecken, ist mir auch schon aufgefallen ;) und die Aufrufweise - das ist ja auch klar - ich wollte nur wissen, ob Du die Funktion nur 1mal nutzt oder wirklich 10mal unterschiedliche Funktionen aufrufst -und DA würde mich das timungverhalten des zyklischen/ISR-gesteuerten Programms interessieren..

Willst Du damit so 'ne Art "Multitasking" machen??

Und weshalb fährt Dein NIBO noch nicht mit LALÜ LALA rum? Wie mans machen kann steht doch prinzipiell in meinen Programm (blinken und hupen,wenn der NIBO rückwärts fährt)

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1313

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo BirgerT

Nochmal zu Deiner timer_ISR - die aufgerufene Funktion darf ja max 1ms lang dauern (besser sogar etwas früher beenden -> "Angstzuschlag") - was ist, wenn sie länger dauert? Wie reagiert da Dein Programm/ISR? Hast Du das auch schon mal gecheckt? Bei nicht-programmkritischen Funktionen stellt das sicherlich kein Problem dar (der Lautsprecher biepst halt dann länger usw) - aber bei kritischen?

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1314

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Hallo Egon, Du wolltest wissen, was ich nur vermutet hatte..
.. und vergesse immer, das zu erwähnen:
die aufgerufene Funktion darf ja max 1ms lang dauern

Habe (daheim) an das Ende der ISR Timer2 einen Maxwertspeicher für das TCNT2 eingebastelt, das ja jede ms von 0..249 hochzählt und dann den nächsten Interupt auslöst.
Er kommt nicht weiter wie 4,
d.h. die audio_ISR dauert gerade mal 5 Timertakte á 4us (1/250.000Hz).

Während einer Interuptroutine ein neuer Interupt:
In älterer Literatur stehen noch SIGNAL = nicht unterbrechbar und INTERRUPT für Unterbrechbare Routinen; ISR ist neu - weiß nicht, muss mal woanders recherchieren.

Der Nibo2 fliegt nicht, rettet, bewahrt oder gefährdet Leben -wo sind da kritische Funktionen?! Eigentlich habe ich diesen Timer2 Schlonz ja gemacht, damit der Nibo2 beim Singen nicht stehen bleiben muss, weil er mit delay beschäftigt ist.
Und weshalb fährt Dein NIBO noch nicht mit LALÜ LALA rum?
Weil ich mich zu lange mit der Erforschung der Bodensensoren aufgehalten habe..
(blinken und hupen,wenn der NIBO rückwärts fährt
Habe das Programm test_01 mal probiert; will ja auch beim rückwärtsfahren dieses Beep-Beep ausgeben. Tipp Versuch mal die Note H5, der Ton kommt am lautesten.

Gute Nacht..
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1315

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo BirgerT

1.) Du hast dennoch meine Frage nicht beanwortet
- was ist, wenn sie länger dauert? Wie reagiert da Dein Programm/ISR? Hast Du das auch schon mal gecheckt?

2.) Es ging mir beim Rückwärtsfahren weder um die Lautstärke noch um die Tonhöhe, sonder nur um die Funktion, daß er piepst, während er fährt - und das geht ja...

3.) Kritische Funktionen - eigentlich hatte ich erwartet, daß Dir klar ist, was ich damit meine - zeitkritische Funktionen; und daß der NIBO2 NICHT FLIEGT, bezweifle ich doch stark - wirf ihn mal zu Fenster raus ;)

schönen Nachmittag

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NIBO2 + GFX: RTTTL Player --> MyWorx 11 Jahre 9 Monate her #1316

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Hi Egon, zu Deinen Fragen..
Wenn die ISR mal länger dauert - hier nachlesen
www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Kapitel 13.5
Das war dann auch alles an Check - Du kannst Dir das Projekt klonen und selber mal ein delay(irgendwas); in die ISR vom Timer 2 einfügen.

die Funktion, daß er piepst, während er fährt
Welches Projekt ist das? In test_01 piepst er nur einmal, bevor er losfährt.
wirf ihn mal zu Fenster raus
..bin nahe dran, und dann gleich mit'm Rasenmäher drüber, und den Fangkorb in die Mülltonne leeren. :evil:

Probier doch mal das Build von heute.. Klonen und in nibo2_tour.c die Speeds im Array auf 40 setzen. Der macht dann mitmal, wie 'ne Fliege mit nur einem Flügel,
oder legt Pausen ein, dasste meinst der Copro leidet unter Sekundenschlaf. :angry:

ciao
Letzte Änderung: 11 Jahre 9 Monate her von BirgerT. Begründung: Web-Link gefixt
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.107 Sekunden

Werbung