9. Unterprogramme,Wiederholungsvorgänge optimieren

Anleitungen für "hausgemachte" LED Projekte

Moderator: T.Hoffmann

synvox
Mega-User
Mega-User
Beiträge: 147
Registriert: Fr, 27.04.07, 04:40
Wohnort: Schweiz

Mo, 04.06.07, 12:52

Hallo Andy,

ich verstehe nicht so ganz, wieso du die Frequenz abfragen willst, wenn du ja schon mit diversen Filtern dein Signal aufgeteilt hast. Im Prinzip reicht es ja dann, wenn du die Intensitäten der versch. Frequenzbänder überwachst an verschiedenen Eingängen des Analog-Digital-Wandlers und z.Bsp. bei Überschreiten vorgegebener (deine gespeicherten Zustände) Pegel von bestimmten Frequenzbändern dann irgendeinen Effekt auslöst. Ansonsten (solange also die Werter darunter bleiben) wertest du einfach die Pegelwerte vom z.Bsp. Basskanal (oder du könntest für diesen Zweck einem Analogeingang einfach die ungefilterte Summe einspeisen) direkt in Led-Zeilen-Ansteuerung aus, oder wie auch immer du die Pegelanzeige haben willst. Ich denke, das sollte dem entsprechen, was du haben willst, wenn ich's richtig verstanden habe. Du könntest also mit einem ATMEGA8 maximal 6 verschiedene Frequenzband-Pegel (oder 5 Frequenzband-Pegel und 1 Pegel des ungefilterten Signals) verarbeiten. Wichtig dabei ist, dass du eigentlich wirklich nur die Pegel der versch. Frequenzbänder misst, denn jedes Frequenzband ist immer noch ein Frequenzgemisch und keine einzelne Sinuswelle. Würdest du die Frequenzbänder noch nach den tatsächlichen Verhältnissen der darin vorhandenen Sinusschwingungen analysieren wollen (Frequenzanalyse), müsstest du praktisch eine Realzeit-Fourrier-Analyse durchführen, was die Möglichkeiten eines AVR meilenweit übersteigen würde. Deshalb verstehe ich deine "Abfrage auf Frequenz" (wie du es nennst) nicht so ganz. Es reicht wirklich vollkommen aus, wenn du die versch. gefilterten Signale am Besten noch mit einer Glättung bzw. einem Integrator-Glied dahinter (damit du wirklich gut auswertbare Pegeländerungen hast) den jeweiligen Analogeingängen des ATMEGA8 zuführst.

Aber jetzt sind wir wohl wirklich etwas weit OT in diesem Thread, das ist ja Pehus Tutorial :oops: . Vielleicht solltest du für dieses Thema einen eigenen Thread eröffnen?

Gruss
Neni
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mo, 04.06.07, 15:06

Genau so, wie du es am Anfang vermutet hast, sollte es funktionieren.
Ich wußte nur nicht genau, wie ich das so verständlich erklären sollte. :wink:
Im Prinzip reicht es ja dann, wenn du die Intensitäten der versch. Frequenzbänder überwachst an verschiedenen Eingängen des Analog-Digital-Wandlers und z.Bsp. bei Überschreiten vorgegebener (deine gespeicherten Zustände) Pegel von bestimmten Frequenzbändern dann irgendeinen Effekt auslöst. Ansonsten (solange also die Werter darunter bleiben) wertest du einfach die Pegelwerte vom z.Bsp. Basskanal (oder du könntest für diesen Zweck einem Analogeingang einfach die ungefilterte Summe einspeisen) direkt in Led-Zeilen-Ansteuerung aus, oder wie auch immer du die Pegelanzeige haben willst. Ich denke, das sollte dem entsprechen, was du haben willst, wenn ich's richtig verstanden habe. Du könntest also mit einem ATMEGA8 maximal 6 verschiedene Frequenzband-Pegel (oder 5 Frequenzband-Pegel und 1 Pegel des ungefilterten Signals) verarbeiten. Wichtig dabei ist, dass du eigentlich wirklich nur die Pegel der versch. Frequenzbänder misst, denn jedes Frequenzband ist immer noch ein Frequenzgemisch und keine einzelne Sinuswelle.
synvox
Mega-User
Mega-User
Beiträge: 147
Registriert: Fr, 27.04.07, 04:40
Wohnort: Schweiz

Mo, 04.06.07, 15:31

ah ok, dann kann ich dir vielleicht mal die Initialisierung und Start des AD-Wandlers und der benötigten Variablen plus die Interruptroutine vorcoden :wink: . Den Rest solltest du ja dann selbst erweitern können :wink: . Ich muss aber noch schauen, wann ich dafür Zeit habe. Vielleicht kann ich's erst Ende dieser oder Anfang nächster Woche posten.

Gruss
Neni
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mo, 04.06.07, 17:37

Das wäre wirklich FEINI muß ja nicht unbedingt Heute sein....
wenn du Zeit hast.
Damit wäre mir dann schon ungemein weitergeholfen.
Danke dir.
Kunibert93
Mega-User
Mega-User
Beiträge: 270
Registriert: Do, 26.03.09, 13:26
Wohnort: Niedersachsen

Mi, 30.12.09, 01:02

Ich habe nocheinmal ein Frage,auch wenns nicht umbedingt zum Thema passt, und zwar möchte ich an einem ATTinny 2313 einen Taster + Kippschalter anschließen. Der Kippschalter soll einfach nur 2 Modi ermöglichen. Das bekomme ich wohl noch selber mit einer IF Funkion hin.
Wenn der Taster betägtig wird sollen 1 aus 6 Ports zufällig gewählt werden. Wie bekommt man das so hin??

Edit: (das untere habe ich mittlerweile hinbekommen, das obere nicht.
Wo ich schon mal dabei bin,
Ein ganz einfacher Wechselblinker fürs Pollinboard und einen Atmega 8, nur leider will er nicht funkionieren. Es blinkt nur LED1
Ports sind
LED 1 Pin 11 - PD5 (T1)
LED 2 Pin 12 - PD6 (AIN0)

Code: Alles auswählen

$regfile = "m8def.dat"                                      'definieren des verwendeten Chips

$crystal = 1000000


Dim W As Word

Ddrd = &B00100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Reset Portd.5                                               'Anfang=Aus
Reset Portd.6

Do                                                          'Anfang der Schleife
      Set Portd.5
      W = 10                                                ' Led 1 an
      Waitms W

      Reset Portd.5                                         ' Led 1 aus
      W = 50
      Waitms W

      Set Portd.6
      W = 10                                                ' Led 2 an
      Waitms W                                              ' Warten bis An-Zeit vorbei ist

      Reset Portd.6                                         ' Led 2 aus
      W = 50
      Waitms W
Loop                                                        'zum Anfang der Schleife
Antworten