Archiv verlassen und diese Seite im Standarddesign anzeigen : Code für Interrupt?
Felixx87
20.09.2005, 13:26
Hi
ich bin ja immernoch ein Neuling in sachen Programmieren und ich hab nun von nem Kollegen in der Firma den auftrag bekommen mithilfe des counter und interrupt eines mega 32 ein signal zu erkennen und immer bei Steigender flanke soll eine LED an oder aus gehen.
nun habe ich versucht das ganze zusammen zu bekommen doch bin ich gescheitert :(
ich finde einfach keinen vernünftigen beispielcode damit ich die aufgabe realisieren kann.
könnt ihr mir helfen?
bertl100
20.09.2005, 15:07
Schreib einfach ein Unterprogramm mit .....onINTx (x steht für den jeweiligen Pin)
Zuerst ganz ober deklarieren, dann interrupts aktivieren mit.......... enable Interrupts....
dann die Unterfunktion schreiben in der du das LED für kurze Zeit leuchten lässt. Dort kannst du auch den counter zum Zählen reinschreiben.
Hab leider keinen Beispielcode.
MFG
Vader
commander7
20.09.2005, 15:15
hallo felix,
poste doch mal den code den du schon hast, dann ist es auch einfacher zu helfen...
gruss commander7
Felixx87
20.09.2005, 15:40
es gibt ja keinen code weil ich bisher nichts gefunden habe um es zu machen
und ich will bei jeden interrupt mit steigender flanke die led einschalten und wenn sie bereits an ist wieder aus machen
mehr solls net können(das proggie)
Leider habe ich auch erst mit Bascom angefangen, aber ich glaube mit dieser Code müßte es gehen.
$regfile = "m16def.dat"
$crystal = 8000000
On Int0 Int0_int
Enable Interrupts
Enable Int0
Config Pinb.0 = Output
Do
Loop
End
Int0_int:
Toggle Portb.0
Return
mfg
Guy
Felixx87
20.09.2005, 16:16
Cool danke ^^
Schaut super aus!
da muss ich ja nur die frequenz und den chip ändern und fertig :)
DANKE
Wenn du keine Lust hast viel zu rechnen dann schau dir den Codegenerator an:
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=169
Felixx87
20.09.2005, 17:30
hmm das Programm von Guy will nich so richtig :(
und danke Frank ist Praktisch aber ´des kann ich grad net gebrauchen ;)
ich soll einen externen interrupt nutzen
Ach so, hab ich wohl nicht richtig gelesen. Dann musst du generierten Code etwas abändern, so sollte er dann für dich gehen:
$regfile = "m32def.dat" 'rn-control
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Pinc.2 = Output
'Hier geben wir der Definition einen schöneren Namen
Led3 Alias Portc.2
Config Int0 = RISING
On Int0 Irq0
Enable Int0
Enable Interrupts
Do
Loop
End
'Interrupt
Irq0:
Toggle Led3
Return
Felixx87
20.09.2005, 18:40
ich bin echt zu blöd dazu :(
klappt net die LED an portc.2 leuchtet und ändert den zustand einfacah nich :(
Dann wird entweder kein Interrupt ausgeführt oder aber zuviele zu schnell.
Du solltets Signal am Interrupt Eingang mal prüfen, vielleicht brauchts du Pulldown Widerstand am Interrupteingang. PD2 ist übrigens der Interrupt Eingang, also beim Mega32 Pin 18
Das Beispiel ist übrigens auch in unserem WIKI:
https://www.roboternetz.de/wiki/pmwiki.php?n=Main.BasComVergleich4
Felixx87
22.09.2005, 17:41
menno
warum will des nur net funktionieren?????
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.