MEGA128 Pin PB7 lässt sich nicht als Ausgang definieren

Gast #2349387
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
Gast #2349529
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
Angehängte Dateien:
Gast #2349617
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren