Ja aber nur unter Vorbehalt denn das sind nur Richtwerte.
In der Praxis gibt es abweichungen
Ja aber nur unter Vorbehalt denn das sind nur Richtwerte.
In der Praxis gibt es abweichungen
Gruß
Ratber
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
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
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?
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
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.Zitat von Ratber
Das steht vor meinem Programm:
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?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
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
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.
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
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!
Lesezeichen