bonjour tt le monde, je voudrais poser la question ou plutot mon probleme, si vous pouvez m'aider.
en fait je travaille sur un projet pour mon TFE, j'ai trouvé un code source d'un programme qui est conçu pour tourner la souris, et moi je dois changer la partie de switch2, et Switch3, parce que le bouton de poussoir relier a ces deux switchs, et moi je sais pas comment je fais parce que je suis nouveau au programmetion de PIC et surtout 18F
voila le code:
#include <p18cxxx.h>
#include <usart.h>
#include "system\typedefs.h"
#include "system\usb\usb.h"
#include "io_cfg.h" // I/O pin mapping
#include "user\user_mouse.h"
/** V A R I A B L E S ********************************************************/
#pragma udata
byte old_sw2,old_sw3;
BOOL emulate_mode;
rom signed char dir_table[]={-4,-4,-4, 0, 4, 4, 4, 0};
byte movement_length;
byte vector = 0;
char buffer[3];
/** P R I V A T E P R O T O T Y P E S ***************************************/
void BlinkUSBStatus(void);
BOOL Switch2IsPressed(void);
BOOL Switch3IsPressed(void);
void Emulate_Mouse(void);
/** D E C L A R A T I O N S **************************************************/
#pragma code
void UserInit(void)
{
mInitAllLEDs();
mInitAllSwitches();
old_sw2 = sw2;
old_sw3 = sw3;
buffer[0]=0;
buffer[1]=0;
buffer[2]=0;
buffer[3]=0;
emulate_mode = TRUE;
}//end UserInit
/******************************************************************************
* Function: void ProcessIO(void)
*
* PreCondition: None
*
* Input: None
*
* Output: None
*
* Side Effects: None
*
* Overview: This function is a place holder for other user routines.
* It is a mixture of both USB and non-USB tasks.
*
* Note: None
*****************************************************************************/
void ProcessIO(void)
{
BlinkUSBStatus();
// User Application USB tasks
if((usb_device_state < CONFIGURED_STATE)||(UCONbits.SUSPND==1)) return;
if(Switch3IsPressed())
emulate_mode = !emulate_mode;
Emulate_Mouse();
}//end ProcessIO
/******************************************************************************
* Function: void BlinkUSBStatus(void)
*
* PreCondition: None
*
* Input: None
*
* Output: None
*
* Side Effects: None
*
* Overview: BlinkUSBStatus turns on and off LEDs corresponding to
* the USB device state.
*
* Note: mLED macros can be found in io_cfg.h
* usb_device_state is declared in usbmmap.c and is modified
* in usbdrv.c, usbctrltrf.c, and usb9.c
*****************************************************************************/
void BlinkUSBStatus(void)
{
static word led_count=0;
if(led_count == 0)led_count = 10000U;
led_count--;
#define mLED_Both_Off() {mLED_1_Off();mLED_2_Off();}
#define mLED_Both_On() {mLED_1_On();mLED_2_On();}
#define mLED_Only_1_On() {mLED_1_On();mLED_2_Off();}
#define mLED_Only_2_On() {mLED_1_Off();mLED_2_On();}
if(UCONbits.SUSPND == 1)
{
if(led_count==0)
{
mLED_1_Toggle();
mLED_2 = mLED_1; // Both blink at the same time
}//end if
}
else
{
if(usb_device_state == DETACHED_STATE)
{
mLED_Both_Off();
}
else if(usb_device_state == ATTACHED_STATE)
{
mLED_Both_On();
}
else if(usb_device_state == POWERED_STATE)
{
mLED_Only_1_On();
}
else if(usb_device_state == DEFAULT_STATE)
{
mLED_Only_2_On();
}
else if(usb_device_state == ADDRESS_STATE)
{
if(led_count == 0)
{
mLED_1_Toggle();
mLED_2_Off();
}//end if
}
else if(usb_device_state == CONFIGURED_STATE)
{
if(led_count==0)
{
mLED_1_Toggle();
mLED_2 = !mLED_1; // Alternate blink
}//end if
}//end if(...)
}//end if(UCONbits.SUSPND...)
}//end BlinkUSBStatus
cette partie je l'ai remplace par La parie ABOOL Switch2IsPressed(void)
{
if(sw2 != old_sw2)
{
old_sw2 = sw2; // Save new value
if(sw2 == 0) // If pressed
return TRUE; // Was pressed
}//end if
return FALSE; // Was not pressed
}//end Switch2IsPressed
BOOL Switch3IsPressed(void)
{
if(sw3 != old_sw3)
{
old_sw3 = sw3; // Save new value
if(sw3 == 0) // If pressed
return TRUE; // Was pressed
}//end if
return FALSE; // Was not pressed
}//end Switch3IsPressed
La parie Aint Switch2IsPressed(void)
{
if(sw2 == 0 && sw3 == 0 )
{
return POSITION1;
}
else if(sw2 == 1 && sw3 == 0 )
{
return POSITION2;
}
else if(sw2 == 1 && sw3 == 1 )
{
return POSITION3;
}
else if(sw2 == 0 && sw3 == 1 )
{
return POSITION4;
}
End if
}
//
j'espere que vous avez compri le programme et et vous avez la reponse