-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Grundschaltung ISP

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    22

    Grundschaltung ISP

    Anzeige

    Tag zusammen,
    hab folgende grundschatung gebaut und den Code dazu geschrieben.

    Es handelt sich hier um einen USB AVR LAB von ullihome als Programmer, der microcontroller ist ein atmega 8 den ich über ISP zu programmieren versuche. Der Compiler übersetzt den code problemlos, jedoch bringe ich die led nicht zum leuchten. weiß einer vorran es liegt.

    Code:

    #ifndef MCU // Welcher AVR genutzt wird, wird i.A. im Makefile definiert
    #define MCU atmega32
    #endif

    #ifndef F_CPU // kann auch im Makefile definiert sein
    #define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer
    #endif

    #include <avr/io.h> // Namen der IO Register
    #include <util/delay.h> // Funktionen zum warten
    // Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden

    int main(void)
    {
    DDRA = _BV(0); // Nur PC0 als output, _BV(0) = (1<<0) = 1
    PORTA = 254; // Pullups auf allen anderen Pins

    while (1)
    {
    PORTA &= 255-_BV(0); // 0 auf Bit 0 Ausgeben, Rest so lassen
    _delay_ms(100); // 100 ms Warten
    PORTA |= _BV(0); // 1 auf Bit 0 Ausgeben, Rest so lassen
    _delay_ms(100);
    }
    }



    mfg
    Alex
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken scem.jpg  

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hi,

    also wenn du in deinen Code den richtigen Port schreibst funktioniert er
    Ich habe es gerade mal auf meinem RN-Control mit einem Mega32 und 16MHz getestet.
    Du verwendest diese Zeile

    DDRA
    PORTA

    aber schließt die LED an PortC an. Dann kann das nicht funktionieren
    Das hier ist der lauffähige Code. Die 100ms habe ich durch 1 Sekunde ersetzt, damit man das besser sieht.
    Code:
    /*
     * AVRGCC2.c
     *
     * Created: 09.04.2012 17:03:22
     *  Author: Daniel
     */ 
    
    #include <avr/io.h>
    #include <util/delay.h>                                                        // Funktionen zum warten
    #define F_CPU 16000000UL
    
    int main(void)
    {
    DDRC = _BV(0);                                                                // Nur PC0 als output, _BV(0) = (1<<0) = 1
    PORTC = 254;                                                                // Pullups auf allen anderen Pins
    
        while (1)
        {
            PORTC &= 255-_BV(0);                                                // 0 auf Bit 0 Ausgeben, Rest so lassen
            _delay_ms(1000);                                                    // 1000 ms Warten
            PORTC |= _BV(0);                                                    // 1 auf Bit 0 Ausgeben, Rest so lassen
            _delay_ms(1000);
        }
    }
    Alternativ kannst du den Code auch so schreiben:

    Code:
        while (1)
        {
            PORTC ^= 0x01;   
            _delay_ms(1000);
        }
    Das macht den Code etwas kleiner und du hast die selbe Funktion.

    PS: Und er ist bischen übersichtlicher
    Geändert von Kampi (09.04.2012 um 17:21 Uhr)
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    22
    Uppps, war ein copypaste fehler, weil ich davor mit port A versucht habe. Die Sache ist die,der Controller wird unter AVR Lab erkannt, kann auch die hex wählen und den controller Programmieren. Jedoch wenn ich start drücke gehen alle LEDs aus und nichts passiert mehr(Auch wenn ich die ziel ISP schaltung abklemme). Oder verstehe ich irgendwas falsch: Ich hab einen USB programmierer der hat als ausgang so einen ISP 10 pin stecker. Dann stecke ich den atmega 8 in da breadboard und bau die schaltung wie oben dargestellt auf. Jetzt verbinde die ISP Pins vom controller mit dem ISP stecker auf der Zeilschaltung. Und nun möchte ich über den Controller meine Zielschaltung programmieren. Verstehe ich das richtig oder funktioniert sowas nicht?

    mfg alex

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Ganz klar drückst du dich nicht aus.
    Du hast auf dem Breadboard die Schaltung von oben aufgebaut und möchtest den Kontroller darauf programmieren. Wenn dir dein Programmiertool (AVR-Studio?) sagt das verify ist OK, dann ist das Programm auch im Kontroller.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Also da das Problem ganz offenbar nicht am Code liegt, muss der Fehler bei deiner Hardware sein.
    Und wie Hubert schon sagt, wenn das Programmiertool auf dem PC sagt das der Verify in Ordnung ist dann ist da auch kein Fehler bei der Übertragung aufgetreten.
    Check dies mal bitte und dann (falls es nicht ok ist) check mal deine Hardware durch.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    22
    Also mein Controller hat 2 LEDs. eine status LED und eine PC Status LED. Wenn ich den Contoller anschließe. Leuchtet die gelbe Status LED. Wenn ich einen Code Programmiere(irgendwas simples wie z.b.
    Code:
    PortB.DataDirection.Bit3 = DataDirectionOutput;
    PortB.Output.Bit3 = 1;
    
    while(1)
    .......
    dann geht die Status LED aus und die Blaue PC Status LED geht an.
    Und alles funktioniert wunderbar.

    Wenn ich jedoch den oben beschriebenen Code einprogrammiere. Egal ob eine Zielschaltung angeschlossen ist oder nicht. Gehen alle LEDs aus und der controller ist nicht ansprechbar.
    Woran liegt das?

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.190
    Am Code kann es nicht liegen, den hat ja Kampi getestet.
    Als Programmer hast du das USB-LAB, was für ein Tool verwendest du? AVR-Studio?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    22
    Jo der Programmer ist das USB lab, in AVR studio schreib ich den code und die .hex lade ich mit dem AVR tool

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.588
    Hi Alex,

    hast Du nen makefile geschrieben? Könntest Du uns den mal bitte posten? Ich frage deswegen, weil ich im/fürs AVRStudio noch nie einen makefile geschrieben hatte - und das läuft trotzdem alles (bis auf Fehler die ich selbst mache). Warum ich frage? Welchen Takt hast Du im makefile eingestellt? Oder, deutlicher: schreib doch mal bitte, wie die fuses gesetzt sind. Vielleicht liegt da der Hund begraben (der im anglikanischen bug heisst, der Hund).
    Ciao sagt der JoeamBerg

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2011
    Beiträge
    22
    Hallo,

    also makefile habe ich keins geschrieben. Soweit ich weiß macht AVR studio alles selber. Fuses ist schon ne andere sache. Hab nämlich keine gesetzt uppppps weiß auch nicht wirklich wie das gehen soll. Also früher wo ich mit dem STK 500 gearbeitet habe war ja im bezug auf Fuses alles selbstverständlich. Bei dem neuen Programmer weiß ich nicht genau wie es geht

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. AVR Grundschaltung
    Von Martin. im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 31.12.2007, 00:55
  2. AVR Grundschaltung
    Von der_eine im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 03.09.2007, 15:50
  3. ADC Grundschaltung mit AVR
    Von hitn_cry im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 28.02.2007, 15:55
  4. Grundschaltung Mega128
    Von Baby2b im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 30.12.2006, 17:26
  5. avr grundschaltung
    Von ich bins im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 21.09.2006, 21:03

Berechtigungen

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