PWM mit einem ATMEGA 8 für Eisenbahn

Es gibt 66 Antworten in diesem Thema, welches 8.364 mal aufgerufen wurde. Der letzte Beitrag (29. Juli 2022 um 07:51) ist von Fepo.

  • Ich hab mir einfach das Compilat aus dem Verzeichnis geholt und in die tl866 Software gezogen. Hab nur das tl866 usb Kabel.

    Das ist ja nun unkomfortabel ohne Ende. Dann brauche ich keinen Arduino-Bootloader, wenn ich die Programme nicht direkt aus der Arduino-Oberfläche auf den Chip lade. Und wie bekomme ich die Debug-Ausgaben auf den PC?

  • Wenn ich mich recht entsinne, hatte ich da gar keine Debug-Ausgaben.

    Aber welche Debug-Ausgaben willst Du bei einem Eisenbahn-Trafo haben? Du siehst doch wie die Lok fährt. Zur Not hältst Du halt noch schnell das Scope an die Schiene.

    Vermutlich bin ich einfach zu alt für sowas. Ich komm noch aus der Zeit, als man gesagt hat, dass ein schwarzer Bildschirm Fehlermeldung genug ist, weisst Du?

  • Wenn ich mich recht entsinne, hatte ich da gar keine Debug-Ausgaben.

    Aber welche Debug-Ausgaben willst Du bei einem Eisenbahn-Trafo haben? Du siehst doch wie die Lok fährt. Zur Not hältst Du halt noch schnell das Scope an die Schiene.

    Vermutlich bin ich einfach zu alt für sowas. Ich komm noch aus der Zeit, als man gesagt hat, dass ein schwarzer Bildschirm Fehlermeldung genug ist, weisst Du?

    Es gibt wenige Programmierer, die es schaffen ein Programm ohne jegliches Debugging einfach so fehlerfrei runterzuschreiben. Ich bin noch keinem begegnet und mache das beruflich.

    Wie willst du denn herausfinden, wo der Fehler streckt, wenn das Programm nicht das tut, was es soll? Denn wie bereits geschrieben wurde, bleibt es doch nicht beim einfachen PWM. Da werden sicher noch Funktionen dazukommen.

    Und wer von uns beiden älter ist müsste, müsste noch geklärt werden. Der PET 2001 war mein erster Computer. :D

    Ich verstehe die ganze Diskussion hier nicht. Natürlich kann man in Assembler auf dem ATMEGA 8 programmieren. Natürlich kann man Programme ohne jeglichen Debugging entwickelt. Aber man kann es sich auch ohne viel Aufwand viel einfacher machen und kommt dadurch am Ende viele schneller zu einem viel besseren Ergebnis.

    Übrigens soll Steve Wozniak sein Integer-Basic ohne Assembler entwickelt haben. Direkt in den Hex-Editor eingetippt. Naja, jeder wie er mag. :nixwiss:

    Meine ersten 6502 Assemblerprogramme habe ich auf Papier assembliert. Das war nicht toll sondern einfach nur nervig und ineffizient.

    Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von detlef (27. Juli 2022 um 18:49)

  • Es kommt halt auf das Problem an. Ich glaub mein letztes Problem in der Richtung war so ein PWM Multiplexer, der ein Summensignal auf mehrere Servoausgänge verteilt halt. Das waren nur so paar hundert Byte auf einem Attiny 13. Der hätte wohl eh keinen Platz für Debug-Ausgaben gehabt.

    Ich möchte hier immer noch helfen. Könnte paar Zeilen C beisteuern, wenn das hilft. Mir würde das evtl. tatsächlich sogar selbst helfen, weil ich hier noch paar Spur-Z Teile liegen hab, die ich mal mit nem Arduino laufen lassen wollte...

  • Wenn ich keine andere Ausgabemöglichkeit habe, dann toogle ich eine IO-Leitung die an bestimmten Watchpoints.

    Dann kann ich mir mit dem Logikanalyer anschauen, was das Programm gerade tut. Über die Impulslänge kann man sogar verschiedene Watchpoints unterscheiden. Das geht aber auch nur, wenn es nicht auf jede Mikrosekunde ankommt.

    Bei einer einfachen Schleife braucht man das nicht, aber schon wenn man einige wenige Programmzustände hat, ist es hilfreich, wenn man weiß, was das Programm gerade tut.

  • detlef

    Weil du ja Arduino so toll und einfach findest und das so toll kannst...

    schreib doch mal gerade den Code hierfür:

    Bitte melde dich an, um dieses Medienelement zu sehen.

    Bin gespannt ;)

    Hab ich übrigens mit BASCOM programmiert ☺️

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Wenn's mit Bascom geht, dann geht's auch mit Arduino. Da mache ich mir überhaupt keine Gedanken. :D

    Oder woran sollte das deiner Meinung nach scheitern?

  • du verstehst es nicht 😌

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Hucky

    Nee, nicht Youtuber :)

    Ich will es mal als Influencer probieren :lol27::lol27:

    "Was machen sie?" " Ich bin Influencerin."
    "Achso, ich habe auch nix gelernt." :) ;)

    Bin bei der Bundeswehr als Technikert Zivil bedienstet. :)

    Meine Entgeltgruppe plus Erfahrungsjahre ist schon fast am Ende

    für Ziviles Personal :)

    Nochmal zu meinem Thread. Worum ging es hier eigentlich ? :)

    daybyter

    Hast Recht, ich bin nun verwirrt. :lol27::lol27::lol27:

    Das Drachenboot liegt schon am Strand.

    Die Königin sie zittert.

    Und wenn der Wind die Segel bläht,

    dann hab ich Blut gewittert.

    Einmal Wikinger immer Wikinger.

  • #define pwm 6

    #define pot A0

    void setup() {

    // put your setup code here, to run once:

    pinMode(pwm,OUTPUT);

    pinMode(pot,INPUT);

    Serial.begin(9600);

    //safety speed reset of the motor

    analogWrite(pwm,0);

    }

    void loop() {

    // put your main code here, to run repeatedly:

    float val = analogRead(pot);

    float duty = map(val,0,1023,0,255);

    analogWrite(pwm, duty);

    Serial.println(duty);

    }

    Hier als Code Arduino UNO

  • float val = analogRead(pot);

    Hier als Code Arduino UNO

    Aber bitte nicht float. Wir sind ja nicht auf dem C64, der nur einen numerischen Datentyp kennt. :D

    Außerdem wurde der Code weiter oben schon gepostet und verlinkt. In der etwas einfacheren und vom Datentyp her korrekten Version.

  • float val = analogRead(pot);

    Hier als Code Arduino UNO

    Aber bitte nicht float. Wir sind ja nicht auf dem C64, der nur einen numerischen Datentyp kennt. :D

    Außerdem wurde der Code weiter oben schon gepostet und verlinkt. In der etwas einfacheren und vom Datentyp her korrekten Version.

    was meinst du ? Hast du etwas gepostet was ich nicht gesehen habe. Ich habe nur den Code von mir in Bascom gesehen und den von mir in Arduino. Von dir kam ja wieder nichts als .... Das geht anders aber nicht wie...

  • float val = analogRead(pot);

    Hier als Code Arduino UNO

    Aber bitte nicht float. Wir sind ja nicht auf dem C64, der nur einen numerischen Datentyp kennt. :D

    Außerdem wurde der Code weiter oben schon gepostet und verlinkt. In der etwas einfacheren und vom Datentyp her korrekten Version.

    was meinst du ? Hast du etwas gepostet was ich nicht gesehen habe. Ich habe nur den Code von mir in Bascom gesehen und den von mir in Arduino. Von dir kam ja wieder nichts als .... Das geht anders aber nicht wie...

    Man kann natürlich auch bewusst ignorieren, um sich selbst zu bestätigen (selektive Wahrnehmung).

    Bitte melde dich an, um diesen Link zu sehen.

    Wenn es auf die persönliche Ebene geht ("von dir kam wieder..."), dann wird es Zeit den der Thread zu verlassen. Auf die permanenten Anfeindungen von dir kann ich verzichten. Von mir ist alles zu dem Thema gesagt und du wieder auf Ignorieren.

    Bitte melde dich an, um diesen Link zu sehen.

    2 Mal editiert, zuletzt von detlef (28. Juli 2022 um 18:10)

  • arris

    Hatte schon eine PN von dir und zurück geschrieben.

    daybyter

    Kann fepo denn seinen Atmega programmieren?

    Und wie ich die Dinger programmieren kann :)

    Ich gehe davon aus, du meinst den Flashspeicher flashen.

    Habe schon vor Monaten mit meinem Kollegen gebüffelt.

    Aber es reicht für mich nicht was analoges (Poti etc )

    abzufragen und umzusetzen. :)

    Das Drachenboot liegt schon am Strand.

    Die Königin sie zittert.

    Und wenn der Wind die Segel bläht,

    dann hab ich Blut gewittert.

    Einmal Wikinger immer Wikinger.

  • Hucky

    Ja, ist schon peinlich hier.

    Da fragt man was und dann bricht hier eine Diskussion nach

    der anderen aus. :(

    arris

    An dich vielen vielen Dank.

    daybyter

    Auch an dich danke für den Versuch.

    Ich weiß, dass du den kopf im Moment sehr voll haben musst.

    Hast noch nicht Dein Gitarrespiel gepostet :) ;)

    Das Drachenboot liegt schon am Strand.

    Die Königin sie zittert.

    Und wenn der Wind die Segel bläht,

    dann hab ich Blut gewittert.

    Einmal Wikinger immer Wikinger.

  • Habe schon vor Monaten mit meinem Kollegen gebüffelt.

    Aber es reicht für mich nicht was analoges (Poti etc )

    abzufragen und umzusetzen. :)

    Kein Problem nicht. Das bekommen wir hin. Die Kollegen haben ja sogar schon den meisten Code geposted.

  • Hucky

    Ja, ist schon peinlich hier.

    Da fragt man was und dann bricht hier eine Diskussion nach

    der anderen aus. :(

    leider normal 🙄

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...