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 | }
|