hmm, hört sich schön an, ich wüßte aber nicht wie ich das im Programm machen sollte, bin halt noch ziemlicher Neuling auf dem Gebiet. Ein kleines Programmbeispiel wär toll, dann sieht man wie sowas gemacht wird und kann draus lernen.
Gruß
Andreas
Druckbare Version
hmm, hört sich schön an, ich wüßte aber nicht wie ich das im Programm machen sollte, bin halt noch ziemlicher Neuling auf dem Gebiet. Ein kleines Programmbeispiel wär toll, dann sieht man wie sowas gemacht wird und kann draus lernen.
Gruß
Andreas
hi,
du machst für jeden servo einen merker. der wird wenn der wert des des timers beim start des impulses gespeicher wird auf 0 gesetzt. bei einem timer overflow lässt du einen interrupt auslösen, in der isr werden dann alle merker auf 1 gesetzt. wird nun bei fallender flanke der neue timerwert ausgelesen, wird überprüft, ob der entsprechnde merker 1 ist, ist das der fall, weißt du, dass während des impulses ein timerüberlauf stattgefunden hat.
mfg jeffrey
.....toll, aber wie gesagt ich bin "Neuling" und hab echt nicht viel Ahnung von der Thematik (bisher)
Wie mache ich eine Merker?
Wie lasse ich einen Interrupt auslösen ?
Was ist ISR ( Männlich , weiblich...oder kann man das essen?)
Kleine praktische programmbeispiele sind für mich am besten zum lernen. Füttert mich mit sowas und ich werde es begierig verschlingen.
Gruß
Andreas
hi,
ein merker ist einfach eine hilfsvariable. isr: interrup service routine
bei bascom sind im orner samples viele programmbeispie dabei, hier der ausschnitt zum timer interrupt:
mfg jeffreyCode:'when the timer overflows, a flag named TOV0 in register TIFR is set
'You can use this to execute an ISR
'To reset the flag manual in non ISR mode you must write a 1 to the bit position
'in TIFR:
Set Tifr.1
'The following code shows how to use the TIMER0 in interrupt mode
'The code is block remarked with '( en ')
'(
'Configute the timer to use the clock divided by 1024
Config Timer0 = Timer , Prescale = 1024
'Define the ISR handler
On Ovf0 Tim0_isr
'you may also use TIMER0 for OVF0, it is the same
Enable Timer0 ' enable the timer interrupt
Enable Interrupts 'allow interrupts to occur
Do
'your program goes here
Loop
'the following code is executed when the timer rolls over
Tim0_isr:
Print "*";
Return
')
Hey Jeffrey,
danke, ich werd mich damit beschäftigen.
Gruß
Andreas
du solltest dir erstmal hier im roboternetz.de im bereich wissen die
beispielprogramme/code für bascom durchlesen, dann haben sich
die meisten fragen erledigt, auch für anfänger. guckst du :
https://www.roboternetz.de/wissen/in...scom_und_Timer