Interrupts

Hey Leute,

ich wollte mal fragen wie folgendes mit Interrupts aussehen würde:

Ich habe 2 LED´s, die eine soll mit 0.9 Sekunden umschalten und die andere mit 1.4 z.B.
Wie würde das ganze im Sourcecode aussehen? Vielleicht kann ja jemand helfen.
lg

Die Frage ist wieso Interrupts?
Soll das nur ein Blinker werden wobei die LED1 alle 0.9s wechselt und die ander alle 1.4?
Oder meinst du wirklich ein Interrupt [der beide LEDs anmacht] der über einen eingang kommt und dann nach 0.9s die LED 1 und 1.4s die LED 2 anmacht.[wieder ausmacht].
Wenn es nur um das zweite geht brauchst du keinen Interrupt das macht der µC nebenher.
Es fehlen konkerte Angaben.
Schon mal die ein bisschen probiert das selber zu programieren?
Ein paar Beistpiele durchgearbeitet. Bei "Blink without delay" wirst du fündig wie du es mit einer LED machen könntest.

Hier wird die geholfen werden aber eher im Sinne Hilfe zur selbsthilfe. Eine Bestellung aufgeben und jemand wird dir hier Code liefern eher selten.
Gruß
DerDani

volvodani:
Die Frage ist wieso Interrupts?
Soll das nur ein Blinker werden wobei die LED1 alle 0.9s wechselt und die ander alle 1.4?
Oder meinst du wirklich ein Interrupt [der beide LEDs anmacht] der über einen eingang kommt und dann nach 0.9s die LED 1 und 1.4s die LED 2 anmacht.[wieder ausmacht].
Wenn es nur um das zweite geht brauchst du keinen Interrupt das macht der µC nebenher.
Es fehlen konkerte Angaben.
Schon mal die ein bisschen probiert das selber zu programieren?
Ein paar Beistpiele durchgearbeitet. Bei "Blink without delay" wirst du fündig wie du es mit einer LED machen könntest.

Hier wird die geholfen werden aber eher im Sinne Hilfe zur selbsthilfe. Eine Bestellung aufgeben und jemand wird dir hier Code liefern eher selten.
Gruß
DerDani

Sorry für die ungenauen Angaben. Die LED´s sollten nur zum Beispiel dienen damit ich das überhaupt verstehe. Bin gerade dabei mit Arduino einen Teil eines EKG Simulators zu programmieren. Das ganze Programm sollte halt über einen Taster gestartet werden. Durch den Taster soll das ganze Quartzgenau 10 Minuten lang laufen. In der Zwischenzeit sollten über einen Schalter einmal auf einem Pin 60Hz ausgegeben werden und einmal auf einem andren Pin 120Hz. Und ohne Interrupts will es das Klinikum nicht ganz.

mfg

Und warum haben dir die Antworten hier nicht ausgereicht ?

HotSystems:
Und warum haben dir die Antworten hier nicht ausgereicht ?

Quartzgenau?

Noah9461:
Quartzgenau?

Ja und ?
Was willst du uns damit sagen ?

Das hängt doch von deiner verwendeten Hardware ab.
Hat dein Arduino einen Quarz drauf ?

HotSystems:
Ja und ?
Was willst du uns damit sagen ?

Das hängt doch von deiner verwendeten Hardware ab.
Hat dein Arduino einen Quarz drauf ?

Es ist ein ATMega328 mit 1 Quartz für den Prozessor - 16MHz

Noah9461:
Es ist ein ATMega328 mit 1 Quartz für den Prozessor - 16MHz

Eigenbau ?
Oder ist es ein Arduino (welcher Typ ?) Platine mit einem Quarz oder zwei Quarzen drauf.

Es gibt unterschiedliche....bitte genauere Infos.

HotSystems:
Eigenbau ?
Oder ist es ein Arduino (welcher Typ ?) Platine mit einem Quarz oder zwei Quarzen drauf.

Es gibt unterschiedliche....bitte genauere Infos.

Nein kein Eigenbau. Ist der Nachbau vom Arduino Nano. Der hat 2 Quarze drauf. Taktfrequenz von 16MHz

Noah9461:
Nein kein Eigenbau. Ist der Nachbau vom Arduino Nano. Der hat 2 Quarze drauf. Taktfrequenz von 16MHz

Ja, dann ist doch alles gut.
Alles was der Atmega macht, ist entsprechend der Quarzgenauigkeit des verwendeten 16 MHz Quarzes.

HotSystems:
Ja, dann ist doch alles gut.
Alles was der Atmega macht, ist entsprechend der Quarzgenauigkeit des verwendeten 16 MHz Quarzes.

Ja, und man meinte zu mir würde das mit Interrupts am besten funktionieren. Deshalb hab ich oben dieses Beispiel genannt. Ich bräuchte halt nur mal ein Beispiel wie das z.B mit dem oben genannten aussieht.

mfG

Noah9461:
Ja, und man meinte zu mir würde das mit Interrupts am besten funktionieren. Deshalb hab ich oben dieses Beispiel genannt. Ich bräuchte halt nur mal ein Beispiel wie das z.B mit dem oben genannten aussieht.

Wer meinte das ?

Was soll der Interrupt da besser machen ?

Dann soll derjenige das doch selbst zeigen.

Um die Frequenzen zu erzeugen, brauchst du keinen Interrupt, das kannst du in deinem vorherigen Thread genau nachlesen.

Einen IRQ brauchst du nur, wenn ein laufendes Programm für eine weitere Aktion unterbrochen werden soll.

Noah9461:
Nein kein Eigenbau. Ist der Nachbau vom Arduino Nano. Der hat 2 Quarze drauf. Taktfrequenz von 16MHz

Wieso 2 Quarze?
Grüße Uwe

Ohje

Am besten lerne erstmal was die Begriffe bedeuten die du benutzt.

Quarzgenau? Was ist das?

Interrupt benutzt man wenn man 1/1000sec genau arbeiten will, obwohl der Prozessor stark belastet ist. Stand Alone braucht man keine Interrupts um 1/1000 hinzubekommen. Mehr Genauigkeit bekommst du aber auch mit dem Quarz on Board nicht hin, weil der nicht stabilisiert ist.

Du hast also irgendwo irgendwas gehört, das du nicht verstehst und willst aus dem was du nicht verstehst etwas bauen, das funktioniert.

uwefed:
Wieso 2 Quarze?
Grüße Uwe

Wenn ich meinen Nano anschauen, hat der für den Atmel und den USB-Chip jeweils einen kleinen Quarz aufgelötet. Logisch, weil USB andere Frequenz braucht als der Atmel.

chefin:
Wenn ich meinen Nano anschauen, hat der für den Atmel und den USB-Chip jeweils einen kleinen Quarz aufgelötet. Logisch, weil USB andere Frequenz braucht als der Atmel.

ich möchte nicht aus dem etwas bauen, ich möchte etwas lernen. Falls ich irgendwelche Sachen falsch sage oder bei irgendwas falsch liege. Tut mir leid das ich was lernen möchte.

Noah9461:
ich möchte nicht aus dem etwas bauen, ich möchte etwas lernen. Falls ich irgendwelche Sachen falsch sage oder bei irgendwas falsch liege. Tut mir leid das ich was lernen möchte.

Dann solltest du auch grundsätzliches lernen, was dir in Post #11 und #13 geschrieben wurde.

chefin:
Wenn ich meinen Nano anschauen, hat der für den Atmel und den USB-Chip jeweils einen kleinen Quarz aufgelötet. Logisch, weil USB andere Frequenz braucht als der Atmel.

Nicht unbedingt. Ich glaube es ist einfacher 2 Quarze zu benutzen als den Takt von einem IC genereren zu lassen und an das andere zu geben.
Grüße Uwe

uwefed:
Wieso 2 Quarze?

Der andere ist wahrscheinlich der vom USB Wandler

chefin:
Wenn ich meinen Nano anschauen, hat der für den Atmel und den USB-Chip jeweils einen kleinen Quarz aufgelötet. Logisch, weil USB andere Frequenz braucht als der Atmel.

Bei den Standard Arduinos haben der normale Prozessor keinen Quarz, sondern einen Keramik-Kondensator. Es gibt aber Nachbauten mit Quarzen

Noah9461:
Ja, und man meinte zu mir würde das mit Interrupts am besten funktionieren.

Für langsame Sachen braucht man keine Interrupts. Interrupts für Dinge die sehr schnell laufen und/oder sehr regelmäßig abgearbeitet werden müssen. Vor allem wenn während der Zeit noch andere Dinge laufen die da in Quere kommen können (und damit ist nicht "Taster abfragen" gemeint).

60Hz und 120Hz sind 16,6ms 8,3ms. Das kann man natürlich mit Interrupts machen, aber bei einer Taktzeit von 62,5ns ist das massig Zeit

Von der Zeit her ist das auch was ganz anderes als eine LED für einige Sekunden blinken zu lassen. Millisekunden lassen sich in einem Timer-Interrupt machen. Sekunden eher weniger oder nur mit zusätzlichem Aufwand. Vor allem ist bei LEDs egal ob das ein paar µs falsch ist. Das ist kein wirklich gutes Beispiel um das zu simulieren. Bei sowas kann man es gleich richtig machen und das Ergebnis mit einem Oszilloskop messen

Serenifly:
Der andere ist wahrscheinlich der vom USB Wandler
Bei den Standard Arduinos haben der normale Prozessor keinen Quarz, sondern einen Keramik-Kondensator. Es gibt aber Nachbauten mit Quarzen

Für langsame Sachen braucht man keine Interrupts. Interrupts für Dinge die sehr schnell laufen und/oder sehr regelmäßig abgearbeitet werden müssen. Vor allem wenn während der Zeit noch andere Dinge laufen die da in Quere kommen können (und damit ist nicht "Taster abfragen" gemeint).

60Hz und 120Hz sind 16,6ms 8,3ms. Das kann man natürlich mit Interrupts machen, aber bei einer Taktzeit von 62,5ns ist das massig Zeit

Von der Zeit her ist das auch was ganz anderes als eine LED für einige Sekunden blinken zu lassen. Millisekunden lassen sich in einem Timer-Interrupt machen. Sekunden eher weniger oder nur mit zusätzlichem Aufwand. Vor allem ist bei LEDs egal ob das ein paar µs falsch ist. Das ist kein wirklich gutes Beispiel um das zu simulieren. Bei sowas kann man es gleich richtig machen und das Ergebnis mit einem Oszilloskop messen

Erste sinnvolle Antwort, danke. Und der zweite Quarz ist für die Schnittstellen verantwortlich.