ATmega8 PB1 funktioniert nicht

OP #3461401
Lesenswert?

Hallo zusammen,

leider tut dieser sehr einfache Code:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  TCCR1A = 0;
6
  TCCR1B = 0;
7
  DDRB = 255;
8
  PORTB = 255;
9
  
10
    while(1)
11
    {
12
        
13
    }
14
}

auf meinem ATmega8 nicht das was er soll. Es werden alle Pins des Ports 
B auf High gesetzt, mit Ausnahme von PB1. Ich hatte dieses Problem schon 
mal bei einem ATmega8, soweit ich mich erinnern kann hing das Problem 
mit dem Timer 1 zusammen, da PB1 gleichzeitig mit OC1A belegt ist. Ich 
meine damals EINMALIG irgendein Register zurückgesetzt zu haben, nachdem 
der Code einmal auf dem ATmega lief, war dieses zurücksetzen nicht mehr 
nötig (im Code ist zu sehen, dass ich die beiden Control Register von 
Timer 1 schon auf 0 gesetzt habe, leider ohne Erfolg). Da ich diesen 
ATmega aber gestern zerschossen habe und einen neuen genommen habe, geht 
es leider wieder nicht.

Jemand eine Idee?

Vielen Dank
ISP
Gast #3461411
Lesenswert?

Hi

>Ich hatte dieses Problem schon
>mal bei einem ATmega8, soweit ich mich erinnern kann hing das Problem
>mit dem Timer 1 zusammen, da PB1 gleichzeitig mit OC1A belegt ist.

Nach einem Reset ist der Timer deaktiviert. Also TCCR1A und TCCR1B *sind 
* auf Null. Daran kann es also nicht liegen.

MfG Spess
Gast #3461451
Lesenswert?

IS P. schrieb:
> #include <avr/io.h>
>
> int main(void)
> {
>   TCCR1A = 0;
>   TCCR1B = 0;
>   DDRB = 255;
>   PORTB = 255;
>
>     while(1)
>     {
>
>     }
> }

Hab das mal auf einem ATmega32 getestet und was soll ich sagen, funzt so 
wie es soll. Sollte auch auf einem Atmega8 funktionieren leider hab ich 
gerade keinen.
Vllt solltest du mal die Fuses checken was da eingestellt ist.

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