Hallo,

mein RP6 hat eben einen ATMega32 und der von mir verwendete Eingang ist mit einem 10K-PullDown beschaltet.

Meine Infos zum BAS-Signal habe ich von hier. Der Start einer neuen Zeile ist der Sync-Impuls. Ein neues (Halb-) Bild beginnt mit einem extrem langen Sync.-Impuls:

Um eine Unterscheidung zwischen Zeilen- und Vertikalimpuls zu erreichen, ist letzterer 2,5 Zeilen (2,5 × 64 Mikrosekunden) lang.
Das ist im Programm folgender Abschnitt:

Code:
do { h_sync=0; while (ADCH > 20); while (ADCH < 30) h_sync++; } while (h_sync < 40);
Aufgedröselt sieht das so aus:

Code:
do
{
	h_sync=0;               // Synclängenzähler rücksetzen
	while (ADCH > 20);      // Ende aktueller Zeile abwarten
	while (ADCH < 30)       // Solange ein Sync-Pegel erkannt wird
	{
		h_sync++;            // wird der Zähler erhöht
	}
} while (h_sync < 40);     // Zähler größer 40 bedeutet: Start neues Halbbild
wird solange ausgeführt, bis 40 mal Sync.-Pegel erkannt wurde. Bei 16Mhz müßte dieser Wert allerdings deutlich größer als 40 sein. Das ist aber egal solange ein Zeilensync nicht länger als 40 ist.

Mit dem kleineren Speicher des ATMega8 must du Abstriche bei der Auflösung des Bildes machen, das ist aber nicht dramatisch. Mein aktueller Linienfolger liest z.B. auch nur eine Zeile mit 32 Werte ein. Das genügt völlig um eine Linie zu erkennen und ist deutlich mehr als eine LED/Fototransistor-Sensorik liefert.

Wenn du deinen Code und deine Messwerte postest, kann man dir etwas helfen ohne raten zu müssen.

Gruß

mic