És a valamivel jobban érthető, letisztult C kód, ez is bőségesen felkommentezve. Természetesen, mivel én is a bazilusta programozók közé tartozom, így egyszerűsítek ahol tudok. Persze mivel ez az alap CCS, ezért még TRIState-eket sem kellene állítani, de biztos ami biztos, így a kezdőknek érthetőbb.
#include <16F877.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD
#use delay(clock=4000000)
#byte PORTD = 0x08 //PORTD regiszterre mutató pointer
//================================================================
#int_EXT
void EXT_isr() {
//================================================================
PORTD ^= 0xFF; //255-el XOR-olás
}
//================================================================
void main(){
//================================================================
set_tris_d(0b00000000); //PORTD kimenet
output_d(0b01010101); //LED bekapcs
set_tris_b(0b00000001); //PORTB.0 bemenet
ext_int_edge(H_TO_L); //Magasról alacsonyra - Lefutó él
enable_interrupts(INT_EXT);//EXT1 vagyis az RB0 megszakítás be
enable_interrupts(GLOBAL); //GIE bekapcsol
for(;;) {
//Semmit nem csinálunk
}//for
}//main
Az egész program forrás és a fordított HEX letölthető innen: rb0_ccs.zip
A cikk még nem ért véget, lapozz!
Értékeléshez bejelentkezés szükséges!