Forum: Mikrocontroller und Digitale Elektronik MEGA128 Pin PB7 lässt sich nicht als Ausgang definieren


von Tom (Gast)


Lesenswert?

Hallo Zusammen,

ich habe folgende Hardware zwei Boards jeweils mit einem Mega128 zur 
Programmierung verwenden ich AVR Studio mit GCC.
Programmiersprache C.

Ich habe folgendes programmiert
1
main {
2
   unsigned int r;
3
   DDRB |= (1<<DDB0);
4
   DDRB |= (1<<DDB1);
5
   DDRB |= (1<<DDB2);
6
   DDRB |= (1<<DDB3);
7
   DDRB |= (1<<DDB4);
8
   DDRB |= (1<<DDB5);
9
   DDRB |= (1<<DDB6);
10
   DDRB |= (1<<DDB7);
11
   for(;;) {
12
       if(r==30000){
13
          PortB ^= (P1<<PB0);
14
          PortB ^= (P1<<PB1);
15
          PortB ^= (P1<<PB2);
16
          PortB ^= (P1<<PB3);
17
          PortB ^= (P1<<PB4);
18
          PortB ^= (P1<<PB5);
19
          PortB ^= (P1<<PB6);
20
          PortB ^= (P1<<PB7);
21
       }
22
       r++;
23
   }
24
}

Beim ersten Board habe ich nur eine ISP Schnittstelle daher kann ich nur 
den Mega programmieren, aber das Programm läuft.

Spiele ich nun das gleiche Programm auf mein zweites Board läuft das 
Programm nicht los.
Habe nun dank der vorgesehenen JTAG Schnittstelle den JTAGICE2 mal 
verwendet und das programm im Debug Mode laufen lassen.

Hierbei muss ich feststellen das das Programm läuft bis zur Stelle
 "DDRB |= (1<<DDB7);" dann gibt es zwei Möglichkeiten.

1 Möglichkeit:
Der Ablauf bricht ab und Beginnt wieder am Anfang zu 99% der Fall.

2 Möglichkeit:
Die Bits 0 bis 6 werden gesetzt wie programmiert beim Bit7 springt das 
Programm weiter jedoch werden alle Bits zurückgesetzt  oder gesetzt 
fünfzig fünfzig.

Dann läuft aber auch das Programm.

An was kann das liegen and Pin ist ein Transistor angeschlossen der ein 
Relai schaltet.
Beim ersten Board habe ich einen Treiberbaustein der eine LED ansteuert 
da ich dieses als Testboard verwende.

Fuse Bits sind auf beiden Boards gleich.

Hat jemand eine Idee

Danke

TOM

von g457 (Gast)


Lesenswert?

> An was kann das liegen and Pin ist ein Transistor angeschlossen der ein
> Relai schaltet.

Am Relais bzw. an den Störungen die dadurch verursacht werden.

HTH

von Tom (Gast)


Lesenswert?

Hallo,

ich habe das Relai schon entfernt jedoch ohne Erfolg Fehlerbild bleibt 
gleich.


Tom

von Floh (Gast)


Lesenswert?

Tom schrieb:
> ich habe das Relai schon entfernt jedoch ohne Erfolg Fehlerbild bleibt
> gleich.

Schaltplan?

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Habe jetzt mal den Transistor ausgelötet der das Relai und nun scheind 
es zu funktionieren.

Vielleicht sieht ja jemand ob etwas falsch ist an der Ansteuerung des 
Transistors.

Hat jedoch bei der ersten Version der Leiterplatte immer funktioniert.

Danke schon mal für die Vorschläge bin schon gespannt.

Thomas

von Klis Tier (Gast)


Lesenswert?

Tom schrieb:
> Habe jetzt mal den Transistor ausgelötet
kaputt oder aus Versehen pnp eingebaut?

von g457 (Gast)


Lesenswert?

..oder die Freilaufdiode verpolt?

von Tom (Gast)


Lesenswert?

@all,

Ich habe den Transistor nur ausgebaut um diesen prüfen zu können, 
Funktion OK und auch NPN sollte also alles passen.

Freilaufdiode ist auch richtig gepolt.

Ich habe nun das auch mal ohne Transistor laufen lassen jedoch läuift 
die Initialisierung durch doch bricht das Programm immer ab und startet 
neu also auch das hat nicht den Erfolg gebracht.
Ich habe nun nur eines bemerkt, den uC gelöscht und die Spannung an den 
Portpins gemessen und da hat PORTB auf allen Pins ca.4.5Volt.
PORTF z.B hat 0Volt.
Auch mein Testboard hat nach dem Löschen beim PORTB 0 Volt.

Was ist eigentlich normal wenn kein Externer Pullup am Pin angeschlossen 
ist nach einem Reset und einem gelöschten uC.

0Volt oder 5 Volt?

Tom

von Thomas E. (thomase)


Lesenswert?

Tom schrieb:
> 0Volt oder 5 Volt?

Weder noch. Sondern ein offener Eingang.

Wie ist denn dein Timer2 eingestellt?

mfg.

von Tom (Gast)


Lesenswert?

Hallo Thomas,

den Timer2 habe ich nichts eingestellt also Standardeinstellung.

MfG

Tom

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.