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:
Das ist im Programm folgender Abschnitt:Um eine Unterscheidung zwischen Zeilen- und Vertikalimpuls zu erreichen, ist letzterer 2,5 Zeilen (2,5 × 64 Mikrosekunden) lang.
Aufgedröselt sieht das so aus:Code:do { h_sync=0; while (ADCH > 20); while (ADCH < 30) h_sync++; } while (h_sync < 40);
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.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
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







Zitieren


Lesezeichen