Sorry für meine Blindheit, die Typenbezeichnung steht ja im Titel *brrrrrrrr*.
![Zitat](images/misc/quote_icon.png)
Zitat von
Phoenix2k
... Interrupt etc. sagt mir im Moment leider noch nicht viel ...
Das ist schlecht.
![Zitat](images/misc/quote_icon.png)
Zitat von
Phoenix2k
... Da muss ich mich noch schlau machen ...
Das klingt gut.
![Zitat](images/misc/quote_icon.png)
Zitat von
Phoenix2k
... Am liebsten wäre mir ein link zu nem Beispielprogramm in "C" gewesen, damit ich sehe wie man das Ganze programmieren muss.
Das kann ich mir vorstellen
.
Das hier
Code:
/* >>
===================================================================================
Target MCU : M168
Target Hardware : m168D Direktor für R2D03
Target cpu-frequ. : In der Quelle wählbar
===================================================================================
....
================================================================================ */
/* ============================================================================== */
/* === Initialisierung fuer EXT_INT0/1 auf Pin 16+17/mega168 =====================
$002 jmp SIG_INTERRUPT0 ; IRQ0 Handler _VECTOR(1)
$004 jmp SIG_INTERRUPT1 ; IRQ1 Handler _VECTOR(2) */
void XTI_0_1_init( void )
{ //Initialisiere beide Interrupts auf rising edge
// d.h. EICRA ISC00,01,10+11 auf 1 (doc,S68)
EICRA |= (1<<ISC11)|(1<<ISC10)|(1<<ISC01)|(1<<ISC00);
EIMSK |= (1<<INT1)|(1<<INT0); // und erlaube diese I´s in EIMSK
}
/* ============================================================================== */
/* ============================================================================== */
/* === Nicht unterbrechbare ISR für EXT_INT1 auf Pin 17/PD3/mega168 =========== */
/* Routine setzt einfach einen Zähler hoch.
Sonst wie ISR für EXT_INT0 für Motor li,re und PWM/Geschw. */
ISR(SIG_INTERRUPT1)
{
Iencdr2 ++; //zähle Counter/encoder2 hoch
Iz_yseci2 = Izeit_1; //Weise Iz_ysec2 dem akt. Timerwert zu
Iz_diff2 = Iz_yseci2-Iz_ysecv2; //Neue Zeit-Differenz2 ausrechnen
Iz_ysecv2 = Iz_yseci2; //der aktuelle Zeitwert wird "Alter"
}
/* ============================================================================== */
/* ============================================================================== */
ist für (m)einen mega168 und sorgt bei diesem Antrieb für die Messwerterfassung. Die hier genannten Variablen sind wohl alle volatile uint16_t.
Hilft das?
Lesezeichen