-
-
Erfahrener Benutzer
Roboter-Spezialist
Hallo!
Du hast in deinem programm sehr viele berechnungen mit fließkommazahlen, das macht den code sehr langsam! oftmals lässt sich für schwierige berechnungen eine geeignete approximation finden, um die berechnung zu vereinfachen. im simulator kannst du unten die zeit sehen (bzw in zyklen umrechnen), die das programm für die abarbeitung braucht. zu deinen fragen:
1) es würde so nicht funktionieren, portb.1 wird im timer-interrupt ein- aber nie wieder ausgeschaltet.
2) der 88er ist fast baugleich wie der atmega8. bei dem weiß ich, dass er intern schon 8MHz erzeugen kann, also auch ohne externen quartz. der 88er wird das sicher auch können.
3) stimmt nicht. wenn du config adc... schreibst, sind automatisch ALLE adc-pins des controllers als eingänge geschaltet.
4) nein, die deklaration als config int0 reicht aus, um pind.2 als eingang zu deklarieren
5) wenn du die restlichen ports nicht brauchst, lass sie einfach weg und kümmer dich nicht um sie
6) wird im simulator auch der timer-interrupt ausgeführt? eigentlich sollte die led zumindest angehen!
nochwas zur ansteuerung. bei einem zündimpuls würde ich nicht den flankenwechsel mit change prüfen. eher würde ich auf die steigende flanke des impulses warten, so würde die dauer des impulses keine rolle spielen, was ja sicher so sein soll. da hast du dir eine interessante sache vorgenommen, ich hoffe, du berichtest über deine fortschritte in dieser sache! der kommentar, der an deiner timer-deklaration steht, stimmt auch nicht ganz: wenn du eine vorteilung von 8 verwendest und ein 8mhz takt hast, ist das genau eine µs, der timer könnte also mit frequenzen zwischen 15Hz und 1MHz zum überlauf gebracht werden.
so, ich hoffe, ich konnte dir zumindest etwas weiterhelfen. wenn nicht, immer fleißig fragen!
guten gelingen, ruppi
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen