AVR Programmierung, SysEx-Daten? Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
AVR Programmierung, SysEx-Daten? |
|
|
|
|
BID = 732811
Andi-872 Aus Forum ausgetreten
|
|
Hallo,
ich arbeite mit verschiedenen Musik-Sequenzerprogrammen. Es gibt hier im wesentlichen 2 Datenformate für Übertragungszwecke: MIDI und SysEx-Daten. Ist es technisch möglich, via MIDI-Kabel einen AVR anzusteuern, der aus einer großen und ständigen Datenmenge von SysEx-Daten (die in Hexadezimal vorliegen) 2 spezielle SysEx-Codes, auf die er programmiert wurde, rausfiltert und bei Auftreten dieser Codes jeweils z.B. einen Piepser ansteuert? Kann der AVR Hexa interpretieren, um damit einen Befehl auszuführen? Oder kann man nur solche Daten für den AVR verwenden, die in irgendeiner Bibliothek zuvor abgespeichert wurden (was ich in meinem Fall bezweifle)?
Andi |
|
BID = 732826
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
|
Dein Geschreibsel ergibt wenig Sinn. Ein AVR Mikrocontroller kann erstmal garnix sondern wird für seine Aufgabe programmiert. Dem ist es egal ob das nun MIDI Daten sind oder irgendwas Anderes. Wenn du also ein passendes Programm schreibst, dann kann er auch für einen Pieps sorgen.
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
*********************************** |
|
BID = 732899
Andi-872 Aus Forum ausgetreten
|
Daaaaaaaaaanke füüüüüüüüüüüür Deiiiiiiiiine Erleuchtung.
|
BID = 732900
QuirinO Schreibmaschine
Beiträge: 2205 Wohnort: Behringersdorf
|
Stellst du gerade nur theoretische Überlegungen an oder bist du an einem speziellen Projekt dran?
Möglich ist mit dem AVR wirklich alles, die Frage ist nur ob du in der Lage bist das ganze zu programmieren. Du musst schon verstehen, dass du so eine schwammige Antwort bekommst, wenn du so eine schwammige Frage stellst. Wie weit bist du denn schon? Haste schon was ausprobiert? Hast du Erfahrungen mit MIDI und dem anderen Protokoll?
|
BID = 732903
Andi-872 Aus Forum ausgetreten
|
Hallo,
ich habe bisher immer mit "richtigen" Bauteilen gearbeitet. Manches geht aber nicht mehr damit. Bin mit MC´s absoluter Anfänger und möchte erst mal die Weichen stellen, womit ich in Zukunft überhaupt weiterarbeiten möchte. Da gibt es ja ´ne ganze Menge MC´s. Über AVR hab ich viel gutes gehört, mehr weiß ich dazu aber eben nicht. Insofern war meine Frage (für´n Anfänger!!!) keineswegs schwammig
Ich möchte eine sogenannte Rotlicht-Steuerung für ProTools bauen, die bei Aufnahme 3 sec vorher z.B. im Sekundentakt blinkt (oder auch in der Anzahl der leuchtenden LED´s abwärts zählt o.ä.) und dann rot dauerleuchtet. Vor Jahren gab es mal ein solches Teil von EES zu kaufen. EES gibt es leider nicht mehr, und dieses Gerät hatte auch einen kleinen Nachteil. Es hat zwar vorher geblinkt, aber leider nicht im Sekundentakt oder wenigstens in einem nachvollziehbaren Takt irgendeiner Art, sondern jedesmal anders (mal 3 Blinker, mal nur 2, dann wieder 3 oder 4 usw.). In der Praxis hast Du einen Synchronsprecher im Studio, der möchte gern vor der heissen Aufnahme so ´ne Art Standby bekommen. Aber eben ein Standby, was bei jedem Take dann dasselbe macht, damit der Sprecher das immer nachvollziehen kann.
Ich konnte schon herausfinden, dass die "verantwortlichen" Daten dafür SysEx-Daten sind. Konnte diese betreffenden Daten auch schon eliminieren und darstellen. Jetzt möchte ich, dass ein AVR diese Daten in meine gewünschte Sache umsetzt.
Jeder fängt mal an, ich trau mir durchaus zu, mich an MC´s zu wagen und ggf. nach einer gewissen Zeit auch so ein Programm zu starten. Wie gesagt, meine Frage steht ganz am Anfang und zielt erst mal dahin, mit WELCHEM MC ich das machen kann. AVR hat sicher noch paar Jahre Zukunft, auch deshalb würde ich gern auf diese Dinger setzen und mit denen arbeiten. Mir ist noch nicht klar, welche Daten der AVR umsetzen kann. Kann ich den mit Hexacode füttern und der lässt mein Lämpchen brennen?
Andi
An "Her Masters Voice": Bitte generell keine Antworten mehr auf meine Fragen!
|
BID = 732906
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Es gibt keine Hexacodes.
Das, was du meinst, sind zwei ASCII-Zeichen aus {0,...,9,A,...,F}, die ein Byte kodieren, und zwar zur Basis 16.
Wie bereits gesagt wurde, kann ein AVR erstmal nichts Spezielles, außer die Hardware zur Verfügung zu stellen.
Die Hauptfunktion eines µCs liegt in seinem Programm und ob dieses den Anforderungen gerecht wird (*), ist einerseits durch das Können und die Erfahrung des Programmierers, andererseits natürlich durch die Hardware eingeschränkt.
Die Nebenbedingungen hier sind unter anderem folgende:
1. auf welche Art und Weise kommen die Daten in den µC? Bei MIDI jawohl mit einer asynchronen seriellen Schnittstelle (uart), was die meisten, wenn nicht alle, AVRs hardwaremäßig verstehen.
2. Wie schnell kommen die Daten: entweder werden Frames erst eingelesen und bei einer erkannten STOP-Sequenz verarbeitet oder der Abstand zwischen zwei Bytes ist so groß, dass man die Daten "on-the-fly" verarbeiten kann. Das hängt zum einen von der Baudrate ab, zum anderen von der Taktfrequenz des Prozessors und nicht zuletzt von den Fähigkeiten des Programmierers. Für so spezielle Sachen kann man ganz tief in die Trickkiste greifen und mit ein paar Vergleichsoperationen auskommen auf Kosten der Programmgröße.
3. Wie lang sind die Datenframes?
Grundsätzlich sind das ja ASCII-Daten, also zwei Bytes kodieren in hexadezimaler Schreibweise eigentlich eine binäre, acht Bit lange Information, z.B. steht AA für 10101010, wobei ersteres zwei Bytes und letzteres nur ein Byte benötigt.
Da die Basis davon 16 ist, kann man das sauschnell umsetzen.
Was kannst du denn schon? Hast du mal in einem Assemblerdialekt programmiert? Oder überhaupt mal programmiert?
Edit:
Und mal von Basen, ASCII-Zeichen und irgendwelchen Datenwörtern abgesehen: Vergleiche auf binärer Ebene sind sowieos sauschnell (ein Systemtakt bei AVRs für ein Byte). Umwandeln braucht man die Daten ja evtl. gar nicht.
Normalerweise sollte man sich ein Flussdiagramm oder Ähnliches malen, wenn man nicht schon eine Programmvorstellung im Kopf hat. Das Flussdiagramm zeigt dabei Übergänge zwischen Zuständen des Programms sowie eventuelle Übergangsbedingungen. Das kann man dann später ganz gut in ein konkretes Programm umsetzen, auch wenn man keine oder wenig Erfahrung mit dem Programmieren hat.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 10 Dez 2010 0:14 ]
[ Diese Nachricht wurde geändert von: DonComi am 10 Dez 2010 0:19 ]
|
BID = 732909
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Kann ich den mit Hexacode füttern und der lässt mein Lämpchen brennen? |
Nein, so ein Miocrocontroller "versteht", wie (fast) jeder andere Computer auch, nur eine handvoll Maschinenbefehle, die in seinem nichtflüchtigen Speicher abgelegt wurden.
Diese Maschinenbefehle richtig zu kombinieren, sodaß daraus etwas sinnvolles entsteht, ist Sache des Programmierers.
Dem Prozessor ist es erstmal egal, ob die Daten parallele oder seriell, in Hex oder von einem Drehrädchen angeliefert werden; er versteht sie ohnehin nicht.
Erst dadurch, daß man ihm ein Programm eingeimpft hat, dass z.B. lauten könnte: "Wenn an Pin7 drei Impulse eingetroffen sind, dann zünde an Pin8 eine LED an und mache sie bei einem weiteren Impuls an Pin7 wieder aus", passiert überhaupt erst etwas.
Der Programmmierer macht sich dazu Gedanken wie z.B.: Was heißt hier überhaupt "Impuls" ?
Welche Maschinenbefehle stehen zur Verfügung um einen zu erkennen?
Mit welchen Maschinebefehlen kann ich die erkannten Impulse zählen?
usw.
Viele solcher Einzelheiten verknüft er dann zu einem Programm, das (hoffentlich) die gewünschte Wirkung hat.
|
BID = 732936
hajos118 Schreibmaschine
Beiträge: 2453 Wohnort: Untermaiselstein
|
Zitat :
Andi-872 hat am 9 Dez 2010 19:47 geschrieben :
|
2 Datenformate für Übertragungszwecke: MIDI und SysEx-Daten.
|
Dazu muss im AVR ein MIDI und SysEx Daten "Analysator" programmiert werden.
Zitat :
|
Ist es technisch möglich, via MIDI-Kabel einen AVR anzusteuern, der aus einer großen und ständigen Datenmenge von SysEx-Daten (die in Hexadezimal vorliegen) 2 spezielle SysEx-Codes, auf die er programmiert wurde, rausfiltert und bei Auftreten dieser Codes jeweils z.B. einen Piepser ansteuert? |
JA, technisch möglich aber programmtechnisch ein nicht unerheblicher Aufwand.
Zitat :
|
Kann der AVR Hexa interpretieren, um damit einen Befehl auszuführen? |
Nur durch das Programm, welches er abarbeitet.
_________________
Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Wer einen Fehler findet, darf ihn behalten!
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag heute wurden bisher 10 Beiträge verfasst © x sparkkelsputz Besucher : 182395745 Heute : 2941 Gestern : 7548 Online : 617 25.11.2024 12:54 11 Besucher in den letzten 60 Sekunden alle 5.45 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0736119747162
|