-         

Ergebnis 1 bis 10 von 10

Thema: Simulator Funktioniert nicht ?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.12.2008
    Beiträge
    30

    Simulator Funktioniert nicht ?

    Anzeige

    Hi alle zusammen,
    ich bin noch ganz frisch hier und hab schon die ersten Probleme ich verusch mich schon seid Tagen durch verschiedene Tut's durchzuarbeiten auch hier von der Seite aus aber es klappt nicht. Das einfachste Programm eine LED anzusteuern geht nicht , was in den zeilen steht das man die Port als ausgang oder eingang einstellen muss das hab ich ja verstanden aber wenn ich das Programm Simulieren will geht's nicht. Ich hab es mit dem AVR-Studio Simulator versucht und mit dem AVR-Simulator von oshnsoft aber die Led's leuchten net.
    Code:
    .NOLIST                    ; List-Output unterdrücken
     .INCLUDE <m8def.inc>       ; das gibt es für jeden Controllertyp
     .LIST                      ; List-Output wieder aufdrehen
     .CSEG                      ; was nun folgt, gehört in den FLASH-Speicher
    
    
     ;------------------------------------------------------
     ;     Start Adresse 0000
     ;------------------------------------------------------
     RESET:
         jmp INIT           ; springen nach "INIT"
    
     ;------------------------------------------------------
     ;     ISR VECTORS
     ;------------------------------------------------------
     ;    .....    hier kommen dann die Sprungadressen für die Interrupts rein
     ;             dazu kommen wir noch
    
    
     .ORG INT_VECTORS_SIZE    ; dadurch haben wir für die Vektoren Platz gelassen
     INIT:  
     ;------------------------------------------------------
     ;     INITIALIZE
     ;------------------------------------------------------
         ldi r24,high(RAMEND)     ;Stack Pointer setzen 
         out SPH,r24              ; "RAMEND" ist in m8def.inc (s.o.) festgelegt
         ldi r24,low(RAMEND)      ; 
         out SPL,r24              ;
    
     ;------------------------------------------------------
     ;   eigene Initialisierungen
     ;------------------------------------------------------
     ;....
     ;....
     ;....
    
     ;------------------------------------------------------
     ;   HAUPTSCHLEIFE
     ;------------------------------------------------------
     Hauptschleife: 
     ;....   eigene befehle
     ;....   eigene befehle
     ;....   eigene befehle
            rjmp Hauptschleife         ; immer wiederholen 
    
     ;------------------------------------------------------
     ;   ENDE
     ;------------------------------------------------------
     Ende:  
            rjmp Ende
    Bei diesem Code der aus dem Tut von Roboternetz ist meckert er immer
    jmp INIT nicht Richtig also AVR-STudio assembliert es nicht und wenn ich es in rjmp umändere macht er es zwar aber die led leuchtet net kann mir bitte einer helfen.
    Mfg P.Gnauck

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Hi,

    deine LED leuchtet nicht, weil deine Hauptschleife leer ist.

    Dein programm läuft so ab:

    du springst in die Init, initialisierst dort den stack und dann springst du in die Hauptschleife und bleibst da, aber machst einfach nix mehr.

    Da fehlt einfach der Code.

    So wies aussieht, is des nur ein Grundgerüst für ein Programm, des aber noch nix macht.

    mfg robin

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das mit dem RJMP und JMP läßt sich aufklären:
    RJMP ist ein normaler kurzer Befehl, also 1 Word = 2 Bytes lang.
    JMP ist ein langer Befehl, also 2 Word = 4 Bytes lang. Außerdem ist der beim Mega 8 gar nicht definiert, denn gar nicht nötig. Es ist also OK das AVRstudio meckert. Beim anderen Assembler könnte es sein das entweder JMP gleich durch RJMP ersetzt wird, oder das der falsche Code mit einem JMP erzeugt wird.

    Das gezeigte Programm tut ja irgendwie auch gar nichts. Und außerdem, wie sollen denn da LEDs leichten im Simulator ?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    17.12.2008
    Beiträge
    30
    Ich benutze zum Simulieren den Simulator von oshnsoft und da kann man verschiedene sachen anzeigen lassen wie auch LED's usw aber was muss ich denn jetzt schreiben damit die Leuchten kann also zumindestens damit eine Leuchtet ??

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Was man machen muß damit die LEDs leuchten, hängt davon ab, wo und wie die LEDs angeschlossen sind. Wenn die LEDS an einem normalen Port hängen, dann muß man halt den Port (oder wengstens die passenden Pins) erst mal auf Ausgang setzen ( z.B. für Port B: LDI temp,255 und out DDRB,temp) und dann halt was passendes in das Ausgabe register (z.B. PORTB) schreiben.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    17.12.2008
    Beiträge
    30
    Ja es hat geklappt ich hab in das stück fürs hauptprogramm einfach
    Code:
      
    ldi r16, 0xFF      
    out DDRB, r16
    ldi r16, 0b11111100
    out PORTB, r16
    Ist es eigentlich egal ob ich Binär Code oder hex verwende macht das was aus also vom Programmablauf her ? =D>

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Hi,

    ob du Binär oder Hex schreibst ist egal, sin für den Compiler später auch nur Bits.

    Falls du ein gutes Tutorial zu AVR-Assembler brauchst, dann kann ich dir dass hier empfehlen:

    http://www.mikrocontroller.net/articles/AVR-Tutorial

    Da is eigentlich alles drin erklärt und auch jede Menge Beispielcode für nen Mega8. Wenn du nen anderen Controller verwenden musst, musst du halt was abändern.

    Mfg robin

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    17.12.2008
    Beiträge
    30
    Das tuorial ist richtig gut nur mein Problem ist Endlisch ist nicht ganz meine stärke und wenn ich mir die Pdf Datei anschaue wo die ganzen Befehle drinn stehen, dann versteh ich nur bahnhof z.b

    LD / Rd,k

    Was heißt denn nun das Rd und das k das k gibt es in groß und klein das versteh ich nicht so ganz.
    Gibt es die Befehlsliste nicht in Deutsch ?

  9. #9
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Befehlsbeschreibungen nutzen eine relativ beschränketen Wortschatz. Da sollte man sich eigentlich relativ schnell dran gewöhnen können. Im Zweifelsfall sollte man das als Übung fürs Englich ansehen, auch wenn das unbedingt perfektes Englisch ist.

    Im Zweifelsfall ist ohnehin die Beschreibung mit mathematischen Symbolen die zuverlässigere (weil eindeutig).

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    17.12.2008
    Beiträge
    30
    Ja ok quasi Vokabeln raussuchen übersetzen und üben aber was heißen denn nun diese abkürzungen rd , k usw das versteh ich nicht ?

Berechtigungen

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