Ebben az esetben is ismét jobban látható a struktúra C nyelv esetén, bár mint már említettem korábban, nem igen különbözik a sima RB0/INT-től. Íme a kód. 
#include <16F877.h> 
 
 
 
 
 
#FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD
 
#use delay(clock=4000000) 
 
 
 
 
 
#byte PORTD = 0x08 //PORTD regiszterre mutató pointer 
 
 
 
 
 
//================================================================
 
#int_RB
 
void RB_isr() {
 
//================================================================
 
 PORTD ^= 0xFF;
 
} 
 
 
 
 
 
//================================================================
 
void main(){
 
//================================================================
 
 set_tris_d(0b00000000); //PORTD kimenet
 
 output_d(0b01010101);  //LED bekapcs
 
 set_tris_b(0b11110000); //PORTB4:7 bemenet 
 
 
 
 
 
 enable_interrupts(INT_RB); //RB4:7 megszakítás be
 
 enable_interrupts(GLOBAL); //GIE bekapcsol 
 
 
 
 
 
 for(;;) {
 
 //Semmit nem csinálunk
 
 }//for
 
}//main
 
  
Program forráskód és lefordított HEX: rb47_ccs.zip
Ezután nézzük, hogy lehet életet lehelni az időzítő modul(ok)ba.
	
		
		A cikk még nem ért véget, lapozz!
		 
	    
		Értékeléshez bejelentkezés szükséges!