- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Assembler und Odometrie

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    Danke sowas habe ich gesucht ...
    Nun wäre noch eine pdf-Version davon schön ... :-P

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    Hallo
    Das Programm macht genau das, es schaut nach, ob sich sich ein
    weißes oder ein schwarzes Feld der Segmentscheibe vor dem Sensor
    befindet. Da der Sensor aus einer IR - Led und einem Phototransistor
    besteht, kannst du ihn nur mit dem ADC auswerten. Er gibt kein Digitales Signal ab, das man mittels eines Eingabeports einlesen kann.

    MfG
    A.Hoffmann

  4. #14
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    Was machen eigentlich folgende Befehle:
    reti, .equ, .cseg, .org, etc.
    reti: beendet eine interruptroutine und aktiviert die interrupts weider. die interrupts sind grundsätzlich die ersten paar befehle im flash speicher, tritt ein reset auf springt der prozessor an die entsprechende stelle und führt den dort stehenden code aus. damit also bei den interrupts nichts groß passiert, werden diese sofort beim ausführen mit reti beendet.

    .equ ist kein assembler befehl, sondern meldet dem compiler, dass das wort was danach steht, die zahl bedeutet. .EQU ZEHN 10 heisst als dass überall wo ZEHN steht mit 10 gerechnet wird.

    .cseg ist ebenfalls kein assemblerbefehl, sondern sagt dem compiler dass hier das code-segment beginnt (im unterschied zum datensegment)

    .org st auch kein asm-befehl. mit diesem befehl wird beschrieben, welche flash-adresse hier ist. also beginnt das programm beim anfang des flash-bereichs - an der adresse 0x00.

    merke: alle befehle die mit einem punkt beginnen, werden nicht compiliert, und sind keine asm-befehle, sondern dienen der steuerung des compilers (bzw sagt man auf dieser ebene nicht compiler, sondern "Der Assembler" und nicht compilieren, sondern "assemblieren".)

    Was ist der Stack Pointer?

    dazu zuerst: der stack ("haufen, stapel") ist ein stapel, auf den variablen abgelegt werden können. diese variablen können dann in der umgekehrten reihenfolge wieder abgerufen werden - also wie wenn man zeitungen auf einen haufen legt, kann man nur von oben wieder runternehmen.das prinzip nennt sich "LAST IN FIRST OUT" oder LIFO (im gegensatz zu einer art warteschlange, FIRST IN FIRST OUT oder FIFO).

    der stack wird benutzt, um z.B. bei verwendung von unterfunktionen oder interrupts den aktuellen systemzustand oder wichtige variablen, welche nicht verändert werden dürfen, zu "retten". dazu werdeen diese auf den stack geschoben (mit der assembler anweisung PUSH) und nach beendigung der interruptroutine wiederhergestellt (mit dem befehl POP).
    technisch gesehen stapelt der prozessor rückwärts, das unterste element des stapels liegt am letzten bytes des RAM speichers, und jedes neue element wird quasi davorgelegt.
    damit der prozessor weiss, an welcher stelle er nun gerade ist, welche stelle nun gerade gelesen oder geschrieben werden darf, gibt es den stack pointer - ein zeiger (pointer) der auf das oberste stack element zeigt. da mann diesen nicht zwingenderweise am ende des rams beginnen lassen muss, muss man ihn initialisieren - dabei wird der low-wert der letzten speicheradresse (also die hinteren 8 bit), welche den namen RAMEND trägt, in den zeiger SPL (stack pointer low) und der high teil (also die vorderen 8 bit) in den zeiger SPH (stack pointer high).

    damit ist dann festgelegt, welche stelle im ram das unterste element des stacks aufnimmt, das nächste element ist dann an der stelle davor usw.

    um die werte weider zu lesen, muss dann der stack abgebaut werden, also alle werte bis zu dem gewünschten wert werden heruntergePOPt.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test