mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Umstieg von Atmega8 auf Atmega168


Autor: Rico Heinrich (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wegen des größeren Flashspeichers möchte ich auf einen Atmega168 
umsteigen, aber der 168 reagiert überhaupt nicht. Selbst ein völlig 
simples Programm bringt nicht das gewünschte Ergebnis, das gleiche 
Progamm läuft auf dem Atmega8  problemlos und setzt den Pin auf high.

Woran könnte es liegen?

Viele Grüße
Rico

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du die Vektortabelle geändert?

Gruss Otto

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den richtigen Typ im AVR-Studio eingestellt?

MFG
Falk

Autor: Rico Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vektortabelle?

Welche Vektortabelle meinst du, die ich da noch ändern muss.


Im Studio ist der richtige Typ eingestellt, der Atmega168.

Gruß
Rico

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube da gibts von Atmel Application Notes dazu:
AVR094 und AVR095

Grüße

Paul

Autor: AntonU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Meiner Meinung nach, gibt es nicht weniger als zwei Varianten:
1) Wie Otto sagt - das Problem mit Vektortabelle von Interrupt. M168 und 
M8 verschiedene Vektortabellen haben. So es ist moeglich, dass du die 
Interruptvektoren nicht geaendert hast?
2) Das Problem mit der Registeren. Einige Register in M168 und M8 
koennen verschiedene Biten haben. Z.B. in M8 FOC1A und FOC1B sind im 
Register TCCR1A, und in M168 - in TCCR1C

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lässt Du denn Dein Programm so laufen, wie es im angehängten Code ist? 
Mit den auskommentierten Codezeilen? Dann wäre es kein Wunder, das 
nichts geschieht.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um die Vektortabelle kümmert sich in C der Compiler, vorausgesetzt 
natürlich, der richtige Controller-Typ ist im Makefile bzw. AVRStudio 
eingestellt.

Allerdings dürfte das Programm so wie es oben steht tatsächlich weder 
auf nem Mega8 noch auf nem Mega168 etwas Sinnvolles machen, wie 
Patrick schon angedeutet hat.

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal das Programm.

#define F_CPU 14745600

#include <avr/io.h>
#include <util/delay.h>

int main()
{
  unsigned char i;

  DDRB = 0xFF;

  while( 1 ) {

    PORTB |= (1 << PB0);


    for( i = 0; i < 50; i++ )
      _delay_ms( 10 );


    PORTB &= ~(1 << PB0);


    for( i = 0; i < 50; i++ )
      _delay_ms( 10 );

  }
}


Ein einfaches Blinklicht mit delay. Läuft auf nem 48/88/168 wenn der 
richtige Controller eingestellt wurde.

PS: Anstatt nem delay lieber nen Interrupt verwenden.


Gruß

Autor: Rico Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ersteinmal Danke an alle! DANKE!

Ich habe das Problem gelöst. Ihr habt recht mein Code macht wenig 
sinnvolles, sollte er aber auch nicht, sondern lediglich den Pin PB0 auf 
High setzen.

Der Fehler lag aber wo anders, ich hatte dem Compiler nicht bekannt 
gegeben das ich jetzt mit dem Atmega168 statt dem Atmega8 arbeite. Ich 
habe also jetzt ein neues Project angelegt und jetzt funktioniert es!

Nochmal Danke für die Hilfestellungen.

Viele Grüße
Rico

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.