Hi
Du musst nicht zwingend einen Interrupt benutzen um auf einen Taster zu 
reagieren.
Hast du schon mal im Datenblatt des PICs im Kapitel "I/O-Ports" etwas 
nachgelesen? Dort steht eine beschreibung der TRIS und PORT register.
Dort siehst du den Aufbau des TRIS-Registers. und darunter steht:
| 1 | 1 = PORTA pin configured as an input (tri-stated)
 | 
| 2 | 0 = PORTA pin configured as an output
 | 
Also... wenn du jetzt zb den Wert "0b0000 1111"(0x0F) in das 
TRISA-Register schreibst, dann ist des höherwertige Nibble(RA4 - RA7) 
als Ausgang und das niederwertige Nibble(RA0-RA3) als Eingang 
geschalten.
Sagen wir einmal an RA0 ist ein Taster( beim Betätigen wird geht er auf 
0) und  an RA1 ist eine LED( bei 1 Leuchtet sie). Dann musst du 
folgendes machen:
| 1 | TRISA = 0x01; // TRISA0 wird auf 1 gesetzt->RA0 = input, other output
 | 
| 2 | while(1){
 | 
| 3 |  while( !(PORTA && 0x01) )
 | 
| 4 |   { 
 | 
| 5 |    //Hier liest du den PORTA ein und maskierst in 
 | 
| 6 |    //mit 0x01... damit erhältst du genau das Bit0 
 | 
| 7 |    //des PORTA-Resgister-- sprich den Zustand an RA0
 | 
| 8 |    //Da aber der Taster 0 zurückgibt wenn er betätig wird, musst du halt
 | 
| 9 |    // das ergebnis invertieren
 | 
| 10 |   PORTA = 0x02;
 | 
| 11 |   //eventuell gehört hier nich eine kleine Pause hinein->read-modify-write
 | 
| 12 |   }
 | 
| 13 | PORTA=0;
 | 
| 14 | }
 | 
Soderla... normal sollte das funktionieren... getestet hab ichs aber 
nicht ;-)
Aja.. damit das Funktioniert, musst du das PORTA und das TRISA-Register 
zuerst definieren:
| 1 | #byte TRISA  = 0x85
 | 
| 2 | #byte PORTA  = 0x05
 | 
| 3 | #bit  RA0    = PORTA.0
 | 
| 4 | #bit  RA1    = PORTA.1
 | 
Mit den Letzten 2 Zeilen kannst du dan Bitweise zugreifen. Dann würde 
der Code wie folgt aussehen:
| 1 | TRISA = 0x01; // TRISA0 wird auf 1 gesetzt->RA0 = input, other output
 | 
| 2 | while(1){
 | 
| 3 |  while( !(RA0) )
 | 
| 4 |   { 
 | 
| 5 |     RA1 =1;
 | 
| 6 |   //eventuell gehört hier nich eine kleine Pause hinein->read-modify-write
 | 
| 7 |   }
 | 
| 8 | PORTA=0;
 | 
| 9 | }
 | 
mfg Schoasch