-
-
Erfahrener Benutzer
Fleißiges Mitglied
trigonometrische Funktionen mit Mega16
Hallo!
Hab meinem Roboter nun zwei "Infrarot-Radare" spendiert. D.h Ein G2DP12 Entfernungsmesser auf einem Schrittmotor gelagert. Leider klappt es noch nicht ganz mit der Auswertung.
Programmiere einen ATMega 16 mit Bascom.
Kann bereits die Motoren steuern, den Entfernungsmesser in cm auslesen, aber sobald ich den Sinus oder Cosinus der Werte berechnen will um das erkannte Hinderniss zu orten stürtzt der µC ab und startet neu.
Im moment lasse ich alle werte über die RS232 in einem Terminalprogramm anzeigen.
Ab und zu erhält eine Variable (Single) den Inhalt "NAN" bzw. "-NAN".
ist das ein Fehler in der seriellen Übertragung oder waran könnte das liegen?
Könnte es sein das der Speicher überläuft?
Kann ich Winkelfunktionen nur mit Single Variablen berechnen?
Wäre nett mir könnte jemand dabei helfen
mfg Omnikron
-
Hallo,
Winkelfunktionen sind nur mit Single-Variable berechenbar.
Kontrolliere mal Deine Einstellungen für HW Stack, Soft Stack und Frame-Size. Solche Fehler gehen oft auf einen Stack-Überlauf zurück.
Wenn Du sonst keine Functions oder Subs hast, dürften je 16 für HW Stack und Softstack genügen und für Frame-Size 32, da die Winkelfunktionen für temporare Ergebnisse den Frame benützen.
Im Simulator können die Werte dieser Pointer während der Programmausführung kontrolliert werden.
-
Erfahrener Benutzer
Roboter Experte
Hallo Omnikron,
schau mal die MicroMega FPU für 8-bit Controller an. http://www.micromegacorp.com/umfpu.html
Das Teil wird einfach über SPI angehängt, nur gibt es momentan noch keine fertige Unterstützung für BASCOM.
Viele Grüße
Jörg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen