- 12V Akku mit 280 Ah bauen         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: ATmega48 Probleme unter AVR Studio4 - bin ich allein?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    475

    ATmega48 Probleme unter AVR Studio4 - bin ich allein?

    Anzeige

    Praxistest und DIY Projekte
    Hallo Forum,

    ich habe ganz massive Probleme mit dem ATmega 48 in AVR Studio 4.
    Ich versuche mit dem Timer1 klar zu kommen. Ich habe dabei beachtet, dass er zwar weitgehend pingleich mit Mega8 ist, jedoch viele Registerbeziechnungen und Bitmuster anders sind. Auch in den Projektoptionen habe ich mich schon ein dutzend mal versichert, dass der 48er ausgewählt ist.

    Erscheinungen:
    - ich kann ihn z.B. nicht dazu bringen, einen ICR Interrupt bei steigender Flanke auszuführen. Das passiert konsequent bei fallender.

    - In der ISR des Input Intrerruptes will ich auf Compare Match A umschalten. Das geht ums verrecken nicht.

    - In Main mache mache ich eine Abfrage ob TCNT1 >= 40000 ist. Wenn ja, halte ich den Timer an, um einen Überlauf zu verhindern. Jedoch lösche ich den Inhalt nicht. Den brauche ich als lange Pause zum synchronisieren in der ISR. Dort kriege ich den Timer aber nicht wieder ans laufen. Ich machs jetzt so, dass ich statt ihn anzuhalten immer wieder den Wert 40000 reinschreibe.

    Und auch sonst tauchen immer wieder Merkwürdigkeiten auf. Da gehen Pins High, die im Quelltext mal existiert habe, aber gelöscht wurden, oder reagieren gar nicht.


    Wayens interessiert, die ISR´s
    Code:
    SIGNAL (TIMER1_CAPT_vect)
    {
    
    if (TCNT1 >= 40000){
    	PORTB = 0b00001000;// zum debuggen mittels Digitalanalyzer - bis hier hin klapps
    	edge_counter = 0;
    	TCCR1B = 0b00000001;// try and error fehlersuche
    	TIMSK1 = 0b00000010;// enable OCR1A int
    	TCCR1B = 0b00000001;// try and error fehlersuche
    	OCR1A = 500;
    }
    TCNT1 = 0;
    edge_counter++;	
    }
    
    SIGNAL (TIMER1_COMPA_vect) 
    { 
    TCNT1 = 0;
    TIMSK1 = 0b00100000; // enable cmp int
    PORTB = 0;// zum debuggen mittels Digitalanalyzer - bis hier klapps nicht 
    }
    und Wayens noch weiter interessiert, ich beschäftige mich mit dem Summensignal aus dem RC Modellbau. Das soll ein Generator werden, der aus bestimmten Gründen, ein eingelesenes PPM Signal mit einbeziehen soll.

    EDIT:
    ich habe auch gesehen, dass sich im AVR Prog aks Device kein 48er auswählen lässt. Habe jetzt immer mit Mega8 geflasht. Hatte da auch schon erscheinungen, wenn ich z.B. auf internen RC Oszillator 4 MHz umgestellt habe, dass der Controller einfach tot war. In Extern High Frequency zu schalten geht zum Glück.

    viele Grüße,
    Jasson

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Deinem Code nach verwendest du noch eine ältere Version von AVR-GCC und AVR Studio.
    Du solltest dir mal eine neuere Version oder die entsprechenden Service-Packs herunter laden.
    http://www.mikrocontroller.net/articles/AVR-Studio
    Einen Mega48 als Mega8 zu flashen gibt sicher ärger.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man beim Programmieren den Mega48 nicht auswählen kann, dann sollte man sich um eine Update kümmern. Als Ersatz würde ich eher einen Mega88 oder so wählen, den wird es aber vermutlich auch nicht geben. Sonst lieber statt AVRProg einfach AVRDude oder den Programmer in Bascom wählen. Da gibt es den Mega48 usw.

    Ist das Noch eine alte Version von GCC. "Signal" ist für die alten Versionen (3.xx) - schon seit ein paar Jahren gibt es aber 4.xx Versionen - da hat sich was geändert. Normal sollte es dann aber wenigstens Warungen geben.

    Ein beliebter Fehler bei Interrupts ist es das Volatile zu vergessen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    475
    Hey ya!!

    Danke für die Antworten, wie es scheint, komme ich um den AVR Dude nicht herum. Ich habe die Updates und SP´s installiert, aber im AVRProg kann ich den 48er noch nicht finden.

    Gibt es denn eine Möglichkeit, an den Dude ranzukommen, ohne WinAvr laden zu müssen? Hatte das jetzt immer nur in Kombination gefunden.

    Danke schön!!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    475
    Naja, stimmt nicht ganz. War eben da:

    http://www.nongnu.org/avrdude/

    und bin dort in das download area gegangen. Nur was da das richtige ist eröffnet sich mir nicht. Ich habe jetzt auch schon einige "Dudes" runtergeladen. Bei einem finde ich aber kein install.exe oder ähnliches sondern nur .h und.c files. Ein anderes flackert kurz auf und schließt sich sofort wieder. Also es ist kurz so etwas wie eine Commandbox zu sehen, macht ja auch Sinn, nach dem was ich gelesen habe. Aber ich krieg es nicht so richtig ans laufen.

    Und was ich noch nicht so ganz eingeordnet habe sind die Schritte in denen ich vorgehe. Zum Beispiel: 1.) AvrDude installieren, 2.) GUI installieren...

    Ich habe mich auch um die Suchfunktion bemüht, aber so wirklich die passenden Infos bekomme ich nicht.

    The Man ( jetzt gerade nicht ganz so "man-ig" ^^)

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Warum verwendest du das AVR-Studio nicht auch zum Programmieren des Kontroller?
    Oder hast du keinen Programmer den das AVR-Studio unterstützt?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Zitat Zitat von The Man
    ... habe die Updates und SP´s installiert, aber im AVRProg kann ich den 48er noch nicht finden ...
    Ohne Angabe, welche Version vom AVRStudio Du jetzt fährst, hilft es sich schlecht.

    ............Bild hier  

    Diese Version (siehe Bild) ist von 2009 und da gabs den 48er schon drin. Bitte zu den Flashprogrammen genauere Angaben.
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    475
    Hi Leute, danke für die große Anteilnahme!!

    Ich habe jetzt mal das Programm auf den Mega8 zurück adaptiert. In einem neuen Projekt wohlgemerkt, um Evantualitäten zu beseitigen.

    Auch hier hab ich "strange" Probleme. Hier mal ein Bild dazu, dass sicher mehr sagt, als 1k Worte (nerdi, ich weiß^^)

    https://storage.driveonweb.de/dowdoc...9382b4ea17.jpg


    Die Version ist 4.18. Build 716.
    Habe gestern das neueste runtergeladen und auch das SP 3 hinzugefügt. In den Projekt Properties kann ich den 48er auch auswählen nur eben im AVRProg nicht.
    Aber den obigen Versuch berücksichtigend, glaube ich eh, das da was hinüber ist.

    Ich mach mal Sicherungskopien von allem, lösche das AVR Studio komplett und installiere ganz neu.

    Mal sehen,
    see you Space Cowboy

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Ähhhhh - bitte was ist AVRProg ? Ein Button, ein Programmteil das ich noch nicht kenne?

    Das Bild von oben mit der mega48-Anzeige kommt nach Druck auf den Button [Display the 'Connect' Dialog] in der Werkzeugkiste STK500.

    Mir ist immer noch nicht klar, welchen Programmer Du verwendest. Hast Du das Posting von Hubert.G oben gelesen?
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Du hast die Frage nach dem Programmer noch nicht beantwortet.
    Das ganze neu zu installieren ist sicher nicht schlecht, wird aber kaum was bringen.
    Hast du in deinem Programm die Variable edge_counter als volatile deklariert?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test