Falls jemand mal drüber stolpert, ich habe das Timing jetzt mal mit einem Oszi nachgemessen.
Der Code in C (gcc):
Code:
void SIG_INTERRUPT0(void){
PORTB &= ~(1<<PB3); //Set to low
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
asm volatile("NOP"::);
PORTB |= (1<<PB3); //Set to High
sei();
}
ergab mit einem 20MHz Quarz:
https://www.roboternetz.de/phpBB2/al...php?pic_id=840
Wobei das Blaue das externe Signal an Int0 ist, und das Rote die Leitung, die ich in der Interruptroutine geschaltet habe.
Das Signal kommt von der Strope Leitung des Druckers.
Grüsse Michael
Lesezeichen