INPUT CAPTURE HELPH

Post your requests and ideas on the future development of mikroPascal for dsPIC30/33 and PIC24.
Post Reply
Author
Message
RODOLFO
Posts: 4
Joined: 11 Apr 2009 13:17

INPUT CAPTURE HELPH

#1 Post by RODOLFO » 22 Apr 2009 17:49

HELLO MISTERS, AFTER ALL, EXCUSE MY ENGLISH
I WAS LEARNING TU USE A PIC16F877A, ESPECIFICLY THE CCP MODULE
IN CAPTURE MODE.

I HAVE TO MEASURE THE WIDTH OF A PULSE THAT COMES FROM A NE555
IN MONOESTABLE MODE. BUT I COULDN'T GET THE VALUE.

SO I BEGIN TO USE THE PIC24FJGA002, BECAUSE THIS MICRO HAS
INPUT CAPTURE MODULE, JUST WHAT I NEED.

I DID THE FALLOWING CODE, SEND ME SOME VALUE, BUT I KNOW THIS
IS NO THE WIDTH OF THE PULSE.

THIS IS MY CODE:

//*********THIS CODE MEASURE THE WIDTH OF A PULSE FROM A NE555 IN MONOESTABLE,
//*********WHEN THE RISE EDGE ARRIVES, THE ICM IS CHANGED TO FALLING EDGE,
//*********THEN THE TIMER 2 IS RESTARTED, AND THEN I LOAD THE VARIABLE "T1" WITH
//*********THE IC1BUF; WHEN THE FALLING EDGE ARRIVES, I LOAD THE VARIABLE "T2"
//*********WITH THE IC1BUF. THEN TT:=T2-T1; THE VALUE OF "TT" IS PRINTED ON LCD.


//--------------------------((0*0*0*0*0*0))----------------------------------------------------
program Input_Capture_test;

VAR T1,T2,TT:WORD;
TEXT:array[10] of char;

begin
RPINR7:= 11; //PIN PR11 AS INPUT
IFS0.1:= 0; //Clear bit IC1IF (IFS<1>)
IPC0:=112; //PRIORITY 7
PR2:=$FFFF;
IC1CON:=131; //ICM EVERY RISING;
T2CON:=32768; //Timer 2 start, 1:1 PS,
IEC0.1:=1; //ENABLE INTERRUPT
ADPCFG:=$FFFF; //PORTB LCD
Lcd8_Init(PORTB, 7, 6, 5, 4, 3, 2, 1, 0, PORTB, 8, 9, 10); //DATA LCD CONFIG
Lcd8_Cmd(LCD_CURSOR_OFF);
Lcd8_Cmd(LCD_CLEAR);
While true do //ENDLESS LOOP
begin
If IC1CON.3=1 then //IF IC1BUF HAS DATA
IFS0.1:= 0; //Clear bit IC1IF (IFS<1>)
IC1CON:=130; //CHANCHE ICM TO EVERY FALLING
TMR2:=0; //CLEAR TIMER 2
T1:=IC1BUF; //LOAD VARIABLE T1 WITH BUF
If IC1CON.3=1 then //IF IC1BUF HAS DATA
T2:=IC1BUF; //LOAD VARIABLE T2 WITH BUF
TT:=T2-T1; //THIS IS THE PULSE WIDTH
WordToStr (TT, TEXT); //WORD TO STRING FOR LCD
Lcd8_Out (1,1, TEXT); //PRINT VALUE ON LCD
IFS0.1:= 0; //Clear bit IC1IF (IFS<1>)
end;
end.

THANK YOU FOR ANY HELPH.
THIS IS MY EMAIL: fitopluss@hotmail.es[/url]

Post Reply

Return to “mikroPascal for dsPIC30/33 and PIC24 Wish List”