AVR Butterfly; eigenes Programm funktioniert nicht

OP #1237460
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
OP #1237649
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
Gast #1237685
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?
OP #1237703
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
Moderator Persönliche Seite #1238132
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.
OP #1238163
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.