Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: schnelles SPI Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 1.05.2006 22:13)
Als Antwort auf schnelles SPI von Michael - 30.04.2006 22:21
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0, OSOPT V3.1
Hallo Micha,

> ich möchte gern ein Vollgrafikfähiges Display (Handy-Display) an die C-Control anschliessen.
> Diese Displays werden über SPI angesteuert. Das Proggi vom Ablauf her geht klar.
> Mein Problem besteht darin, dass der ganze Bildaufbau zu langsam stattfindet.
> Dh. die Bitweise serielle Ausgabe an der CControl funzt zu langsam und somit kann man den
> Bildaufbau Pixelweise beobachten.
> Leider hab ich keinen blassen von Assemblerprogrammierung um das ganze
> in einer Weise ablaufen zu lassen die annehmbar ist.
>
> Kennt jemand aus der Gemeinde einen Link (oder Idee) worüber man eine schnelle SPI über zwei frei
> wählbare Ports bekommt? Mit dem Clock einer CC2 sollte das doch sicher machbar sein, oder
> stosse ich hier an Grenzen der CC.

An Grenzen stö�t Du hier sicher nicht.
Es sind nur kleine ASM-Routinen für eine schnelle Ausgabe nötig:

; P1L.0 CC60IO         DI
; P1L.1 COUT60  DO
; P1L.2 CC61IO  CLK
; P1L.3 COUT61
; P1L.4 CC62IO
; P1L.5 COUT62
; P1L.6 COUT63
; P1L.7 CTRAP
; P1H.0 CC6POS0
; P1H.1 CC6POS1
; P1H.2 CC6POS2
; P1H.3 T7IN  
; P1H.4 CC24IO
; P1H.5 CC25IO
; P1H.6 CC26IO
; P1H.7 CC27IO

OSsegment       EQU     0
POP_R4          EQU     0765AH  ;uses: R4, R12, R13, R14
PUSH_R12        EQU     075D6H  ;uses: R1, R2, R12, R13,R14,R15

; Byte schreiben SPI

wrbyte  proc far
        CALLS   OSsegment,POP_R4        ;data
        MOVB    RH4, RL4
        MOV     R13,#0h
_1:     ;for i=0 ... 7

        ROL     R4, #1
        BMOV    COUT60,C

        BCLR    CC61IO ; Clock
        BSET    CC61IO
        CMPI1   R13,#07h
        JMPR    cc_SLT,_1 ; next for; jump if R13 < 0x07

        BSET    COUT60

        POP     R1
        POP     R1
        RETS
wrbyte  endp

; Byte lesen SPI

rdbyte  proc far

        MOV     R12,#0
        MOV     R13,#0h
_2:     ;for i=0 ... 7

        BCLR    CC61IO ; Clock
        SHL     R12, #1
        BMOV    R12.0,CC60IO

        BSET    CC61IO
        CMPI1   R13,#07h
        JMPR    cc_SLT,_2 ; next for; jump if R13 < 0x07

        CALLS   OSsegment,PUSH_R12
        POP     R1
        POP     R1
        RETS
rdbyte  endp


Das ganze kannst Du z.B. über die Tasking-Tools assemblieren.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: schnelles SPI (von Michael - 2.05.2006 22:37)
    Re: schnelles SPI (von André H. - 14.05.2006 16:02)
        Re: schnelles SPI (von Michael - 8.06.2006 20:03)