Forum: Mikrocontroller und Digitale Elektronik miniModule C167 Tastendruck auslesen


von Hannes Weninger (Gast)


Lesenswert?

Hallo,

ich bin (noch immer) dabei einen Tastendruck auszulesen. Ich habe eine 
Taste am Port P2_10 angeschlossen und wollte mit folgendem Programm den 
Tastendruck auslesen:
1
#include <reg167.h>                                   
2
#include <stdio.h>  
3
4
sbit P2_9 = P2^9;                      
5
sbit DP2_9 = DP2^9;                    
6
7
sbit P2_10 = P2^10;            
8
sbit DP2_10 = DP2^10;         
9
10
void wait (void)  {                   
11
  ;                                   
12
}
13
14
15
16
void main (void)  {
17
18
  unsigned long i;                   
19
20
  DP2_9 = 1;                         
21
  DP2_10 = 0;               
22
23
  /*****************/
24
25
  P3  |= 0x0400;                      
26
  DP3 |= 0x0400;                      
27
                                      
28
  DP3 &= 0xF7FF;                      
29
                                      
30
  S0TIC = 0x80;                        
31
  S0RIC = 0x00;                       
32
  S0BG  = 0x40;                       
33
  S0CON = 0x8011;                     
34
35
  putchar(' ');                       
36
37
  printf ("Hello World vom Controller %d \n: ", P2_10);        
38
                                              
39
  /*****************/
40
41
42
  while (1) {                        
43
44
    P2_9 = 0;                        
45
    for (i=0; i<20000; i++) {         
46
      wait ();                         
47
    }
48
49
    P2_9 = 1;                          
50
    for (i=0; i<20000; i++) {         
51
      wait ();                         
52
    }
53
54
  // Key pressed
55
56
  
57
58
  switch  (P2 & 0x0A) {         
59
    case 0x1:   printf("Taster 0x1");
60
          break;
61
    case 0x0:   printf("Taster 0x0");
62
          break; 
63
      default:  printf("default!!!!"); 
64
        
65
    }
66
  }
67
}
Leider funktioniert das nicht. Es kommt am Hyperterminal immer 
default!!!! an egal ob ich die Taste drücke oder nicht. Ich bin mir 
nicht sicher ob ich das mit dem Switch so machen kann?
Weiß jemand was ich da falsch mache? Ich arbeite mit einem miniModul 
C167.
Besten Dank

von Peter D. (peda)


Lesenswert?

Hannes Weninger schrieb:
> Ich habe eine
> Taste am Port P2_10 angeschlossen

Das müßte 0x400 entsprechen.
Da ist ein Test auf 0 oder 1 Blödsinn.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.