- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: 4 Led´s unabhängig per Zufall blinken lassen?

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Anzeige

    LiFePo4 Akku selber bauen - Video
    das finde ich jetzt aber EXTREM interessant, da wir uns beim ausführen des rnd() IN einer ISR befinden dürften die Interrupts doch gar nicht eingeschalten sein oder? ! ? !

    Oder steh ich aufm Schlauch ? !

    Bye the Way, dein Enable Interrupt nach dem Rnd() hätte fatale Auswirkungen innerhalb der ISR!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Eine Möglichkeit echte Zufallszahlen aus (Rauschen) zu erzeugen sind "offene" ADC Eingänge, kleine verschieden lange "Antennen" müsste man testen. Die dabei autretende Werte dann einfach auf eine Einschaltdauer "Rechnen" und auf die LED's verteilen?

    Gruß Richard

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    @Radbruch, Ceos: Das ist echt interessant. Ich weiss aber grad nicht was ich dazu sagen soll.

    @Richard: Das hört sich gut an. Der Atmel in meiner Anwendung, kriegt ne Menge EM-Strahlung ab. Er liegt in der nähe eines 2,4Ghz RC-Empfängers (inkl. Rückkanal) und eines 50A Brushlessreglers.

    Sollte ich die "Antenne" dann so lang machen, wie eine 2,4Ghz Antenne sein sollte? Das wäre ja nicht besonders lang und würde die Platzverhältnisse nicht zu arg in Anspruch nehmen.

    Danke
    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  4. #14
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Warum das mit rnd() mit den Interrupts zusammenhängt kann ich auch nicht sagen. ich habe das auch nur mit meinem Testprogramm in der Hauptschleife geprüft, nicht im Interrupt. Aber das erzeugte Blinken der LEDs scheint mir in Ordnung zu sein.

    "Echte", besser vielleicht "den Ansprüchen genügende" Zufallszahlen zu erzeugen ist ein altes Problem:
    https://www.roboternetz.de/community...earchid=200513
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Dein Link funktioniert leider so nicht. Was für suchbegriffe hast du eingegeben?

    Nochmal kurz zu meinem Programm...
    Ich habe es jetzt erstmal ohne Zufallszahl und mit nur einer Led gemacht.
    Code:
    Timer_irq:
    Timer0 = Timervorgabe
    
    If Mg1time = 0 Then
       If Mg1flag = 1 Then
          Mg1time = 10                                          ' Anzeit
          Mg1 = 1
          Mg1flag = 0
       Else
          Mg1time = 5100                                        ' Auszeit
          Mg1 = 0
          Mg1flag = 1
       End If
    End If
    
    Decr Mg1time
    Return
    Die Zeiten habe ich ich bewusst so weit auseinander gelegt um zu prüfen ob das ordentlich funktioniert. Leider scheint die "Anzeit" genauso lang wie die "Auszeit" zu sein. Die Zeit in der die LED an bzw aus ist, entspricht auch nicht 5,1 Sekunden sondern ehr 1 Sekunde an 1 Sekunde aus. Das sollte aber doch eigentlich so sein!? Denn ich springe jede ms in die IRQ und zähle einen runter. Dann müsste ich doch auf 5100 ms kommen!?

    Danke
    Gruß Daniel
    Geändert von DanielSan (20.07.2011 um 12:44 Uhr)
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  6. #16
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    "zufallszahl bascom"

    :)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von DanielSan Beitrag anzeigen
    @Richard: Das hört sich gut an. Der Atmel in meiner Anwendung, kriegt ne Menge EM-Strahlung ab. Er liegt in der nähe eines 2,4Ghz RC-Empfängers (inkl. Rückkanal) und eines 50A Brushlessreglers.

    Sollte ich die "Antenne" dann so lang machen, wie eine 2,4Ghz Antenne sein sollte? Das wäre ja nicht besonders lang und würde die Platzverhältnisse nicht zu arg in Anspruch nehmen.
    Wie lang kann ich auch nicht sagen, ganz ohne b,.z.w. Irgend ein Ganzzahliger (Anteil) der zu Filternden Wellenlänge würde sich aber anbieten. Auch verschiedene Längen Pro Kanal, Auch interessant könnte ein Serien Schwingkreis LC sein, wobei der ADC dann zwischen L und C abgegriffen wird. Damit, bei richtiger Berechnung, kann auf bestimmte "Sender" gefiltert werden. Ob ich die Formel für die Resonanz Frequenz nuch zusammen bekomme? (1/2* Pi * √ (L*C)) "oder ähnlich".

    Gruß Richard

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Das komische an meinem Programm, ist das es im Simulator sauber durchläuft. Die Zeiten stimmen die Led blinkt wie sie soll etc.
    Warum klappt es dann nicht wenn ich das Programm in den Atmega48 schreibe?

    Jtag ist aus und die Clock steht auf 8Mhz so wie im Code angegeben...

    Danke
    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  9. #19
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Bei mir funktioniert das wie erwartet:
    Code:
    $regfile = "m8def.dat"                                      'Setup asuro
    $crystal = 8000000
    
    Config Timer0 = Timer , Prescale = 64
    
    Config Pind.2 = Output
    Config Pind.3 = Output
    Config Pind.4 = Output
    Config Pind.5 = Output
    
    Mg1 Alias Portd.2
    Mg2 Alias Portd.3
    Mg3 Alias Portd.4
    Mg4 Alias Portd.5
    
    Dim Mg1flag As Byte
    Dim Mg2flag As Byte
    Dim Mg3flag As Byte
    Dim Mg4flag As Byte
    Dim Mg1time As Integer
    Dim Mg2time As Integer
    Dim Mg3time As Integer
    Dim Mg4time As Integer
    Dim I As Integer
    
    Const Timervorgabe = 131
    On Timer0 Timer_irq
    Enable Timer0
    Enable Interrupts
    
    Mg1flag = 0
    Mg2flag = 0
    Mg3flag = 0
    Mg4flag = 0
    Mg1time = 0
    Mg2time = 0
    Mg3time = 0
    Mg4time = 0
    
    Dim Led2 As Byte
    Led2 = 0
    Mg1 = 1                                                     'LEDs aus
    Mg2 = 1
    Mg3 = 1
    Mg4 = 1
    
    Do
    
    Loop
    End
    
    Timer_irq:
    Timer0 = Timervorgabe
    
    If Mg1time = 0 Then
       If Mg1flag = 1 Then
          Mg1time = 250                                         ' Anzeit
          Mg1 = 1
          Mg1flag = 0
       Else
          Mg1time = 250                                         ' Auszeit
          Mg1 = 0
          Mg1flag = 1
       End If
    End If
    Decr Mg1time
    
    If Led2 > 0 Then
       Decr Led2
    Else
       Toggle Portd.3
       If Pind.3 = 0 Then
          Led2 = 249                                            ' Anzeit-1!
       Else
          Led2 = 249                                            ' Auszeit-1
       End If
    End If
    Return
    Geändert von radbruch (20.07.2011 um 13:24 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Oh man alles klar DANKE!
    Es lag an:
    Code:
    Mg1 Alias Pinb.1
    Das muss natürlich:
    Code:
    Mg1 Alias Portb.1
    heissen. Das müsste doch der Compiler eigentlich merken oder?

    Danke
    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Led blinken lassen mit Timer0
    Von sky2 im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 25.12.2009, 18:33
  2. LED blinken lassen während Programm normal weiterläuft
    Von Steffen08 im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 30.03.2009, 21:10
  3. LED im 1 oder 2 sek. Takt per Interrupt blinken lassen
    Von rogerberglen im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 17.04.2007, 19:51
  4. Led's unabhängig voneinander blinken lassen
    Von Thorsten75 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 20.03.2007, 12:41
  5. LED´s per Zufall leuchten lassen
    Von Hoomer im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 05.02.2006, 14:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests