- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 7 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 65

Thema: Propeller-Clock aber eigentlich Drehlicht und die Timer ?

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Halllo

    Habe jetzt probiert... aber ganz so wie ich mir das gedacht hatte, läuft es leider nicht. (regelt nicht so recht)

    Irgendwie bräuchte ich da zwei 16-Bit Timer...

    Hier mal der Code zum begutachten

    Code:
    '--------Drehlicht-----V1.07---------------
     ' 8MHz RC Intern
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 200
    $swstack = 200
    $framesize = 200
    
    
    '---Config Port's -----------------
    Config Portb = Output
    Portb = 255
    
    Config Portd = Input
    Portd = 255
    
    '---config Int0------
    Config Int0 = Falling
    Enable Int0
    On Int0 Kontakt
    
    '--- Config Timer1 ----
    Config Timer1 = Timer , Prescale = 1024
    Enable Timer1
    
    '--- Config Timer0 ------
    Config Timer0 = Timer , Prescale = 1
    Enable Timer0
    
    
    
    Enable Interrupts
    Load Timer0 , 255
    
    
    Dim Drehzeit As Word
    Dim Spaltenzeit As Byte
    Dim Auftrag As Word
    
    Auftrag = 0
    
     '--------------------Hauptprogramm--------------------------
    
    Do
    
    Loop
    
    End
    
    
    
    
    '==============================Unterprogramme===================================
    '--------------ISR von Int0--------------------
    Kontakt:
    Drehzeit = Timer1
    Timer1 = 0
    Spaltenzeit = Drehzeit / 360
    
    Auftrag = 0
    Return
    
    
    '------------ISR von Timer0 --------------------
    Spalten:
    Load Timer0 , Spaltenzeit
    
    If Auftrag < 50 Then
       Toggle Portb
       Incr Auftrag
     End If
    
    Return
    Was meint ihr dazu ?

    Drehzahl ist 1000 U/min
    Quarz = 8MHz

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Habs jetzt ein bisschengeändert.
    Code:
    '--------Drehlicht-----V1.07---------------
     ' 8MHz RC Intern
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 200
    $swstack = 200
    $framesize = 200
    
    
    '---Config Port's -----------------
    Config Portb = Output
    Portb = 255
    
    Config Portd = Input
    Portd = 255
    
    '---config Int0------
    Config Int0 = Falling
    Enable Int0
    On Int0 Kontakt
    
    '--- Config Timer1 ----
    Config Timer1 = Timer , Prescale = 1024
    Enable Timer1
    
    '--- Config Timer0 ------
    Config Timer0 = Timer , Prescale = 8
    Enable Timer0
    On Timer0 Spalten
    
    
    Enable Interrupts
    Load Timer0 , 255
    
    
    Dim Drehzeit As Word
    Dim Spaltenzeit As Byte
    Dim Auftrag As Word
    
    Auftrag = 0
    
     '--------------------Hauptprogramm--------------------------
    
    Do
    
    Loop
    
    End
    
    
    
    
    '==============================Unterprogramme===================================
    '--------------ISR von Int0--------------------
    Kontakt:
    Drehzeit = Timer1
    Timer1 = 0
    Spaltenzeit = Drehzeit / 2
    
    Auftrag = 0
    Return
    
    
    '------------ISR von Timer0 --------------------
    Spalten:
    Load Timer0 , Spaltenzeit
    
    If Auftrag < 100 Then
       Toggle Portb
       Incr Auftrag
     End If
    
    Return
    Der Simulator wollte kein Byte bei der Variabel : Spaltenzeit.
    Bei AVR macht das aber nix aus. (Darum wieder auf Byte geändert)

    Haltet jetzt so ungefähr die Lage. Aber nicht schön
    Wenn man den Motor in der Drehzahl verändert, merkt man genau wo er auf oder Abrundet .....

    Ein zweiter 16bit Timer wäre da wohl viel genauer

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Nimm doch einfach nen M64 oder größer dann haste was de suchst.
    Gruß
    Ratber

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Wie war es den bei dir ? (die Schrift)
    Welcher AVR ?
    Wie war dein Programm ? (Prinzip)

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Schrifft:

    Was meinste ?
    Der Propeller war umlaufend also genaugenomen eine "Rotor-Clock"
    Die Schrifft war relativ Stabil.
    Keine Spielereien.
    Bevor ich weitergewkommen bin lag das Teil am Boden.

    Controller:

    Ich hatte nen M128 drauf (Etwas Oversized.Lag gerade so rum)


    Programmprinzip:

    Eigentlich wie alle anderen.
    Die Anzeige wird per Sync (Hallsensor) getriggert,die Drehzahl lag stabil bei 600upm.

    Allerdings hatte ich an einer Datenübertragung gearbeitet um den Text per Serieller Schnittstelle immer passend ändern zu können.

    Is aus obigem Grund ebenfalls nur im Rohbau gewesen.
    Gruß
    Ratber

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    hallo roberto!
    ich hab mir jetzt auch so ein teil gebastelt nach langem herumprobieren mit den timern ohne erfolg, hab ich mal dein prog geladen... wenn ich die richtige drehzahl mal gefunden habe, habe ich etwa auf dem halben durchmesser schöne punkte nacheinander aber sie springen ca 3mm hin und her... sobald die drehzahl zu gering wird hab ich nur noch striche ringsum...
    aber das müste man doch noch verbessern können...

    gruss bluesmash

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo

    Ich verstehe das auch nicht ganz....
    Aber irgendwie habe ich mich jetzt da festgefressen

    Vielleicht weis da jemand mehr ??

    Also:
    minimale Umdrehungen sind 500 U/min = 8,3 U/sek
    Mittelere Umdrehungen sind 1000 U/min = 16,6 U/sek
    Höchste Umdrehungen sind 1500 U/min = 25 U/sek.

    Zwischen min und Max sollte es zumindest reglen!

    Wenn ich jetzt für den Timer1 einen Prescaler mit 8 nehme, wären das für 1000 U/min, 60240,96 Takte pro Umdrehung und pro sek.

    Jetzt teile ich die Takte pro Umdrehung durch 510, damit ich im Berreich vom Timer0 bleibe (1-256)

    Also bei 1000 U/min, wäre dann ein Strich: 118,11 Takte vom Timer0

    Wenn ich aber unter der ISR vom Timer0 einen Wert von 100 eintrage.
    Also zeichne 100 Striche, dann füllt das schon fast den ganzen Kreis.

    Eigentlich müsste ich ja 510 Striche Auftragen können ?!

    Hier nochmal der aktuelle Code:
    Code:
    '--------Drehlicht-----V1.08---------------
     ' 8MHz RC Intern
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 200
    $swstack = 200
    $framesize = 200
    
    
    '---Config Port's -----------------
    Config Portb = Output                                       'Leds
    Portb = 255
    
    Config Portd = Input
    Portd = 255
    
    '---config Int0------
    Config Int0 = Falling
    Enable Int0
    On Int0 Kontakt
    
    '--- Config Timer1 ----
    Config Timer1 = Timer , Prescale = 8
    Enable Timer1
    
    '--- Config Timer0 ------
    Config Timer0 = Timer , Prescale = 8
    Enable Timer0
    On Timer0 Spalten
    
    
    Enable Interrupts
    Load Timer0 , 255
    
    
    Dim Drehzeit As Single
    Dim Spaltenzeit As Word
    Dim Auftrag As Single
    
    Auftrag = 0
    Timer1 = 0
     '--------------------Hauptprogramm--------------------------
    
    Do
    
    Loop
    
    End
    
    
    
    
    '==============================Unterprogramme===================================
    '--------------ISR von Int0--------------------
    Kontakt:
    Drehzeit = Timer1
    Timer1 = 0
    Spaltenzeit = Drehzeit / 510
    
    Auftrag = 0
    Return
    
    
    '------------ISR von Timer0 --------------------
    Spalten:
    Load Timer0 , Spaltenzeit
    
    If Auftrag < 100 Then
       Toggle Portb
       Incr Auftrag
     End If
    
    Return
    Vielleicht kan sich jemand dieser Denkaufgabe stellen

    @Bluemash
    Für dich habe ich noch den alten Code.
    Ganze einfach! Startet einfach ab Kontakt vom Schalter und schreibt dann den Namen Andre in die Luft (Mein Junior )
    Geht für das eigentlich recht gut.
    Mich störte nur, dass die Weite von der Drehzahl abhängt.

    Code:
     '--------Drehlicht-----V1.04---------------
     ' 8MHz RC Intern
     '
     '
     '  schreibt ANDRE   !!!!!!
    
    
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    
    '---Config Port's -----------------
    Config Portb = Output
    Portb = 255
    
    
    Config Portd = Input
    Portd = 255
    
    
    
    
    Dim A As Byte
    Dim B As Byte
    Dim B1 As Byte
    A = 1
    
    
    '--------------------Hauptprogramm--------------------------
    
    
    
    Do
    
    If Pind.2 = 0 Then
    Waitms 5
    
    Restore Xxx
       '7*Zeichen lesen
           For A = 1 To 7
                '8*Spalten pro Zeichen lesen
                    For B = 1 To 8
                    Read B1
                    B1 = 255 - B1
                    Portb = B1
                    Waitus 20
                    Next B
            Portb = 255                                         'Für Abstand zwischen den Zeichen
            Waitus 200
           Next A
    
    End If
    
    
    Portb = 255
    
    
    
     Loop
    
    End
    
    
    
    
         'Red Message
    Xxx:
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen
    Data 31 , 36 , 68 , 132 , 132 , 68 , 36 , 31                'A
    Data 255 , 64 , 32 , 16 , 8 , 4 , 2 , 255                   'N
    Data 255 , 129 , 129 , 129 , 129 , 129 , 66 , 60            'D
    Data 255 , 136 , 136 , 136 , 136 , 140 , 82 , 33            'R
    Data 255 , 137 , 137 , 137 , 137 , 137 , 129 , 129          'E
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0                          'Leerzeichen

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    danke! ich werde es heute abend mal ausprobieren per zufall stimmen alle ein und ausgänge bei mir überein aber als erstes muss ich mal die drehzahl erfassen hast du da eine gute idee? ich dachte ich lass ihn drehen und immer so nach 10 umdrehungen lass ich eine led mehr leuchten, zeit messen, led's zählen --> drehzahl... und dann mach ich mich mal an die timer, mal schauen ob man es noch genauer hinkriegt... das problem ist wahrscheinlich schon dass der mega8 nicht 2 16bit timer hat...
    das mit der tabelle für die einzelnen buchstaben finde ich eine super idee! ich hätte es wahrscheinlich viel umständlicher gemacht...

    gruss bluesmash

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Bluesmash

    Das mit den Buchstaben habe ich mir irgendwo abgeschaut.
    Ich glaube auf der home von MCS...


    Derzeit stutiere ich gerade, wie ich einen String in die Spalten auftragen kann ????????????????????

    Habe noch keinen so richtigen Ansatz dafür

    Irgendwie in die Richtung, dass ich ein Array habe für alle Spalten...

    Wenn ich einen String habe, müsste ich da zuerst dann die Zeichen analysieren, aus meinem Zeichensatz dann ein gleiches Zeichen suchen und die entsprechenden Werte dann ins Array schreiben...
    Der Timmer läuft das Array durch.


    Habe aber keine Ahnung ob der Lösungsansatz passt und wie ich das im Bascom umsetze ????

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    42
    Beiträge
    982
    ja darüber habe ich auch schon nachgedacht, aber ich habe auch noch nicht die perfekte idee, ausser mit if..then verknüpfungen für jeden buchstaben und ein array für jedes zeichen das dargestellt werden soll, und danach beim abspielen werden eifach die arrays durchlaufen...

Seite 2 von 7 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen