Na da mach Dir mal über die paar Takzyklen keine Sorgen, das ist völlig okay und spielt nicht annähernd eine Rolle bei deiner Anwendung.
Und richtig, der PIC braucht ja für die Befehle entsprechend Zeit.
Das würde in Assembler ungefär so aussehen.
Was dein Compiler draus macht weis ich ja nicht. Aber den erzeugten Assembler Code kannst Du Dir sicher auch irgendwie ansehen.Code:movf data,W ; Daten ins W Register laden bcf LATC,0 ; Chip Select Low movwf SSPBUF ; Daten ins Schieberegister bcf PIR1,SSPIF ; Interrupt Flag löschen wait: btfss PIR1,SSPIF ; scip, wenn SSPIF Bit gesetzt ist goto wait ; ansonsten weiter warten bsf LATC,0 ; Chip Select wieder High
Dann schaust Du in das Instruction Set von dem PIC und dort sind die Taktzyklen pro Befehl zu finden und kannst, wenns Dich interessiert, exakt ausrechnen wie lange er also braucht für den erzeugten Code.
Also selbst wenn er 10 Mikro Sekunden brauchen würde um ein Byte rauszuschicken, braucht er für 3 Bytes (24 LEDs) grad mal 30 Mikrosekunden. Du könntest also theoretisch rund 3333 mal pro Sekunde komplett neue Daten zu deinen LEDs schicken. Ich denke da brauchst Du Dir wirklich keinen Kopf drüber machen. Geniess das Wochenende udn programmier einfach weiter
-------------------------------------------------
Instruction Set : Seite 270 im Datenblatt. Tabelle TABLE 24-2







Zitieren

Lesezeichen