Hi!
Nachdem ich jetzt über die Tastergeschichte ungefähr weiß, wie die externen Interrupts funktionieren bin ich mittlerweile dazu übergegangen, jetzt mal den Drehgeber zu testen. Also einen Ausgang an den INT0 und den anderen an Portd.3 als beliebigen Eingang. Entprellen habe ich mit 100nF probiert, die ich jeweils nach Izasebas Aussage zwischen Pin und GND geschaltet habe.

Ergebnis: Mit dem folgenden Code prellt das ganze wie Sau und außerdem habe ich keine Ahnung, was der Drehgeber da macht. Egal in welche Richtung ich drehe, zählt die Variable "zaehler" ohne System rauf und runter. Interessanterweise zählt die Variable immernoch, wenn ich eines der beiden if(bzw. else)-Statements auskommentiere und in die dazugehörige Richtung drehe. Komisch.

Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdio.h>
#include "wintek2704.h"
#include "wintek2704.c"


int zaehler;
char zaehler_s[2]; //in char konvertierte zaehler-Variable

void ioinit( void )
{
	DDRB = 0xff;
	DDRD = 0x00;
	
	PORTD = 0xff; //Pullups ein kann ja nicht schaden...
}


int main( void )
{
	zaehler = 0;
	
	ioinit();
	
	lcd_init( LCD_DISP_ON );
	lcd_gotoxy( 0, 0 );
	lcd_puts( "Initialisiert" ); //Display geht
	
	GIMSK |= ( 1 << INT0 );
	MCUCR |= ( 1 << ISC01 ) | ( 1 << ISC00 ); //INT0 auf steigende Flanke konfigurieren

	sei();
	
	for( ;; )
	{
		
	}
	
	return 0;
}


SIGNAL( SIG_INTERRUPT0 )
{
	if( PIND & ( 1 << PIND3 ) ) zaehler++; //Abfrage der Drehrichtung
	else zaehler--;
	
	sprintf( zaehler_s, "%d", zaehler ); //zur Ausgabe auf's Display wird zaehler zu einem char-Array konvertiert
	
	lcd_clrscr();
	lcd_gotoxy( 0, 0 );
	lcd_puts( zaehler_s );
}
Achja, mit "Reihenfolge" meinte ich, ob es einen Unterschied macht, in welches Register ich zuerst schreibe. Sprich ob es egal ist
Code:
GIMSK |= blablabla;
MCUCR |= blubblubblub;
oder
Code:
MCUCR |= blubblubblub;
GIMSK |= blablabla;
zu schreiben, weil sich vielleicht ein Register automatisch ändert, wenn in ein verwandtes Register geschrieben wird?!

Ich hoffe, ich hab meine Probleme verständlich beschrieben.

Gute Nacht dann endlich, Manni