- Labornetzteil AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Spannungssteuerung

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Anzeige

    E-Bike
    Ja aber nur unter Vorbehalt denn das sind nur Richtwerte.
    In der Praxis gibt es abweichungen
    Gruß
    Ratber

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Habe mich heute etwas mit meinem Vater an den Programmcode gesetzt. Leider spuckt Bascom beim compilieren noch Fehler aus, die aber immer die gleichen sind.

    Error 230 You can not write to a PIN register
    Error 105 StoreBit error (immer in der selben Zeile wie Error 230)
    Error 31 Invalid datatype

    Und ganz zum Schluss:
    Error 124 (Line 0) LOOP expected

    Ebenfalls sagt mir Bascom, dass Debounce bei $tiny nicht unterstützt wird.

    Der Code zu den Fehlern:
    Code:
    $regfile = "at15def.dat"
    $tiny
    
    
    $initmicro
    
    Pinb.6 = 255 * 0.6
    
    'Initialisierung
    _init_micro:
    Config Pinb.1 = Output                                      'PortB.1 als Ausgang
     Ausgang Alias Pinb.6
    
    Config Pinb.2 = Input                                       'Pin (PB4) als Eingang
     Tasterhoch Alias Pinb.2
    Config Pinb.3 = Input                                       'Pin (PB5) als Eingang
     Tasterrunter Alias Pinb.3
    Config Pinb.4 = Input                                       'Pin (PB6) als Eingang
     Tastervoll Alias Pinb.4
    Portb.1 = 1                                                 'Pullup Widerstand ein
    Return
    
    'Ausführungsprogramm
    Pr:
    
    Do
         If Tasterhoch = 0 Then                                 'Spannungserhöhung
             If Ausgang > 245 Then
                Ausgang = 255
             Else
                Ausgang = Ausgang + 10
             End If
         Else
         nop
    
         End If
    
    
         If Tasterrunter = 0 Then                               'Spannungsverminderung
             If Ausgang < 10 Then
                Ausgang = 0
             Else
                Ausgang = Ausgang - 10
             End If
         Else
         nop
    
         End If
    
    
         If Tastervoll = 0 Then
            If Ausgang = 255 Then                               'Volle 12V
               Ausgang = 0
            Else
               Ausgang = 255
            End If
         Else
         nop
    
         End If
    End

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ja,das kann auch nicht funktionieren.

    Am Anfang kommen die Definitionen,
    Also welche Ports oder Pinne als ein odr ausgang.
    Die Variablen werden deklariert (Auch Alias)
    eventuell. benötigtwe Libarys geladen.

    usw.

    Erst danach kommt das Programm
    und am Ende hinterm Programm steht "END"
    Danach Eeprom und Datazeilen falls nötig.

    Das solltest du erstmal umstellen.

    Dann ist die Dokumentation nicht mehr stimmig.

    Dann versuchst du ganz oben einen Pin mit einem Bytewert zu beglücken und das vor den Dedinitionen wobei genau dieser Pin noch garnicht definiert wird


    Änder das mal und bring Ordnung rein.(Gleich angewöhnen)


    alternativ kann ich mir das mal in ruhe ansehen aber das dauert ne weile.
    Gruß
    Ratber

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Hm habe nun einmal alles sortiert und den Loop-Fehler behoben. Leider kommen die restlichen Fehler immernoch...
    Wie gesagt bin totaler Neuling auf dem Gebiet, was mich aber wundert, ist, dass kopierte Codes funktionieren, ich aber eigentlich keine Unterschiede sehe

    Dann noch eine Frage: erkennt der Tiny automatisch, dass es sich bei den 255 um Byte handelt? Oder muss ich das mit "Dim Ausgang As Iram Byte" definieren?

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Definieren must du alles was du nutzen willst.

    Vorallendingen fehlt dir hier die Zeile um den Timer im PWM-Modus zu betreiben.

    zb.

    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64

    Beim 15L macht Bascom das aber nicht (Is vieleicht bei der 81er Version schon gefixt. Probieren)


    Wenn das nicht geht dann Manuell mit

    Tccr1 = &B01010011
    Tcnt1 = &B10000111
    Ddrb.1 = 1


    Mit

    Ocr1a = 127
    Ocr1b = 127
    Ocr1a = X

    Kannste dann Arbeiten.
    Gruß
    Ratber

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Zitat Zitat von Ratber
    Definieren must du alles was du nutzen willst.
    OK, dann mach ich das nun einmal hier Schritt für Schritt. Anscheinend unterscheided sich der Code für Bascom schon etwas vom Visual Basic gecode.

    Das steht vor meinem Programm:
    Code:
    $regfile = "at15def.dat"
    $tiny
    $initmicro
    $crystal = 1000000                                        
    $noramclear
    
    Config Pinb.1 = Output                                      'PortB.1 als Ausgang
    Config Pinb.2 = Input                                       'Pin (PB2) als Eingang
    Config Pinb.3 = Input                                       'Pin (PB3) als Eingang
    Config Pinb.4 = Input                                       'Pin (PB4) als Eingang
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64
    
    Ausgang Alias Pinb.6
    Tasterhoch Alias Pinb.2
    Tasterrunter Alias Pinb.3
    Tastervoll Alias Pinb.4
    Wenn ich die Bascom-Hilfe richtig verstanden habe, kann man ganz am Anfang mit $initmicro in das Sub _init_micro springen. So kann ich doch einmal den Startwert festlegen oder?

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Also $Initmicro ist nur Sinjnvoll wenn du einge Portpinne so schnell wie Möglich auf einen definierten Wert setzen willst weils die Schaltung erfordert und man nicht die Möglichkeit hat den Einschaltfehler abzufangen (Selten)
    Das ist auch nur bei langen Programmen mit umfangreicher Initialisierung nötig.

    Für deine Anwendung ist das irrelevant.
    Die Pinne am Controller sind beim Einschalten auf Eingang also passiert hier nichts ausser das der Lüfter vieleicht einige Millisekunden anders läuft als gewollt (Also garnicht weil Träge)
    Gruß
    Ratber

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Ok, dann kann ich das auch weglassen. Habe ich denn soweit alle nötigen Definitionen usw. oder fehlt da noch etwas? Habe bei Beispielcodes nichts weiter finden können, was noch wichtig sein könnte.

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ich hab jetzt nicht den Überblick aber ich denke mal das du noch Variablen nutzen willst

    Also zb. "Dim A as Byte" usw. fehlt da noch.


    Ach so ,nochwas nebenbei.

    Die PWM kannste gut mit einer LED+Vorwiderstand am PWM ausgang testen.
    Man sieht dann gut was läuft.
    Gruß
    Ratber

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    39
    Beiträge
    210
    Super Ratber vielen Dank! Habe den Code nun fertig und er funktioniert auch (zumindest in Bascom). Wenn endlich die richtigen Microcontroller da sind, wird gleich mal getestet!

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test