Attiny85 Problem mit digital Input B0 u. B4

Gast #5376318
ich versuche mich gerade am attiny85.

merkwürdiges Problem: B0 bis B4 funktionieren ganz normal als output.

B2 und B3 funktionieren als Input

B0 und B4 funktionieren nicht als input. Warum?
(B1 ist die LED)
1
#define xpin 3
2

3
void main(void){
4
u8 x=0;
5

6

7
init_timer_smh();
8
DDRB &=~(1<<xpin);//in
9
PORTB|=(1<<xpin);//pullup
10

11

12

13

14
DDRB|=(1<<1);//out
15

16

17
while(1){
18

19

20
while((PINB & (1<<xpin))==0 /*|| (PINB & (1<<4))==0*/){
21
  PORTB|=(1<<1);
22
  x=1;
23
  }
24

25
  if(x==1){
26
    PORTB&=~(1<<1);
27
/*    PORTB&=~(1<<0);
28
    PORTB&=~(1<<2);
29
    PORTB&=~(1<<4);
30

31
*/    x=0;
32
  }
33
/**/
34

35
  
36
  if (timer_smh>99){
37
      
38
    sec=sec+timer_smh/100;
39
    timer_smh=timer_smh%100;
40
      if(sec>59){sec=sec-60;  min=min+1;
41
        if(min==60){min=0; hou++;
42
          if(hou==24){hou=0;}
43
        }
44
      }
45
      
46
//+++++++++++ sec ++++++++++++
47
if(sec%5==0){
48
  (PORTB|=(1<<1));
49
}
50

51
if(sec%5==1){
52
  (PORTB&=~(1<<1));
53
}
54

55
//----------- sec ------------      
56
  }  
57
  
58
}
59

60
}
Gast
Die Tiny 25/45/85 sind eher gutmütig und haben bisher alles
gemacht, was ich ihnen im Rahmen ihrer Möglichkeiten
aufgetragen habe.

Aber ich habe sie bisher auch noch nicht mit solch verquastem
Code angesprochen...

Wenn man jeden Quark um 3 Bit verschiebt, ist man aber auch
schnell jenseits von B0...B5. (Und B5 ist RESET...)
Gast
Blini schrieb:
> jeden Quark um 3 Bit verschiebt

Der Quark wird nicht verschoben sondern C-üblich maskiert.

Das Problem erinnert an den Jtag-Port bei manchen Atmegas, der PortC 
Blockiert. Muss beim Attiny85 irgendwas freigeschaltet werden?
Gast
grundschüler schrieb:

> Das Problem erinnert an den Jtag-Port bei manchen Atmegas, der PortC
> Blockiert. Muss beim Attiny85 irgendwas freigeschaltet werden?

Nein.

Allerdings kann man durchaus auf mehrere Arten dafür sorgen, dass sie 
nicht korrekt als Input funktionieren. Das hängt dann allerdings auch 
noch etwas von der Außenbeschaltung ab.

Meine Glaskugel sagt: Außenbeschaltung ist irgendwas mit Pullups/-downs 
und es liegt eine Fehlkonfiguration von Timer 1 vor, was die eigentliche 
Ursache ist.

Benutzt du Timer 1?
Moderator (Firma: Titel) Persönliche Seite
grundschüler schrieb:
> B0 und B4 funktionieren nicht als input. Warum?
Wie stellst du das fest? Was erwartest du denn, was dieser Code machen 
sollte? Und was macht er stattdessen? Wie sind die fraglichen 
Eingangspins beschaltet? Welche Pegel misst du da mit einem Messgerät 
an diesen Pins in der fraglichen Situation? Denn diese Pegel sind die 
Grundlage, mit denen der µC arbeitet...
Gast
Lothar M. schrieb:
> Wie stellst du das fest?

Die Led blinkt alle 5 secunden auf => timer und B1 funktionieren.


#define xpin 3
 wird variiert, geht nicht bei 0,4 aber bei 2,3 jeweils Taster an 
ground.



Dieses modul:
https://www.ebay.de/itm/3x-Digispark-Kickstarter-General-Micro-USB-Entwicklungsboard-f%C3%BCr-ATTINY85-TE531/152381643512?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Außenbeschaltung gibt es nicht, nur die Taster an ground.
Gast
Lothar M. schrieb:
> Es ist so unglaublich simpel: Messen!


Das wirds sein der interne Pullup bringt bei B4 nur 1,7V, an B3 5V, an 
B0 und B2 ca. 2Volt.

2Volt wird dann die Schwelle sein, bei der 0/1 geschaltet wird. Also 
externe Beschaltung ablöten oder externe pullups.

Danke für die Unterstützung.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.