Attiny85 Problem mit digital Input B0 u. B4

Gast #5376318
Lesenswert?
• ▲
▼
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 #5376406
Lesenswert?
• ▲
▼
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 #5376467
Lesenswert?
• ▲
▼
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 #5376471
Lesenswert?
• ▲
▼
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 #5376490
Lesenswert?
• ▲
▼
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 #5376804
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.