Hallo Andreas!
Ob das Intel-Timing einfacher ist, kann ich leider nicht beurteilen,
weil ich das Intel-Timing (durch den 8051) kenne und mich deshalb dafür
entschieden habe. Das Motorola-Timing habe ich mir dadurch erst gar
nicht angeguckt, weil es auch ansonsten keine Vorteile bietet (gleiche
Anzahl von Steuerpins etc.).
Zum Ansteuern rechnest Du Dir am besten erstmal die minimale
Befehlszyklus-Zeit Deines Systems aus (meist 1/Clk_Freq). Dann
schnappst Du Dir das Datenblatt des 12C887, suchst das Bus-Timing und
steuerst Deine Control-Leitungen entsprechend an. Wenn Du sowas noch
nie gemacht hast, dann kannst Du Dir ein Lineal nehmen und dieses
vertikal auf den Anfang des Bus-Timings legen. Nun ziehst Du das Lineal
schrittweise von links nach rechts und achtest auf Pegel-Änderungen
(also auf "Striche", die von high auf low oder von low auf high
gehen). Sobald eine Änderung stattgefunden hat, realisierst Du diese in
Deinem Code (ziehst also die Control- und Daten-Leitungen auf low oder
high). Wenn Du am Ende angekommen bist, dann mußt Du nun kontrollieren,
ob Du irgendwelche Zeiten unter- oder überschreitest. Dafür guckst Du
in die Tabelle "AC ELECTRICAL CHARACTERISTICS" und vergleichst die
Zeiten mit Deiner Befehlszyklus-Zeit. Über- oder unterschreitest Du
irgendwelche Zeiten, dann mußt Du mittels schnellerer Programmierung
bzw. delays dafür sorgen, daß das nicht mehr passiert.
Wenn Du alles eingehalten hast, dann solltest Du ohne Probleme eine
Adresse (z.B. die Zeit) auslesen können. Du mußt Dir für das
Intel-Timing zwei versch. Funktionen schreiben: Eine Funktion, die eine
Adresse beschreibt und eine, die eine Adresse liest.
Zum Testen empfielt es sich, daß Du erstmal nur eine Adresse des
General Purpose NV-RAM beschreibst und dann den gleichen Wert ausliest.
Ist der geschriebene Wert nicht identisch mit dem gelesesem Wert, dann
hast Du einen Fehler in der Lese- oder Schreibroutine. Sind beide Werte
identisch, dann kannst Du sicher sein, daß beide Routinen einwandfrei
funktionieren! Soviel zur Lowlevel-Programmierung des 12C887! Wenn Du
damit fertig bist, kannst Du mit den beiden Funktionen neue Funktionen
schreiben, die z.B. die Uhrzeit stellen oder Abfragen.
Prüfe beim Initialisieren der RTC unbedingt das VRT-Bit im Register D,
damit Du sicherstellen kannst, daß der Chip einwandfrei funktioniert...