Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Sekundensignal über I²C an SAA1064 übertragen Kategorie: Programmierung ASM (von OLLI - 17.12.2005 20:50)
OLLI nutzt:  CC1-M-Unit V1.1
Hallo zusammen,

ich habe folgendes Problem: Baue z.Zt an einer Funkuhr im LED Kreisdesign. Stunden und Minuten werden über die 16 Port´s der C-Control "M"Unit Vers1.1 auf vier 7-Segmentanzeigen angesteuert. Funktioniert auch schon.
Nun möchte ich die 60 LED´s in Kreisanordnung als Sekundenanzeige ansteuern. Als Hardware dachte ich an den SAA1064 (für den I²C Bus geeignet). Nun weiss ich das man den SAA1064 über Basic (2 Port´s) ansteuern kann. Da ich aber keine mehr frei habe, muß ich zwangweise auf Assembler umsteigen. Ich habe eine Routine gefunden die den PCF8574 ansteuert:

;
Ansteuerung eines PCF8574 ber SDA und SCL
;Verwendung des vorhandenen I2C-Bus der C-Control

       .org $101
;EEPROM vom Bus abmelden
        jsr $08BB    ;I2C_ReadLast
;Schreibzugriff auf PCF8574
        ldx $0A1     ;Adresse PCF8574 lesen
        jsr $083C    ;I2C_Start
        ldx $0A2     ;Daten lesen
        jsr $0846    ;I2C_Write
        jsr $08E5    ;I2C_Stop

;EEPROM wieder anmelden
        ldx #$0A0    ;Adresse 24C65, write
        jsr $083C    ;I2C_Start
        ldx $066     ;AdrCounter Hi
        jsr $0846    ;I2C_Write
        ldx $067     ;AdrCounter Lo
        jsr $0846    ;I2C_Write
        ldx #$0A1    ;Adresse 24C65, read
        jsr $083C    ;I2C_Start
        rts
.end

;EEPROM vom Bus abmelden
        jsr $08BB    ;I2C_ReadLast
;Lesezugriff auf PCF8574
        ldx $0A1     ;Adresse lesen
        incx         ;Lesebit setzen
        jsr $083C    ;I2C_Start
        jsr $086F    ;I2C_Read
        sta $0A2     ;Daten speichern
        jsr $08BB    ;I2C_ReadLast
;EEPROM wieder anmelden
        ldx #$0A0    ;Adresse 24C65, write
        jsr $083C    ;I2C_Start
        ldx $066     ;AdrCounter Hi
        jsr $0846    ;I2C_Write
        ldx $067     ;AdrCounter Lo
        jsr $0846    ;I2C_Write
        ldx #$0A1    ;Adresse 24C65, read
        jsr $083C    ;I2C_Start
        rts


.end

Mein Problem ist das ich kein Assembler kann. Wer schreibt mir die Routine um, damit über den I²C Bus der C-Control das Sekundensignal ausgegeben wird.

Güße von OLLI

 Antwort schreiben

Bisherige Antworten: