- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 5 von 10 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 92

Thema: Howto Frequenzzähler

  1. #41
    Gast
    Anzeige

    Powerstation Test
    Hi Werner,
    willst du ihn jetzt aufs Glatteis führen ?

    müsste es in deinem Code nicht heissen:

    enable interruptS

    und fehlt nicht:

    enable timer0
    enable timer1

    und evtl:

    start timer0
    start timer1

    ??

  2. #42
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    @werner_just
    Wozu ICH nicht bereit bin, und das Thema hatten wir hier schonmal, ist Deine Arbeit zu machen. Ich erkläre Dir gerne wie man mit Interrupts umgeht, ich schaue auch gerne mal über Deinen Code und gebe meinen Senf dazu was man imo besser oder anders machen könnte. Aber Programmieren musst Du Dein Programm schon selbst.
    OK ich sehs ja aber deine letzten "Hilfen" brachten mich nicht weiter ( trotzdem Danke )
    Ich zitiere:
    Suche in der BASCOM-Hilfe
    Sei doch mal ehrlich, ist das nicht was man als erstes macht???
    Stop Timer 0
    Timer0 = 218
    Start Timer0
    Start Timer1
    Do
    Loop Until Interrupt_Zähl_Variable = 39
    Stop Timer1
    Stop Timer0
    Diese Info brachte mir genau so viel, hatte glaube vorher erwähnt, das ich mich mit dem Timer/Counter NICHT auskenne.
    Da war der Timer Lehrgang mit dem alleserklährenden Code doch die besste Antwort ( langsam geht mit ein auf )
    Vielleicht lag es auch an meiner Fragestelung, das anfangs nix rauskamm . Aber jetzt hab ichs geblickt (das mit dem auslesen /zusammen Spiel)
    Werde mich mal ans Programmieren machen ( Wochenende ), währst du dann vielleicht bereit mein Code zu korrigieren? Die Arbeit hatte ja dan ich.
    Ach eine Frage, geht es ,dass ich das Ergebnis anzeige ( Multiplex[Code siehe Seite 1{Geb ruhig deinen Senf dazu}]) und GLEICHZEITIG Messe, denn so wie ich euch verstanden hab hat ja der Timer nix mim Programm zu tun ( Außer Auslese ).
    Gruß teslanikola

  3. #43
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Gast,
    sorry Teslanikola,

    > willst du ihn jetzt aufs Glatteis führen ?
    war nicht meine Absicht aber Du hast natürlich recht.

    >enable interruptS
    >enable timer0
    >enable timer1

    sowas passiert wenn man abends nur noch mal eben seine privaten emails abrufen will und dann doch noch ins Forum guckt. War zu dem Zeitpunkt schon 17h auf den Beinen. Soll man nicht machen sowas!

    >und evtl:
    >start timer0
    >start timer1

    Timer brauchen nicht explizit gestartet zu werden. Sie starten nach der initialisierung automatisch. "start timer" wird nur benötigt wenn er vorher mit "stop timer" explizit angehalten wurde. Es stört aber auch nicht wenn "start timer" drin steht.

    Ciao,
    Werner

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Halo Teslanikola,

    > OK ich sehs ja aber deine letzten "Hilfen" brachten mich nicht weiter
    > ( trotzdem Danke )
    hm, ein kleiner Hinweis wo Du nicht durchblickst?

    [Beispiel "vorsetzen des Timers"]
    Diese Info brachte mir genau so viel, hatte glaube vorher erwähnt, das ich mich mit dem Timer/Counter NICHT auskenne.
    Es ging nur darum wie man die 0,1469 der benötigten 38,1469 Timer-Überläufe realisiert. (Für 1s Torzeit bei 8bit Timer, 10MHz Takt und Prescale = 1024)

    Da war der Timer Lehrgang mit dem alleserklährenden Code doch die besste Antwort ( langsam geht mit ein auf )
    Welchen meinst Du?

    > währst du dann vielleicht bereit mein Code zu korrigieren?
    Das hab ich Dir ja angeboten. Andere gucken hoffentlich auch drüber, sonst passiert wieder sowas wie beim Beispiel gestern abend . Sorry falls Du viel Zeit damit vertrödelt hast.

    Ach eine Frage, geht es ,dass ich das Ergebnis anzeige ( Multiplex[Code siehe Seite 1{Geb ruhig deinen Senf dazu}]) und GLEICHZEITIG Messe, denn so wie ich euch verstanden hab hat ja der Timer nix mim Programm zu tun ( Außer Auslese ).
    Stimmt, die Timer laufen völlig unabhängig vom Programm. Nur die Interrupts und das Auslesen verbrauchen etwas Programmzeit.

    Du kannst daher Messen und gleichzeitig Ausgeben. (Wobei man bei einem Frequenzzähler nicht unbedingt merken würde wenn er das nacheinender macht) Ist auf jeden Fall eine schöne Programmieraufgabe.

    Ciao,
    Werner

  5. #45
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    Hallo Werner, haste mein Multiplexcode mal angesehen?

    Ist auf jeden Fall eine schöne Programmieraufgabe.
    Das glaub ich dir auf Wort

    Da war der Timer Lehrgang mit dem alleserklährenden Code doch die besste Antwort ( langsam geht mit ein auf )
    Welchen meinst Du?
    Den Mein ich:
    Also z.B.


    Code:
    $regfile = "M8def.dat" 
    Dim Var1 as Byte 
    Dim Var2 as Byte 
    
    On Timer0 Test1 
    On Timer1 Test2 
    Enable Interrupt 
    
    Config Timer0 = Timer, Prescale = 1 
    Config Timer1 = Timer, Prescale = 1 
    
    Do 
    loop 
    
    
    Test1: 
    incr Var1 
    Return 
    
    Test2: 
    incr Var2 
    Return
    Gruß teslanikola

  6. #46
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Teslanikola,

    haste mein Multiplexcode mal angesehen?
    Ich hab zwar mal über den Multiplex-Thread geguckt, aber Deinen Code hab ich nicht gefunden. Vielleicht war ich aber auch einfach nur blind.

    Dim Var1 as Byte
    Dim Var2 as Byte
    [...]
    Der Code hat Dir also weitergeholfen... grübel.

    Prima, dann lasse ich in Zukunft immer ein paar wesentliche Sachen weg und dann passt das schon
    Spaß beiseite, freut mich daß Du trotz meiner Fehler damit etwas anfangen konntest.

    Ciao,
    Werner

  7. #47
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    hallo werner,
    Code:
    $regfile = "2313def.dat" 
    $crystal = 10000000 
    Config Portb = Output 
    Config Portd = Output 
    Dim A As Byte 
    Dim S As String * 5 
    Dim X As Byte 
    Dim Pos As Byte 
    Dim Z As String * 1 
    Dim L As Byte 
    
    Do 
    
        S = Str(w) 
        L = Len(s) 
    
    For A = 0 To 10 
    For X = 1 To L 
    
          S = Str(w) 
          Pos = L - X 
          Pos = Pos + 1 
          Z = Mid(s , Pos , 1) 
    
        If Z = "0" Then Portb = 63 
        If Z = "1" Then Portb = 34 
        If Z = "2" Then Portb = 94 
        If Z = "3" Then Portb = 118 
        If Z = "4" Then Portb = 99 
        If Z = "5" Then Portb = 117 
        If Z = "6" Then Portb = 125 
        If Z = "7" Then Portb = 38 
        If Z = "8" Then Portb = 127 
        If Z = "9" Then Portb = 119 
    
        If X = 1 Then Portd = 1 
        If X = 2 Then Portd = 2 
        If X = 3 Then Portd = 4 
        If X = 4 Then Portd = 8 
        If X = 5 Then Portd = 16 
    
        If L = 1 Then Waitus 9996 
        If L = 2 Then Waitus 4996 
        If L = 3 Then Waitus 3327 
        If L = 4 Then Waitus 2496 
        If L = 5 Then Waitus 1996 
    
    Next X 
    Next A 
    
    Loop
    Denn Code mein ich.
    Grüßle

  8. #48
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470

    Compiling file...no erros found

    Hallo Werner,
    endlich ist es so weit der Code ist fertig \/ \/ \/
    Hier der Code ( hoffe du bist zufrieden ):
    Code:
    $regfile = "2313def.dat"
    Dim Var1 As Byte
    Dim Var2 As Byte
    Dim Freq As Integer
    Dim Tim As Long
    
    Config Timer0 = Timer , Prescale = 1024
    Config Timer1 = Counter , Edge = Rising
    Config Pinb.5 = Input
    
    Portb.5 = 0
    
    On Timer0 Test1
    On Timer1 Test2
    
    Enable Interrupts
    
    Mess:
    
    Timer0 = 550
    Timer1 = 0
    
    
    Start Timer0
    Start Timer1
    
    Do
    ' Hier Zeige ich Tim an
    loop
    
    
    Test1:
    
    Incr Var1
    
    If Var1 = 9 Then
    
      Freq = Timer1
    
      Tim = Var2 * 1024
      Freq = Tim + Freq
    
      Var1 = 0
      Var2 = 0
    
      Stop Timer0
      Stop Timer1
    
      Goto Mess
      End If
    
    
    
    Return
    
    
    Test2:
    
    Incr Var2
    
    Return
    Bitte kontollieren!
    Gruß teslanikola

  9. #49
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124

    Re: Compiling file...no erros found

    Hallo Teslanikola,

    endlich ist es so weit der Code ist fertig \/ \/ \/
    Hier der Code ( hoffe du bist zufrieden ):
    äh....

    > Bitte kontollieren!

    wird heute und morgen nichts mehr werden. So 'nen Lappsus wie gestern möchte ich möglichst vermeiden und morgen bin ich auf Messfahrt.

    Aber 10 Minuten hab ich

    > Timer0 = 550
    - Interessant das der Compiler nicht mosert wenn einer 8 bit Register ein Wert > 255 zugewiesen wird.

    - Dann schau Dir den Post von "Gast" nochmal an. Stichwort "Lappsus"

    - Wie kommst Du auf den Wert 9 in "If Var1 = 9 Then"

    - Wie wo was ist Tim?

    - unabhängig davon, Tim ist long, Freq ist integer
    "Freq = Tim + Freq" passt irgendwie nicht so richtig.
    [0...+-2^15] = [0...2^32] + [0...+-2^15]

    Ciao,
    Werner

    P.S. Wie der BASCOM-Simulator funktioniert weißt Du?

  10. #50
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    36
    Beiträge
    470
    Timer0 = 550
    - Interessant das der Compiler nicht mosert wenn einer 8 bit Register ein Wert > 255 zugewiesen wird.
    ach sch*** das erklärt auch die var1 = 9 then ...
    muss eigentlich so heisen

    If var1 = 38 then ... ( anzahl der überläufe zur Sek)

    Tim ist : counter ( timer1) und die anzahl der "Überläufe"*255
    also gesammtcounts
    Muss ich gleich mal verbessern
    Gruß
    Ps des mit den Simulieren kann ich nur teils

Seite 5 von 10 ErsteErste ... 34567 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen