-
        

Ergebnis 1 bis 10 von 10

Thema: Läuft mein AVR ??

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2007
    Beiträge
    21

    Läuft mein AVR ??

    Anzeige

    Hi, bin gerade dabei mich in Assembler einzuarbeiten und hab mir dazu auch da RN Controll 1.4 Board aufgebaut. Jetzt hab ich mit AVR Studio ein triviales Programm geschrieben. Es sollen nur die Ports PortC0 und PortC1 auf low gezogen werden, damit die beiden LED's leuchten.

    Hier das Programm:

    Code:
    Main:
    ; Initiire Stapel
        ldi rmp, HIGH(RAMEND) ; Initiiere MSB Stapel
        out SPH,rmp
        ldi rmp, LOW(RAMEND) ; Initiiere LSB Stapel
        out SPL,rmp
    ; Initiiere Port C
        ldi rmp,0b11111111 ; Richtung Port A
        out DDRC,rmp
    
    ;
    ; ============================================
    ;     P R O G R A M M - S C H L E I F E
    ; ============================================
    ;
    Loop:
    
        ldi rmp,0b11111100
        out PORTC,rmp
        rjmp loop ; Zurueck nach Loop
    Das programmieren über ISP hat auch gleich funktioniert nur wenn ich jetzt den ISP stecker abziehe und auf reset drücke passiert rein garnichts...

    Beim nachmessen der Spannungen am portc ergaben sich meistens 4,5V manchmal auch 3,irgendwas -> undefinierter zustand ?? Der Port müsste aber doch laut programm definiert sein ?? Hab auch an irgendwelchen Fuse Bits nix gemacht ist ein ganz neuer prozessor und müsste doch dann mit seinem internen takt laufen ?? (trotz angeschlossenem externen quartz)

    Is warscheinlich nur ein extrem dummer anfängerfehler, wenn ich jedenfalls den Port per Drahtbrücke nach masse ziehe leutet die LED also kanns schon ma kein Lötfehler oder so was sein.

    Dann noch eine andere Frage:

    Muss ich immer wenn ich nicht am programm übertragen bin den ISP Programmer vom board trennen ? Im moment ist der programer so eingestellt das er das Board nicht mit spannung versorgt. Kann ich also auch alternativ die Spq. quelle vom board trennen und dann am Programmer einstellen er soll das Board mit spannung versorgen ? und soll ich dann 3,3 oder 5V versorgungsspannung beim Programmer wählen ?

    Denk mal die sache wird nich alzu knifflig, vielen dank

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,

    falls etwas an PORTC faul ist, ist meistens die JTAG-Fuse noch gesetzt, das solltest du einmal kontrollieren (Erfahrung?). JTAG wird eben an bestimmten Pins von PORTC heraus geführt. Bei einem "neuen" Prozessor ist diese Fuse immer standardmäßig gesetzt.

    Kannst du Programm-/Compilerfehler ausschließen?

    Grüße, Bernhard

    PS: JTAG ist eine Schnittstelle, um den Controller debuggen zu können, also um während des Betriebs Registerinhalte etc. auslesen zu können und vieles mehr...

    [[EDIT]]: PORTC,0 und PORTC,1 gehören nicht zu JTAG sondern zum I2C-Interface, ob die Fuse dann noch was ändert?? Ist es trotzdem einen Versuch wert? Aber Achtung, bei den Fuses kann man schnell mal was falsches einstellen und der µC ist dann evtl. nicht mehr ansprechbar...
    Geändert von BMS (10.05.2011 um 22:53 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Beim Mega32 ist an den Pins vom PC2 bis PC5 der JATG Port. Den müßte man ggf. vorher deaktivieren.

    Wenn die Fuses auf internen Takt stehen, so wie bei einem neuen µC, dann läuft der interne Takt, unabhängig davon was an dem XTAL Pins hängt. Der µC der mit dem RN Control kommt müßte aber schon programmiert sein: ein Bootloader und auch schon den externen Takt nutzen.

    Ob man den ISP Programmer abziehen muss hängt vom Programmer ab. Es gibt welche die ISP Anschlüsse am Programmer trennen können. Die Verbindung kann dann bestehen bleiben.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2007
    Beiträge
    21
    Hallo,

    du hattest recht das jtag fuse war noch gesetzt und ich hab es abgeschaltet, aber es hat sich leider nichts an der situation geändert.

    Beim kompilieren kommt kein fehler raus und die simulation liefert folgendes:
    Klicke auf die Grafik für eine größere Ansicht

Name:	prog.JPG
Hits:	6
Größe:	31,7 KB
ID:	18777

    Also gesamter Port C als Ausgang und die Pins 0 und 1 auf low, rest auf high.

    Trotzdem messe ich an den Pins 0 und 1 jeweils 4,9 V

    Den µC hab ich nicht mit dem RN Controll bezogen, er ist also komplett unberührt.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    versuche doch einmal, andere Pins als PORTC,0 und PORTC,1 zu schalten und hänge dann die LEDs dran. Vielleicht funktioniert das ja.
    Grüße, Bernhard

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    46
    Beiträge
    362
    Was mich ein wenig stört.
    Wo ist der Sprungeintrag für den Reset der bei Adresse 0 im Flash, also im Programmspeicher stehen sollte ?
    Hiermal ein Auszug für einen ATtiny13

    Code:
    .include "tn13def.inc"        ;Label Zuweisungen
    ;
    ;Programmspeicher initialisieren
    ;
    .CSEG              ;Code Segment
    .ORG    $0000   ;Programm beginnt bei Adresse 0
    ;
    ;Programmstart mit Interrupt Vektoren
    ;        
    rjmp Anfang     ;(RESET) External Pin, Power-on Reset, Brown-out 
    reti                ;(INT0)External Interrupt Request 0
    reti                ;(PCINT0) Pin Change Interrupt Request 0
    reti                ;(TIM0_OVF) Timer/Counter Overflow 
    reti                ;(EE_RDY) EEPROM Ready
    reti                ;(ANA_COMP) Analog Comparator
    reti                ;(TIM0_COMPA) Timer/Counter Compare Match A
    reti                ;(TIM0_COMPB) Timer/Counter Compare Match B
    reti                ;(WDT) Watchdog Time-out
    reti                ;(ADC) ADC Conversion Complete
    ;
    ; Hier Startet das Programm bei einem Reset
    ;
    Anfang:    ldi   r16,$FF            ;Zählerwert laden...
                  ...
    Bernd_Stein

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    falls du den Sprungmarker suchst, der ist in der Prozessorarchitektur verankert (initial 0 nachm reset)
    falls du den jump-Befehl dahin suchst, der wird nie ausgeführt, das passiert eben durch das reset

    oder ha ich die Frage falsch verstanden ?
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2007
    Beiträge
    21
    Hallo, ja den Reset Vector hab ich natürlich auch drinn:

    Code:
    ; ==============================================
    ;        R E S E T    V E K T O R
    ; ==============================================
    ;
    .CSEG
    .ORG $0000
        jmp Main ; Reset-Vektor
    ;
    ; ============================================
    ;    H A U P T P R O G R A M M    I N I T
    ; ============================================
    ;
    Main:
    naja werd gleich mal die anderen ports ausprobieren mal sehen ob die funktionieren...

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.383
    ich "glaube" ich versteh was du meinst, da stehts doch in der ersten zeile nach den kommentaren, "rjmp Anfang" und ganz am ende "Anfang:"

    ein jump auf den "Anfang" Marker

    aber ich habe gerade beim Studium der Beschreibung und des Schaltplans die Widerstände R14 und R13 entdeckt, die über 10k an +5V anliegen! Ich versteh nicht ganz warum der die Leitung nicht runterzieht, aber es scheint, dass er nicht vernünftig auf Out steht!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    09.05.2007
    Beiträge
    21
    jetzt gehts endlich !! war wohl gestern doch was mit dem einem fuse bit schiefgelaufen Jetzt läufts aber

Ähnliche Themen

  1. Mein YETI Roboter läuft schief
    Von Physiognom im Forum Yeti
    Antworten: 1
    Letzter Beitrag: 30.03.2009, 21:08
  2. [läuft+Code] Servotest an ATtiny13 läuft nicht
    Von oberallgeier im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 18.10.2007, 17:49
  3. Warum läuft mein Prog nicht?
    Von Elmar.Rieke im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 3
    Letzter Beitrag: 25.01.2006, 09:07
  4. Antworten: 3
    Letzter Beitrag: 15.08.2005, 17:41
  5. Hilfe!!! Mein Programm läuft nicht so wie ich will
    Von MrQu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 25.10.2004, 00:28

Berechtigungen

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