mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik VISCA Protokoll


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nach einigem testen komme ich irgendwie nicht weiter. Ich möchte mit
einem ATMEL MEGA16 eine Kamera mit Schwenk-Neigekopf über VISCA
Protokoll ansteuern. Nachdem ich mit meinem eigenen Programm nicht
weiterkam habe ich das Demo aus dem Tutorial Kap.7 genommen und
ausprobiert:
.include "m16def.inc"

.def temp = r16
.equ CLOCK = 4000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1

        ; Stackpointer initialisieren
        ldi temp, LOW(RAMEND)
        out SPL, temp
        ldi temp, HIGH(RAMEND)
        out SPH, temp

        ; Baudrate einstellen
        ldi temp, LOW(UBRRVAL)
        out UBRRL, temp
        ldi temp, HIGH(UBRRVAL)
        out UBRRH, temp

        ; Frame-Format: 8 Bit
        ldi temp, (1<<URSEL)|(3<<UCSZ0)
        out UCSRC, temp

        sbi UCSRB,TXEN                   ; TX aktivieren
    sbi UCSRB, RXEN          ; RX aktivieren

start:
        ldi ZL, LOW(text*2)               ; Adresse des Strings in den
        ldi ZH, HIGH(text*2)              ; Z-Pointer laden
        rcall print                       ; Unterfunktion print
aufrufen

        ;ldi R16, 10                       ; die Bytes 10 und 13
senden
        ;rcall sendbyte                    ; (Zeilenumbruch im
Terminal)
        ;ldi R16, 13
        ;rcall sendbyte
ende:

        rjmp ende                        ; das Ganze wiederholen


; print: sendet die durch den Z-Pointer adressierte Zeichenkette
print:
        lpm                               ; Erstes Byte des Strings
nach R0 lesen
        tst R0                            ; R0 auf 0 testen
        breq print_end                    ; wenn 0, dann zu print_end
        mov r16, r0                       ; Inhalt von R0 nach R16
kopieren
        rcall sendbyte                    ; UART-Sendefunktion
aufrufen
        adiw ZL, 1                        ; Adresse des Z-Pointers um 1
erhöhen
        rjmp print                        ; wieder zum Anfang springen
print_end:
        ret

; sendbyte: sendet das Byte aus R16 über das UART
sendbyte:
        sbis UCSRA, UDRE                  ; warten bis das UART bereit
ist
        rjmp sendbyte
        out UDR, R16
        ret

text:
.db 0x81, 0x01, 0x06, 0x04, 0xff ,0    ; Stringkonstante, durch eine 0
abgeschlossen

Wenn ich ein Terminal Programm starte, empfange ich die Daten richtig,
aber mit irgendetwas scheint die Kamera nicht einverstanden zu sein.
Schicke ich diesen Code jedoch über das Terminal Programm an die Kamera
klapt alles wunderbar. Ich vermute das irgendwas an dem Timing oder aber
ein Schalter falsch gesetzt ist (Visca Protokoll benötigt
9600bps(38400bps) data bits: 8 start bits:1 stop bits:1 Non parity MSB
first und kein Flow control) Ich glaub momentan sehe ich den Wald vor
Bäumen nicht mehr.

Kann mir jemand da helfen?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat da keiner eine Idee?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.