Hallo,
habe mal zur Hand genommen was da war. Atmega 16 @ 16 Mhz
Obere Kurve PD5 untere PD 7 mit 4,7K Pullup.
Wie man auf dem Bild vielleicht erahnen kann ist eine Zeiteinteilung von 1µs/div gewählt.
Das ist etwa das was ich erwartet habe. Ein weiter Test bei dem nicht die Pegeländerung am Beinchen, sondern der interne Zustand des PIN's auf einen anderen Ausgang gelenkt wurde, bestätigt, dass was zerush geschrieben hat. Darum Code und Messverfahren posten.Code:#include <avr/io.h> #define NOP asm("nop") int main (){ DDRD |= (1<<PD5); while (1) { PORTD |= (1<<PD5); //a DDRD |= (1<<PD7); PORTD &= ~(1<<PD7); //b DDRD &= ~(1<<PD7); //c NOP; NOP; PORTD &= ~(1<<PD5); //d } return 0; }
@zerush Wobei das Problem ja darin besteht, dass der Übergang von Ein- auf Ausgang auffällig lange dauert. Erst durch den Übergang wird eine Pegeländerung des PIN's hervorgerufen, die dann sicher auch beim OP schnell genug erkannt wird.
Gruß
Jens







Zitieren

Lesezeichen