Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt mit Bascom einstellen
Hallo Leute,
Ich bin neu in diesem Forum und möchte daher erst einmal alle begrüßen.
Als Neuling bahe ich noch einige Startprobleme. Daher kommen bestimmt noch ein paar Anfängerfragen. Ich hoffe das ist nicht so schlimm.
Als ertses muss ich sagen, das die Hardware RN-Mega8 echt klasse ist -> ging leicht und schnell aufzubauen und es hat nach dem Einspielen des Beispiels und dem Verstellen der Fuse-Bits gleich alles funktioniert....
Ich habe das Board RN-Atmega 8 V.1.4 und möchte Pulse messen. dazu wird ein Interrupt an Int0 ausgelöst.
Kann mir jemand sagen, wie man den Interrupt auf positive oder negative Flanke einstellt, oder kann der Mega8 und eine Flankenart?
Gibt es bei Bascom Befehle dafür oder muss man dazu Assembler nutzen?
Vorab vielen Dank für eine Antwort !
Grüße
Detlef
bertl100
06.06.2005, 10:09
Wenn du die Pulslänge, also nur das "Hi" oder "Lo" messen willst, dann gibt es den Befehl --------Pulsein-------- schau mal in der Hilfe nach
Dieser Befehl wartet bis eine positive oder negative,je nach einstellung, Flanke kommt und mist dann auch nur das Hi oder Lo.
MFG
Bertl
Ich will die Pulslänge von Flanke 0->1 zu Flanke 0->1 messen.
Die Pulse liegen im Bereich von 60-120µs. Ist der Befehl nicht zu langsam, oder lässt er sich so einstellen?
Grüße
Detlef
bertl100
06.06.2005, 13:02
Das ist dann die Periodendauer einer Flanke, also von Hi nach Hi.
Dazu gibt es den "capture Timer". Dieser wird, je nach Deklaration, bei fallender oder steigender Flanke gestartet und gibt den aktuellen Zählerstand
bei der nächsten Flanke aus.
Ich bin selber noch am probieren mit dem capture Timer, aber grundsätzlich funktioniert es so.
Hallo,
->Dazu gibt es den "capture Timer".
ich konnte nichts über5 diesen Befehl finden. Ist er Versionabhängig?
Ich werde weitersuchen und evtl. auch mal probieren.
Nun noch einmal zu meine 1.Frage: Wie kann ich die Flanke (pos. oder neg.) beim Interrupt einstellen?
Viele Grüße
Detlef
Die flanken werden mit EDGE=RISING/FALLING eingestellt.
Erklärung: siehe Bascom Hilfe
Da ist das schön mit Beispielen erklärt.
Hallo,
ja das stimmt, die Hilfe ist ganz Schön !
Zur Flanke habe ich gefunden, dass Edge erst ab Int4 eingestellt werden kann. Da der Mega8 nur Int0 und Int1 hat scheint es nicht zu gehen.
Oder habe ich noch etwas übersehen?
Grüße
Detlef
laut datenblatt sollte es gehen. probier es doch mal aus.
ich hab nur nen mega128.
Beim BasCom 1.11.7.8 geht das mit den Flanken bei int0/1 (Vorher hat er nur LOW-Level angeboten)
Hallo,
die Downloadversion ist V1.11.7.
Wie und wo geibt es die V1.11.8 als Demo?
Grüße
Detlef
Auf meiner CD ist ein Korrektur Exe-drauf, das meint, es sei diese Version
die 1.118 habe ich bei www.rasenack.com im downloadbereich gesehen.
ist auch diese korregierte datei dabei
Danke !
Ich werde es mal ausprobieren !
Gruß
Detlef
Ich hatte bei der alten Version auch das Problem, dass Bascom die Interrupts nur bei Low Level auslösen wollte, aber man kann das auch einfach selber in die Hand nehmen und das dafür zuständige Register enstprechend einstellen, z.b so
On Int0 Onint0
On Int1 Onint1
Mcucr = 00001010 'Interrupt 0 und 1 bei H/L-Flanke auslösen
Enable Int0
Enable Int1
Enable Interrupts
Wie Mcucr genau eingestellt werden muss kann man aus dem Assembler Tutorial hier http://www.mikrocontroller.net/tutorial/interrupts entnehmen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.