Hallo, ich habe nicht wirklich viel Ahnung von AVR und BASCOM, wollte mit diesem Projekt einfach mal einsteigen Ich möchte eine Inkrementalgeber/Drepulsgeber auswerten und im ersten Schritt auf zwei Pins ausgeben. Leider meckert der Compiler schon in den ersten Zeilen und sagt bei den DIM-Instruktionen "Not possible with $Tiny". Es kann doch nicht sein, dass ein Tiny15 nicht mal Variablen verarbeiten kann?? Gibt es irgendwo ein gutes Tutorial zu Bascom und eine ÜBersicht (ich meine nicht das Datenblatt..), in der die Unterschiede der AVRs aufgeführt sind? Danke vorab für Eure Hilfe! Timo Hier der Code: ###################################################################### $regfile = "attiny15.dat" $tiny 'Drehpulsdecoder auswerten Config Portb.0 = Input Config Portb.1 = Input Config Portb.2 = Output Config Portb.3 = Output Dim Ax As Bit Dim Bx As Bit Dim A As Bit Dim B As Bit Dim Yy As Byte Dim Cw As Bit Dim Ccw As Bit ' ################ Einsprung: Cw = 0 : Ccw = 0 A = Portb.0 B = Portb.1 If A = Ax And B = Bx Then Goto Einsprung Yy =(a + 2 * B) Xor Porta.0(ax + 2 * Bx) If A = B Then If Yy = 1 Then Cw = 1 Elseif Yy = 2 Then Ccw = 1 End If Else If Yy = 2 Then Cw = 1 Elseif Yy = 2 Then Ccw = 1 End If End If Ax = A Bx = B Goto Einsprung ######################################################################
Wie der BASCOM-Compiler das handelt weiß ich nicht, aber der Grund dafür dürfte sein, dass der Tiny15 kein SRAM hat, sondern nur die 32 Rechenregister als Speicher. Und die sind schnell voll...
Nimm einen Attiny 25 oder 45 oder 85. Diese Kollégen haben 128/256/515 Bytes SRAM. Da passen dann auch die Variablen rein. Mir ging es mit Attiny15 schon genauso. ;-) Aus lauter "Prast" habe ich mich dann mit Assembler befasst, um sie doch noch benutzen zu können. MfG Paul
Var = ENCODER( pin1, pin2, LeftLabel, RightLabel , wait) bascom hat schon einen eingebauten befehl für Drehpulsdecoder . schau mal bei den help files in bascom nach.
Hallo Paul, damit kann ich dann wohl meine Idee, im Ziel den Tiny15 als I2C-Slave zu betreiben, erden :-(( (Drehpuls auf I2C-Botschaft) Was kann man dann mit dem Teil überhaupt machen?? Timo
Hallo Sowieso, geht das mit dem Tiny15?? Gibt es eigentlich in der Hilfe eine Überischt, welche Funktionen mit welchem Controller gehen?? Timo
Der Tiny 15 eignet sich nicht für die Bascom-Programmierung, weil er keinen SRAM hat. Die anderen oben aufgeführten haben die gleiche Anschlußbelegung wie der Tiny15. Wie ich oben schon sagte, geht es am Besten mit Assembler für diesen Burschen. Dann mußt man eben mangels SRAM die Register des Tiny15 zum "Lagern" seiner Variablen benutzen. Das ist gar nicht so einfach, sich da nicht selbst "abzuschießen". Mfg Paul
mit C gehts auch nicht weil hochsprachen compiler pointer benutzen jeder pointer braucht 16 Bit.sonst kann der compiler sich den speichebereich nicht merken.
Paul Baumann wrote: > Der Tiny 15 eignet sich nicht für die Bascom-Programmierung, weil er > keinen > SRAM hat. Falsch! Umgedreht wird ein Schuh draus. BASCOM eignet sich nicht für den Tiny15 weil BASCOM zu verschwenderisch mit den Ressourcen quast. > Die anderen oben aufgeführten haben die gleiche > Anschlußbelegung > wie der Tiny15. Gute Idee, immer mit Kanonen auf Spatzen schießen und mangelnde Programmierkenntnisse durch überdimensionierte Hardware zu kompensieren. > Wie ich oben schon sagte, geht es am Besten mit Assembler für diesen > Burschen. Das ist korrekt, trifft aber auch für die anderen AVRs zu. Denn AVRs können weder BASIC noch C, sie können nur Maschinencode und der ist nunmal nur in Assembler 1 zu 1 abbildbar. Gute C-Progranmmierer kennen sich übrigens auch in Assembler etwas aus. Ansonsten wären sie gar nicht in der Lage, die Hardwearefeatures der AVRs sinnvoll zu nutzen. > Dann mußt man eben mangels SRAM die Register des Tiny15 zum > "Lagern" seiner Variablen benutzen. Das ist gar nicht so einfach, sich > da > nicht selbst "abzuschießen". Ich habe am Ende beim Tiny12 oder Tiny15 meist noch ein paar Register frei. > > Mfg Paul MfG, Blaubär
Mein Enkel würde jetzt sagen: "Bleib mal gelöst, Alter!" Was vielleicht noch interessant wäre: Wie kommst Du zu dem Schluß, daß mangelnde Programmierkenntnisse daran Schuld sind, wenn jemand mit BASCOM an´s Werk geht? M.E. ist es völlig unerheblich, WOMIT man programmiert. Der Quelltext ist schließlich nur die Umsetzung des Programmablaufes. Programmieren ist für mich in erster Linie ein logisch fehlerfreies Abbilden des gewollten Vorganges in Form eines Planes auf Papier. In diesem Sinne Paul
Paul Baumann wrote: > Mein Enkel würde jetzt sagen: "Bleib mal gelöst, Alter!" Da haben sie recht. > Was vielleicht > noch interessant wäre: Wie kommst Du zu dem Schluß, daß mangelnde > Programmierkenntnisse daran Schuld sind, wenn jemand mit BASCOM an´s > Werk geht? Weil ich die Erfahrung gemacht habe, dass viele Leute BASCOM einsetzen, weil sie meinen, dass sie damit auch ohne jegliches Wissen über Controller-Architektur und reale Möglichkeiten gute Programme schreiben können. Ein Tiny15 (der bekanntlich für einen DCC-Lokdecoder ausreicht) wird zum Schrott erklärt, weil man unfähig ist, Variablen in Registern zu halten. > M.E. ist es völlig unerheblich, WOMIT man programmiert. Das stimmt aber nur solange, wie man mit dem "WOMIT" (gewählten Werkzeug) auch sein Ziel erreicht. > Der Quelltext > ist > schließlich nur die Umsetzung des Programmablaufes. Und je nach verwendeter Sprache und vorhandenem Wissen darüber eine hocheffiziente bis sehr verschwenderische Umsetzung. Ich sehe jedenfalls keinen Sinn darin, mich von einem Baukasten abhängig zu machen, der mir das Benutzen kleinerer RAM-loser AVRs verwehrt. > Programmieren ist > für mich in erster Linie ein logisch fehlerfreies Abbilden des gewollten > Vorganges in Form eines Planes auf Papier. Da stimme ich Dir natürlich zu. Wenn man beim Programmieren (auf Papier) aber schon die vorhandenen Möglichkeiten (Ressourcen) und Einschränkungen berücksichtigt, so ist das bestimmt kein Nachteil, oder? > > In diesem Sinne > Paul Bis auf den Punkt, dass man mit ungeeignetem Werkzeug keine gute Arbeit machen kann, teile ich Deine Meinung. MfG, blaues Bärli
Fasse doch Deine Hauptaussage eventuell gleich so zusammen: /IRONIE "Bascom ist ein Baukasten, in dem etliche Teile fehlen. Es ist nur zum Spielen für Schülerchen und Facharbeiterchen geeignet, jedoch nicht für excellente Programmierer mit Fähigkeiten, für die mir die Worte fehlen. Für Experten jedoch, die ein Doppel-Word sogar in ein Byte speichern können, ist es völlig indiskutabel." \IRONIE Noch mal zur Erinnerung: Es ging dem Threadstarter nur um eine Erklärung für die Fehlermeldung: "Not possible with $Tiny". (Auf Deutsch: Der Tiny 15 ist zu possierlich, um einen SRAM zu haben) ;-)) Falls der gute Mann jetzt schon eine Platine angefertigt gehabt hätte, habe ich ihm geraten, die Typen mit gleicher Anschlußbelegun zu wählen. Weiter wollte ich nichts. MfG Paul
Ach Paul... Paul Baumann wrote: > Fasse doch Deine Hauptaussage eventuell gleich so zusammen: > > /IRONIE > "Bascom ist ein Baukasten, in dem etliche Teile fehlen. Es ist nur zum > Spielen für Schülerchen und Facharbeiterchen geeignet, jedoch nicht > für excellente Programmierer mit Fähigkeiten, für die mir die Worte > fehlen. > Für Experten jedoch, die ein Doppel-Word sogar in ein Byte speichern > können, ist es völlig indiskutabel." > \IRONIE Das ist Deine Interpretation, nicht meine. Meine Zusammenfassung würde lauten: "Bascom macht dumm". Denn Es versperrt die Sicht auf das, was wirklich passiert. Das es von Schülern und Azubis benutzt wird, hat mit der Faulheit ihrer Lehrer und Ausbilder zu tun. Wer damit klar kommt, der soll damit selig werden. Wer aber rumattert, weil das Zeugs selbst bei kleinsten Progrämmchen RAM braucht, weil es zu doof ist, die 32 Register halbwegs effizient zu nutzen, dem empfehle ich gerne ASM als Alternative. Was ist daran denn sooo schlimm? > > > Noch mal zur Erinnerung: Es ging dem Threadstarter nur um eine Erklärung > für die Fehlermeldung: > "Not possible with $Tiny". > (Auf Deutsch: Der Tiny 15 ist zu possierlich, um einen SRAM zu haben) > ;-)) Gute üBärsetzung. > > Falls der gute Mann jetzt schon eine Platine angefertigt gehabt hätte, > habe ich ihm geraten, die Typen mit gleicher Anschlußbelegun zu wählen. Das Innenleben des Tiny15 ist so überschaubar, dass der Tiny15 sich hervorragend für den Einstieg in ASM eignet. Das ist für den Benutzer immer noch besser als Wegwerfen und durch andere Typen ersetzen. Aber da wird es ja gleich wieder kritisch, weil man ja dann den I²C-Slave von Hand in Software nachbilden muss und nicht mal schnell einen vorhandenen Baustein dranstecken kann, ohne zu wissen, was der eigentlich macht. > > Weiter wollte ich nichts. Ich auch nicht. > > MfG Paul MfG, Bärli, datt blaue
>Das Innenleben des Tiny15 ist so überschaubar, dass der Tiny15 sich >hervorragend für den Einstieg in ASM eignet. ..habe ich doch weiter oben schon gesagt. So, und jetzt: Gut nun, Gudrun. Paul
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.