mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Butterfly; eigenes Programm funktioniert nicht


Autor: Alla P. (alla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich will einfach einen Pin auf 1 stehen lassen, nachdem schon alles 
andere (RS232 Ausgabe) nicht funktioniert. Ich habe das AVR Programm 
genommen und alles rausgeschmissen, zur Zeit sieht main.c so aus:

void disable_JTAG(void)
{
  unsigned char sreg;

  sreg = SREG;
  cli();
  MCUCR |= ( 1 <<JTD );
  MCUCR |= ( 1 <<JTD );
  SREG = sreg;
}


int main(void)
{

    disable_JTAG();

  DDRF = ( 1 << PF4 );

    while (1)            // Main loop
    {
     PORTF |= (1<<PF4);
    }
}

Eigentlich müsste ich dabei am JTAG-Connector etwas messen können (Pin 1 
und 2 laut Schematic), aber da ist keine Spannung drauf.

Noch eine Frage: ich lade einfach mein Programm rein, ohne vorher zu 
resetten. AVRProg beschwert sich nicht und sagt, es wäre geladen. 
Probeweise habe ich auch die alte Software (Rev07) wieder so 
reingeladen, sie funktioniert dann auch.
Überall steht aber, man soll das Board vorher resetten??? Ich habe auch 
probiert, die Batterie raus- und reinstecken, der Port bleibt trotzdem 
auf 0.

Kann mir jemand helfen?

Vielen Dank, Alla

Autor: Alla P. (alla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem hat sich geändert:

erst lag es am Messgerät, hatte aus Versehen kein DC eingestellt. Jetzt 
zeigt er konstant Spannung an, allerdings auch wenn ich den Pin auf 0 
setze:

PORTF &= ~(1<<PF4);

Das mit Bootloader funktioniert beim Originalprogramm nicht einfach so, 
nur über "Jump to Bootloader", bei meinem Programm allerding ohne 
Probleme. Heisst es, dass evlt. das Programm gar nicht drin ist? Bzw. er 
ist noch im Bootloader?

LG Alla

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich mich recht erinner kommt der butterfly erst in den bootloder 
mode, denn du einen reset gemacht hast und am joypad etwas drückst. ich 
vermute mal, dass dein programm gar nicht geladen wird. hast' ein oszi?

Autor: Alla P. (alla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, das war die Lösung!

Das erklärt auch, warum ich AVRProg starten konnte! Diesmal geht es 
nämlich nur nach Reset (Batterie raus).

Es funktioniert jetzt!

Wie kann man denn einfach einen Reset machen, ohne an der Batterie zu 
fummeln?

LG Alla

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reset-Pin am ISP-Anschluss suchen und Taster dran.

Autor: Alla P. (alla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, werde jemanden beauftragen (bin nicht so im Löten, reine SW :-)).

Jetzt hat sogar die serielle Übertragung geklappt (was zum Hyperterminal 
geschickt), kann ruhig Feierabend machen!

LG Alla

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avrdude bietet eine Option für "Exit Programming Mode", Parameternamen 
grade nicht erinnerlich. Damit wird das entsprechende Kommando an den 
Bootloader gesendet und das Nutzerprogramm gestartet. Das spart 
zumindest das Joystick-Up zum Start des Programms. Falls man in die 
eigene Anwendung noch ein Enter Bootloader einbaut (WD-Reset aktivieren, 
wartet bis WD auslöst), kann man sich zusätzliche Lötarbeit sparen und 
muss dennoch keinen Reset per Strom-an/Strom-aus auslösen, um in den 
BL-Modus zu gelangen.

Autor: Alla P. (alla)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber diesen Enter Bootloader muss man ja auch irgendwie auslösen und ich 
brauche zur Zeit überhaupt keinen Joystick. Sonst müsste ich dann auch 
die Tasten auswerten und noch abfragen, ob es nicht aus Versehen 
gedrückt wurde.

So ist es ja im Originalprogramm gelöst, da bietet es sich an, bei einem 
Menü... Diesen WD habe ich da schon gefunden.

Wir wollen mit dem µC eigentlich nur ein paar Daten aus dem Lasersensor 
abfragen und die auf den PC weiterschicken. Ganz simpel und dafür will 
ich keinen Aufwand mit Joystick usw betreiben.

Trotzdem danke, für die anderen ist es sicherlich interessant.

LG Alla

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.