- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Hilfe zum DZM

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Anzeige

    E-Bike
    Hallo hardstyleroxx,

    > Gut, dann kann ich das vergessen
    Armer schwarzer Kater ?

    > Ich glaube kaum das jemand von euch so lieb ist und den Code umschreibt oder?
    Zumindest in meinem Fall könntest Du recht haben.

    > Ich verstehe da nämlich sogut wie gar nichts von und bin erst am anfang was Ucs angeht.
    Aber Du hast eine gute Basis um anzufangen.
    - Du hast eine Projekt, das von der Größenordnung her ideal als Anfangsprojekt ist.
    - Du hast eine Lösung, vor der Du weist, sie funktioniert.
    - Du musst sie nur Deinen Anforderungen anpassen.
    - Du weist wo Du fragen kannst, wenn Du nicht mehr weiter kommst.

    Also wo ist Dein Problem? Selber lernen ist schei***?

    Nimm den Code den Du hast, schnapp Dir die Bascom Hilfe, setz Dich 3-4 Stunden hin und geh das Programm durch. Wenn Du weist wie es funktioniert, dann ist es ganz leicht zu ändern.

    Viel ist es nicht!

    Ciao,
    Werner (kopfschüttelnd)

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Ich finde das ist für einen Anfänger ziemlich schwer (Also so gehts mir), ich habe echt schwierigkeiten was von dem programm zu verstehen.
    Ich habe noch nie mit Timern, Interrupts etc. gearbeitet. Kann mir den jemand ein Buch empfehlen was mit dem ATmega8 arbeitet und auch für einen Anfänger verständlich geschreiben ist (Es sollte alles ausführlich erklärt werden (Timer, Interrutps, Multiplexen, Pins&Portd, Speicher etc)?


    Zum hema selber lernen ist schei**: Ich sitze seit einer woche jeden tag mindestens 5 Stunden vor irgentwelchen Foren, Tutorials etc, finde aber einfach nicht den Einstieg... Der wille ist da, aber ich habe wie gesagt ziemliche Probleme beim verstehen der ganzen Sache.

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo hardstyleroxx,

    > Kann mir den jemand ein Buch empfehlen was mit dem ATmega8 arbeitet
    > und auch für einen Anfänger verständlich geschreiben ist ?

    AVR Mikrocontroller Lehrbuch
    Untertitel: Eine Einführung in die Welt der AVR-RISC Mikrocontroller am Beispiel des AT Mega8.
    Autor: Roland Walter
    ISBN: - keine- (nur über den Autor erhältlich)
    Web: www.rowalt.de (Beispiel Kapitel)

    Das Buch wir imo seinem Titel mehr als gerecht. Es ist ein Lehrbuch und keine mit einem Tutorial aufgepeppte Übersetzung von Datenblättern.

    Er erklärt die einzelnen Bausteine eines AVR und beschreibt wie man sie verwendet. Als Programmiersprache für alles drumherum verwendet er BASCOM. Die Hardware selbst programmiert er aber weitgehend über die Konfigurationsregister der AVRs. Daher ist alles was man lernt nahezu 1:1 in jede andere Programmiersprache zu übernehmen.

    Das Arbeitsblatt (Experimentierbord zum Buch) braucht man imo nicht unbedingt. Der Simulator in Bascom tut es auch, ebenso wie ein Steckbrett oder jedes andere Experimentierboard.

    Ciao,
    Werner

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Hallo Werner,
    danke für den Tip werde mich gleich mal umschauen.

    @Alle
    stimmt der Code den jetzt? (Also das die Anzeigen nichts mehr anzeigen wenn an pinb.7 ein LOW Signal anliegt)


    Code:
    '           Hardware:
          '           ---------
          '           PD0:     gelbe LED (ab 6250 Umdr./min.)
          '           PD6:     Signaleingang
          '           PB0-PB6: 7-segment - Segment A bis G
          '           PD1-PD5: 7-segment - Ziffer - Select
         '            PB7: Eingang (Anzeige Tot)
    
          $regfile = "2313def.dat"                      'AT90S2313
          $crystal = 8000000                            '8MHz Quarz
          Ddrb = &B01111111                             'PortB = Ausgang
          Ddrd = &B0111111                              'PortD = Ausgang bis auf PD6
          portd = &B10000000                            'Pullup von Pinb.7 Aktivieren
         
     
          Pinb.7 alias herzeigen
    
          Dim Icount As Long At &H60
          Dim Wcountlo As Word At &H60 Overlay
          Dim Wcounthi As Word At &H62 Overlay
          Dim Temp As Integer At &H80
          Dim Temp2 As Integer At &H80 Overlay
          Dim Y As String * 5 At &H70
          Dim Z(5) As Byte At &H70 Overlay
          Dim Frequenz As Long
          Dim Freq As Word
          Dim Freq1 As Word
          Dim Freq2 As Word
          Dim Timeout As Byte
          Dim Impulse As Byte
          Dim X(5) As Byte
          Dim Test As Integer
          Dim Test2 As Integer
          Dim Zaehler As Byte
          Timeout = 0
    
          On Icp1 Oncapture
          On Ovf1 Onoverflow
          Config Timer1 = Timer , Prescale = 8 , Capture Edge = Rising
          Enable Icp1
          Enable Ovf1
          Enable Interrupts
    
    
    '*******************
    '* Start-Animation *
    '*******************
    
          Do
             Portb = 1
             Portd = 2
             Waitms 50
             Portd = 4
             Waitms 50
             Portd = 8
             Waitms 50
             Portd = 16
             Waitms 50
             Portb = 2
             Waitms 50
             Portb = 64
             Waitms 50
             Portd = 8
             Waitms 50
             Portd = 4
             Waitms 50
             Portd = 2
             Waitms 50
             Portb = 16
             Waitms 50
             Portb = 8
             Waitms 50
             Portd = 4
             Waitms 50
             Portd = 8
             Waitms 50
             Portd = 16
             Waitms 50
             Portb = 4
             Waitms 50
             Portb = 64
             Waitms 50
             Portd = 8
             Waitms 50
             Portd = 4
             Waitms 50
             Portd = 2
             Waitms 50
             Portb = 32
             Waitms 50
          Loop Until Temp2 = 1                          'Bis zum 1. Impuls
    
    
    
    '******************************************
    '* Hauptschleife - LED-Anzeigen ansteuern *
    '******************************************
    
    Main:
    Incr Timeout                                        'Bei Timeout: 0 U/min.
     If Timeout = 10 Then
      Timeout = 10
      Freq = 0
      Y = Str(freq)
      Z(1) = 0
      Z(2) = 0
      Z(3) = 0
      Z(4) = 0
      Z(5) = 48
     End If
    
    For Test2 = 1 To 5                                          'Wert sichern .....
     X(test2) = Z(test2)
    Next Test2
    
    '******************************************
    '* Anzeigen an                                                    *
    '******************************************
    
    if herzeigen = 1 Then                                       'Wenn herzeigen = 1 dann...
    
    For Test2 = 1 To 400                                        '..... und 400 mal Anzeigen
     For Zaehler = 1 To 5
      Test = X(zaehler)
      Select Case Test
       Case 48 : Portb = 63
       Case 49 : Portb = 6
       Case 50 : Portb = 91
       Case 51 : Portb = 79
       Case 52 : Portb = 102
       Case 53 : Portb = 109
       Case 54 : Portb = 125
       Case 55 : Portb = 39
       Case 56 : Portb = 127
       Case 57 : Portb = 111
       Case Else : Portb = 0
      End Select
      Portd.zaehler = 1
      Waitus 100                                        'Zeit für jede Anzeige
      Portd.zaehler = 0
     Next Zaehler
    Next Test2
    
    '******************************************
    '* Anzeigen aus                                                  *
    '******************************************
    
    
     Else                                              'Wenn herzeigen = 0 Anzeigen aus
     Portb = 0
     Portd = 0
     END IF 
    
    Goto Main
    
    
    
    
    '*************************************
    '* Interrupt-Routine (Zeiten messen) *
    '* (wird bei jedem Impuls ausgelöst) *
    '*************************************
    
    Oncapture:
     Disable Icp1
     Incr Impulse
     If Impulse = 8 Then
      Impulse = 0
      Timeout = 0
      Wcountlo = Timer1
      Timer1 = 0
      Frequenz = 240000000 / Icount                             'Umrechnung für 4-Zylinder
      Wcounthi = 0
    
      Freq2 = Freq1
      Freq1 = Frequenz
      Frequenz = Freq1 + Freq2
      Frequenz = Frequenz / 2
      Freq = Frequenz
    
      If Freq > 5999 Then Portd.0 = 1                           'Wenn Drehzahl über 5999 LED an
      if Freq < 4000 Then Portd.0 = 0                           'Wenn Drehzahl unter 4000 LED aus
      If Freq < 150 Then
       Freq = 0
       Y = Str(freq)
       Z(1) = 0
       Z(2) = 0
       Z(3) = 0
       Z(4) = 0
       Z(5) = 48
    
      Else
    
       Y = Str(freq)
       If Z(5) = 0 Then                                         'Führende Nullen eliminieren
        Do
         Z(5) = Z(4)
         Z(4) = Z(3)
         Z(3) = Z(2)
         Z(2) = Z(1)
         Z(1) = 0
        Loop Until Z(5) > 0
       End If
      End If
     End If
    End If
     Temp = 1
     Enable Icp1
    Return
    
    Onoverflow:
     Incr Wcounthi
    Return

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo hardstyleroxx,

    ja, die Anzeigen werden nichts mehr anzeigen und
    nein, der Code stimmt so nicht.

    In der Pin Konfiguration definiert Du Pin B7 als Eingang und schaltest den PullUp von D7 ein (portd = &B10000000). D7 existiert beim 2313 nicht, Du wolltest also vermutlich den PullUp von B7 einschalten (portb = &B10000000).

    Weiter unten, beim Abschalten der Anzeige setzte Du die kompletten Ports
    B & D auf 0, schaltest also auch den PullUp für B7 (D7) ab.

    Nur zur Sicherheit
    Du verwendest 7-Segment Anzeigen mit gemeinsamer Kathode.
    Die Kathoden werden über NPN Transistoren angesteuert, die Anoden hängen direkt am AVR. Richtig?

    Zum Abschalten reicht es die Pins einen der beiden Ports, abzuschalten.
    Vorzugsweise PortB, dabei aber den Eingang B7 auf "1" belassen.

    Else 'Wenn herzeigen = 0 Anzeigen dann "aus"
    Portb = &B10000000
    END IF

    Anmerkung PortD = 0 geht auch, dann schaltest Du aber die gelbe LED (ab 6250 Umdr./min.) mit ab oder Du musst sie extra ausmaskieren.

    Ciao,
    Werner

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Danke für deine Mühen.

    PS: Das Buch wrid gleich bestellt, habe mir mal das Inhaltsverzeichnis angeschaut und es scheint genau das zu sein was ich Suche

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.07.2004
    Beiträge
    274
    Sorry für die dumme Fragen die ich gleich stellen werde,

    aber hast Du das Programm irgendwo geklaut und möchtest Du sowas zum Laufen bringen :

    Bild hier  

    Bild hier  

    Das ist ein variables Drehzahlmesservorwarnfeld! Wie es im BMW M3 und im M5 drinn ist! Da BMW selber sagte sowas würde es nur in den M-Modellen geben, hat jemand denen die kalte Schulter gezeigt und mal schnell selber sowas gebaut! Sehr zum Leidwesen des Fahrzeugbauers...

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress