- LiFePO4 Speicher Test         
Seite 10 von 53 ErsteErste ... 8910111220 ... LetzteLetzte
Ergebnis 91 bis 100 von 524

Thema: Tutorial für alle Assembler-Anfänger _

  1. #91
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    Powerstation Test
    Zitat Zitat von toeoe
    Mir wird nur schlecht, wenn ich seh wie man Timer in C oder BASIC programmiert, wie wenig Zeilen das da sind *g*
    Da kann ich dich beruhigen. In C hast du auch eine Zeile für jeden Zugriff auf ein Register. Und wenn es hart auf hart kommt, schreibt man da auch Codepassagen oder genze Module in Assembler.

    Und in BASIC weiß man nie, was sich eigentlich hinter dieses öminösen config-Kommandos verbirgt...
    Disclaimer: none. Sue me.

  2. #92
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2005
    Ort
    Berlin
    Alter
    40
    Beiträge
    289
    Da kann ich dich beruhigen. In C hast du auch eine Zeile für jeden Zugriff auf ein Register. Und wenn es hart auf hart kommt, schreibt man da auch Codepassagen oder genze Module in Assembler.
    Na denn bin ich ja echt beruhigt.
    Und in BASIC weiß man nie, was sich eigentlich hinter dieses öminösen config-Kommandos verbirgt...
    Das ist dann allerdings der Nachteil. Irgendwann muss man sicher in die tieferen Ebenen gehen. Naja, ich denk eh, dass ich bei Assembler bleib

  3. #93
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    O man ich dachte, Du wirst Damit etwas mehr zu tu haben

    Das heißt aber nur daß die Materie doch nicht so schwer ist, wie man es am Anfang
    meint, und daß Du gut logisch denken kannst!

    Aber ich wäre nicht ich, wenn ich nicht doch was hätte

    Code:
    zeitum:
       clr zaehler               ;Zählregister auf 0 setzen
       ********************sbis PINB, LED
       ********************rjmp zeitum0            ;zu "zeitum0:" springen
       sbic PINB, LED
       rjmp zeitum1            ;zu "zeitum1:" springen
    
    zeitum0:
       sbi PORTB, LED            ;B.2 = 1 setzen -> LED an
       rjmp zeitum2
    
    zeitum1:
       cbi PORTB, LED            ;B.2 auf 0 setzen -> LED aus
       rjmp zeitum2
    
    zeitum2:
    Es handelt sich um die 2 Zeilen, die ich mit Sternchen markiert habe,
    Die brauchst Du nicht!!!!!!!!!!!!
    Und warum?
    sbic PINB, LED -> überspringe nächste Zeile wenn LED Clear
    wenn Clear dann macht er bei zeitum0 weiter sonst macht er rjmp zeitum1
    Da LED ein Bit ist also 1 oder 0 brauchen wir das nur einmal zu vergleichen.
    Entweder das eine oder das andere.

    Ich hoffe, das es klar ist...

    Mir wird nur schlecht, wenn ich seh wie man Timer in C oder Basic programmiert, wie wenig Zeilen das da sind *g*
    Na ja Basic auf jedem Fall, da steuerst Du ein servo mit einer Zeile an.
    und C , hmmm bei C werden die Register genauso geladen!
    anstatt
    ldi tmp, (1<<CS02) | (1<<CS00)
    out TCCR0, tmp

    schreibt man TCCR0 = (1<<CS02) | (1<<CS00);

    Du kannst immernoch aussteigen

    Und die Sache mit dem Lehrer, nööööö ich arbeite in einer Elektrofirma, wo jedemenge
    Praktikanten und Azubis kommen, man schick sie meistens zu mir,
    und die können fragen,
    da bist Du noch ruhig gegen

    aber so hab ich eben gelernt mit Registern umzugehen
    naja, sollte nur ein Beispiel sein ....

    Gruß Sebastian

  4. #94
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2005
    Ort
    Berlin
    Alter
    40
    Beiträge
    289
    Ahhja, weil er ja einfach Zeile für Zeile (Adresse für Adresse) abarbeitet. Das muss noch rein in mein kleines Köpfchen

    Muss aber wieder kurz auf den Timer zurückkommen. Auf Seite 4 hast du ja geschrieben
    entweder änderst Du in dem jetzigem Code Deine 65 ? in 15 um, oder lädst den Timer mit 98 und zaehler mit 40.
    Das hab ich ja alles nachvollzogen. Hab das auch auf meine 3,6864 MHz angepasst und den zaehler auf 14 geändert. Klappt dann wunderbar. Nur ein paar ms weichen ab. Dann wollt ich nun die kompliziertere Art machen, also hier erstmal die Rechnung:
    1 / 3686400 = 271ns
    271ns * 1024 = 278µs
    278µs * 90 = 25ms
    25ms * 40 = 1s

    Diese Ergebnisse nun auf deine Aussage angewendet:
    ...oder lädst den Timer mit 90 und zaehler mit 40.
    Also folgende Änderungen im Code:
    Code:
    .equ time 98-97
    und
    Code:
    cpi zaehler, 0b00101000
    Dann ist er aber wieder sehr viel langsamer als eine Sekunde. Wäre nett, wenn du mir da auf die Sprünge helfen würdest

  5. #95
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Zu Deinem Edit oben, schaue meine Post von gerade, dann bekommst Du 2 Zeilen weg \/

  6. #96
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2005
    Ort
    Berlin
    Alter
    40
    Beiträge
    289
    Jo, hab ich gesehen und geändert

  7. #97
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    .equ time 98-97
    das ist wohl hier falsch.......

    Mit wieviel willst Du ihn vorladen? mit 90 ?

    bedenke Der Zähler läuft von dem Wert was Du vorlädst bis 255 dann kommt der Überlauf.

    mithin

    .equ time = 255 - 90

    255 bleibt immer gleich weil das ja die Schwelle ist wo er überläuft.....

    und der zähler dann mit 40 das ist richtig.
    Wenn Deine Rechnung stimmt , hast Du dann eine genaue Sekunde......

    Jetzt weißt Du warum es so krumme Quarze gibt.....

    Gruß Sebastian

  8. #98
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2005
    Ort
    Berlin
    Alter
    40
    Beiträge
    289
    Ahh, klar
    Ich denk, ich hab den Code nun supi verstanden
    So, dann hätten wir das jetzt wohl abgehakt?

  9. #99
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von izaseba

    bedenke Der Zähler läuft von dem Wert was Du vorlädst bis 255 dann kommt der Überlauf.

    mithin

    .equ time = 255 - 90

    255 bleibt immer gleich weil das ja die Schwelle ist wo er überläuft.....

    Gruß Sebastian
    Sicher?
    Der Zähler Interrupt kommt doch erst in dem Moment, wenn der Zähler überläuft. Das Interrupt-Flag ist ja so was wie ein neuntes Bit, das allerdings nur gesetzt wird.
    Da der Interrupt ausgelöst wird, wenn der Zähler auf 0 springt, muss es doch heissen.

    .equ timer = 256 - 90

    Gruß, Georg-Johann
    Disclaimer: none. Sue me.

  10. #100
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    So, dann hätten wir das jetzt wohl abgehakt?
    nö,
    eine Kleinigkeit hätte ich noch

    Pass auf, ich mach eine Aussage, die verdammt wichtig ist, in unserem kleinem Beispiel
    ist es vielleicht egal, aber um zu üben gut geeignet.

    So jetzt die Aussage :

    Interruptroutinen sollen so kurz wie möglich gehalten werden!

    Ende de Aussage.

    Warum das so ist, müßtest Du schon wissen.
    Ich habe das schon irgendwo oben gesagt.
    1. Überlege warum das so ist, wie gesagt ich habe es schon oben geschrieben!
    2. Versuche Dein Code so abzuändern, daß der Interrupt nichts anderes macht, als Deinen Zähler um eins hochzuzählen, und den Timer neu zu laden!
    Der rest soll in Hauptprogramm ablaufen.

    es ist denke ich auch nicht schwer, aber die Frage 1 , da bin ich auf Deine Antwort gespannt.

    Wenn Du das hast, dann haben wir wirklich alles, und könnten wir uns morgen oder so den Timer 1 anschauen, der hat ein paar Möglichkeiten mehr als der erste, aber bevor Du
    damit anfängst mußt Du noch die 16 Bit Zahlen kennenlernen, die sind auch nicht ohne.

    Alles aber nur wenn Du noch lust hast.

Seite 10 von 53 ErsteErste ... 8910111220 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test