-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: mega128-Fragen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42

    mega128-Fragen

    Anzeige

    Beim Umstieg von der C-Control auf den Atmega stoße ich nun auf ein par problemchen. Hab schon einiges rumgegoogelt, aber konnte keine Erklärungen bekommen.
    1. Beim C-Control-Basic konnte ich mehrere rechenoperationen zusammenfassen. (z.B. var=var1-(var2/10) ) Das scheint beim AVR nicht zu gehen, oder?
    2. Beim C-Control-Basic gibts den Befehl "pulse". Bei Bascom habe ich noch keinen vergleichbaren Befehl gefunden. 2 mal "toggle" hintereinander sieht nicht so elegant aus. Gibts da ne andere Möglichkeit?
    3. Warum geht der "Sound"-Befehl nicht auf den PG-Ports?

    Ich hoffe das mir da jemand weiter helfen kann.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    1. der AVR selbst kann natürlich nur einen befehl nach dem anderen ausführen. die von dir angegebene konstruktion wird daher vom complier in mehrere einzelbefehle zerlegt. Bascom sollte sowas eigentlich können, aber ich bin mir nicht sicher
    2. in Bascom heißt das "pulseout"
    3. was ein "sound" befehl ist kann ich ja noch raten aber was ist im zusammenhang mit dem m128 ein "PG-port"?
    edit: stimmt der m128 hat ja auch nen port g! was hast du vor damit, und welchen anschluss benutzt du genau? denn einige pins sind auch mit anderen funktionen doppelt belegt und müssen erst auf normale io- funktion umgeschaltet werden...

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    1. ok. war von mir falsch ausgedrückt. Der AVR kann das natürlich auch nicht, genau so wenig wie der Motorola auf der C-Control. Aber Bascom kann das scheinbar nicht zerlegen. bei einer simplen Addition von 3 variablen gibt er schon folgende Fehlermeldung aus.
    Error: 35 Line: xx 3parameters expected
    Dann werd ich das wohl selber zerlegen müssen.
    2. pulseout, ja klar. den hatte ich zwar gesehen, aber für unbrauchbar gefunden. warum kann ich mit jetzt aber auch nicht erklären.
    danke für den Tipp.
    3. In meinem Fall wollte ich Portg.2 verwenden. An g3 und g4 hab ich den Quarz für den RTC. Portf kann ich aber auch nicht mit dem "sound"-Befehl benutzen. Als normale Ausgabeports kann ich beides verwenden.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    so erstmal Bascom installiert...

    also
    SOUND PORTG.2 , 10000, 10 'BEEP
    aus der hilfe kopiert und nur G.2 eingesetzt wird ohne probleme kompiliert. gibt es bei dir da ne fehlermeldung, oder taucht dein problem erst bei der realen ausführung im m128 auf?



    edit: so jetzt glaube ich zu wissen wo der hase im pfeffer liegt!
    ich habe einfach mal den avr-typ in den optionen auf "m128 in 103 mode" umgestellt. denn irgendwann hab ich mal gelesen dass der m128 im auslieferungszustand in einem modus geschaltet sit, wo er kompaktible zu seinem vorgänger(?), dem mega103, ist, und daher nicht alle funktionen nutzbar sind. und da gabs sofort ne fehlermeldung weil es beim m103 weder portF noch portG gibt...

    lösen kannst du dein problem demnach mit den fusebits. da kann man diesen kompaktibilitätsmodus ausschalten, um den m128 voll nutzbar zu machen. dazu klickst du in Bascom auf manuell programmieren, dann auf "lock and fuse bits". dann weiß ich nicht mehr weiter weil die einzelnen fusebits nur angezeigt werden wenn wirklich ein m128 an der leitung hängt, aber die sollten beschriftet sein. aber meld dich am besten nochmal bwevor du irgendwas verstellst wo du dir nicht 100% sicher bist...

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    die fuse stehen schon auf 128.
    aber ich kann machen was ich will.

    $regfile = "M128def.dat"
    $crystal = 16000000
    Ddrg.2 = 1
    Do
    Sound Portg.2 , 10000 , 10
    Wait 1
    Loop

    da kann ja nicht so viel falsch sein.
    aber trotzdem
    Error: 222 Line: 5 Illegal character [expected(,got"]

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    Eventuell liegt es an der Bascom Version?
    Habe die 1.11.7.4

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    BASCOM-AVR IDE Version : 1.11.7.3
    Compiler: Version 1.11.7.3

    kompilert deinen text fehlerfrei... merkwürdig...

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    habs gerade mit der neuen demo versucht, da gehts auch.
    sehr merkwürdig

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    tatsächlich, in der ...7.3 gehts auch. und warum dann nicht in der ...7.4
    dann werd ich meine ...7.4 wohl updaten müssen.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    17.01.2005
    Beiträge
    42
    ok, da in Bezug auf die ..7.4 keiner mehr eine Idee hat, komm ich zur nächsten Frage.
    Es geht die Timer an. Ich konnte noch nicht so recht herausfinden, was passiert, wenn mehrere Timer Interrupts gleichzeitig anstehen.

    Also mal angenommen, Timer1 ist gerade in der Interruptroutine um z.B. die Zeit eines DCF Impulses zu messen, und während dessen läuft Timer2 über und löst dadurch ebenfalls einen Interrupt aus.
    Wird der dann ignoriert, oder wird die entsprechende Routine anschließend ausgeführt?
    Wenn letzteres der Fall ist, könnte es ja bei zeitkritischen Anwendungen Probleme geben.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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