mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega8 Funktionstest?


Autor: Armin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in meine Schaltung einen Mega8 verbaut.
Er lässt sich auch programmieren, jedoch habe ich das gefühl, irgendwie 
läuft das nicht so optimal.

Wenn ich im Quellcode einen Pin auf 1 setze messe ich lediglich 0,3V 
anstelle von 5V.
Was könnten gründe dafür sein?

weiterhin verwende ich den internen Oszillator mit 8MHz.
Kann ich da irgendwo testen ob er auch mit der frequenz läuft?

Vielen Dank schon einmal

Gruß Armin

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Armin,

> Wenn ich im Quellcode einen Pin auf 1 setze messe ich lediglich 0,3V
> anstelle von 5V.
> Was könnten gründe dafür sein?

Gehen wir mal davon aus, Du hast den uC mit dem kompilierten Quellcode 
gefüttert:
 1. DDRx nicht gesetzt
 2. PORTx nicht richtig gesetzt
 3. Kurzschluss
 4. Code setzt PORTx wieder auf "0"
 5. Du hast nur kurze Impulse auf dem Pin, die Dein Messgerät nicht 
"sieht"

> weiterhin verwende ich den internen Oszillator mit 8MHz.
> Kann ich da irgendwo testen ob er auch mit der frequenz läuft?
Ehe wir das diskutieren: Wie sehen die Fuses (CKSEL0-3, SUT0-1) aus? 
Selbst wenn die Fuses den internen Oszillator mit 8 MHz definieren: die 
tatsächliche Frequenz ist recht stark spannungs- und temperaturabhängig. 
Zumindest die Größenordnung sollte aber stimmen.

Gruß

Fred

Autor: Armin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der Code sollte schon stimmen
int main(void){
    
  DDRB   |= (1<<PB7);  // output =1
  PORTB   |= (1<<PB7);
  
  for (;;) 
  {
    
  }

    return 0;
}

ich habe gerade jeden in nochmals getestet und keinen Kurzschluss 
festgestellt.

Zu den FUSE-BITS:

0xD9, 0xE4

mit CKSEL3..0 ist 0100

Kann ich denn nicht an einem XTAL-Pin die frequenz messen?

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Armin,
Dein Code sieht in Ordnung aus.

> Zu den FUSE-BITS:
> 0xD9, 0xE4
> mit CKSEL3..0 ist 0100
..und 0xD9&0b1=CKOPT=1 (=unprogrammiert), also auch OK für den internen 
Oszillator.

> Kann ich denn nicht an einem XTAL-Pin die frequenz messen?
Nö, PB7 ist ja einer der XTAL-Pins; bei CKSEL0..3=0100 ist der (bei 
ASSR=0) ja ein normaler I/O-Pin.

Methoden zur Frequenzbestimmung beschreibt Atmel in den Application 
Notes 53 ( http://www.atmel.com/dyn/resources/prod_documents/... 
) und 54.

Hast Du den richtigen Prozessor in den Compiler-Optionen spezifiziert?

Gruß

Fred

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.