Forum: Mikrocontroller und Digitale Elektronik Mega8 Funktionstest?


von Armin (Gast)


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

von Fred S. (Gast)


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

von Armin (Gast)


Lesenswert?

Also der Code sollte schon stimmen
1
int main(void){
2
    
3
  DDRB   |= (1<<PB7);  // output =1
4
  PORTB   |= (1<<PB7);
5
  
6
  for (;;) 
7
  {
8
    
9
  }
10
11
    return 0;
12
}

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?

von Fred S. (Gast)


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/doc2555.pdf 
) und 54.

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

Gruß

Fred

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.