mikrocontroller.net

Forum: Projekte & Code SMPTE Timecode Reader ATMega8 @7.3728MHz


Autor: Magnus Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Aufgrund einer aktuellen Anfrage zwecks Bereitstellung eines 
(funktionsfähigen) Codes für die Auswertung eines SMPTE-Timecodes stelle 
ich hier mal was ein :)

Bitte jetzt nicht über meinen (damaligen) "Programmierstil" herfallen... 
Der Code stammt aus meiner C-Anfängerzeit (Autodidakt) und wurde seitdem 
nicht mehr überarbeitet.

Wer sich inspiriert fühlt, darf diesen Code gerne nochmals überarbeiten 
/ optimieren. Ich bitte euch aber darum, etwaige Verbessserungen / 
Erweiterungen hier zu posten, damit alle etwas davon haben (schliesslich 
habe auch ich mir damals den A... dafür aufgerissen).


Hardwarevoraussetzungen:

  - ATMega8 @7.3728MHz
  - Externe Signalaufbereitung (TC-Signal muss zumindest mit TTL-Pegeln
    zugeführt werden)


Verwendete Pins:

  PB0[ICP1]   TC-Eingang
  PB5[SCK]    GPI-Ausgang / LED
  PB6[XTAL1]  Quarz (16MHz)
  PB7[XTAL2]  Quarz

  PD0[RXD]    RS232 (Kommunikation mit ANSI-Terminal)
  PD1[TXD]    RS232 (Kommunikation mit ANSI-Terminal)


Zum Funktionsumfang:

Der dem PB0(ICP1) Pin zugeführte Timecode wird mittels InputCapture 
ausgewertet. Im Quelltext sind diverse Funktionen enthalten (teilweise 
auskommentiert) um folgende Informationen zu extrahieren:

  - Timecode [ASCII]           -> void xtract_tc_ASCII(void)
  - Timecode [dezimal]         -> void xtract_tc(void)
  - Timecode [Frames absolut]  -> void convert_to_frames(...)
  - Userbits                   -> void xtract_ub(void)

  - Timecodeabhängiges setzen / löschen eines GPI-Ausgangs


Serielle Kommunikation:

  38400 Baud
  8 Datenbits
  1 Stopbit

  - Ausgabe an ANSI-Terminal
  - Eingabe von TCs für Aktivierung des GPI-Ausgangs via ANSI-Terminal


Anmerkung:

  Der TC kann aktuell nur bei Wiedergabe mit 1facher Geschwindigkeit
  (PLAY) ausgewertet werden! Eine Auswertung bei SlowMotion,
  Jog/Shuttle, FWD und REW ist mit diesem Programm nicht möglich.


Beste Grüße,

Magnetus

Autor: Olaf Bettien (olli_b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dankeschön.


Olaf

Autor: Hans Ehlers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Magnus,

d.h. der Pegel vom SMPTE-Signal ist bereits TTL zwischen 0-5 Volt; 
daraus folgt du legst das Signal direkt an den µC an - ohne was 
dazwischen?

Hans

Autor: Magnus Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
[Zitat aus "Beitrag "SMPTE empfangen"]
> Zwischen welchen Pegeln bewegt sich das Signal - logische 1 = 5Volt?
[/Zitat]

Die Daten werden nicht als logisch "1" und "0" sondern mittels "Bi Phase 
Mark Code" übertragen (siehe folgender Link).

http://www.philrees.co.uk/articles/timecode.htm#mod


Hans Ehlers wrote:
> daraus folgt du legst das Signal direkt an den µC an - ohne was
> dazwischen?

Nein, ich habe vorsichtshalber noch einen bisschen Hühnerfutter (siehe 
Anhang) vorgeschaltet. Ich wollte mich nicht darauf verlassen, dass das 
ankommende Signal wirklich mit TTL-Pegeln ankommt.

Gruß,
Magnetus

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.