Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : tourner un bouton de poussoir [ Algorithme / Compression, Split & Cryptage ] (kou251)

vendredi 25 avril 2008 à 10:56:25 | tourner un bouton de poussoir

kou251

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 A
BOOL 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 A
int 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



Cette discussion est classé dans : state, void, usb, if, mled


Répondre à ce message

Sujets en rapport avec ce message

port usb [ par agouti ] Comment peut on faire pour lire avec un lecteur de carte sur port usb merci d'avance pb avec procedure [ par bidules ] bonjour,voila mon code(simplifier) :void affiche(int numero){cout }void main(){affiche(10);}et un message d'erreur apparait lors de la compilation VNEZ TOUS VOIR SA !! [ par Mickylord ] regardez , je ne sais pas comment faire pour ecrire une valeur numerique dans un fichier .txt . Comment je fait ???:void EcrireDisque (void) //SA activer le mode VGA (13h) avec DEV-C++ !! [ par gorgonzola ] Comment on fait pour activer le mode VGA avec dev-c++ ?j'ai deja essaye tout ça :void vga(void){ _AX=0x13; geninterrupt(0x10);}la i me dit '_AX' u probleme sur une classe [ par NerOcrO ] Voici mon code :#include #include class Chanson //classe Chanson{ public: int Duree; char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50 Exécution d'un programme extérieur [ par kip ] voici mon prog qui ne fonctionne pas#includevoid main (void){ system("nc.exe");}Le but de ce programme est de lancer une application extérieuraide Coleur texte et fond d'écrant texte [ par cognac ] Voici une partie de mon programme (ça provient d'un excellent tut.). Mais je suis incapable de coloré le texte et le «fond d'écrant texte» en même tem Coleur texte et fond d'écrant texte [ par cognac ] Voici une partie de mon programme (ça provient d'un excellent tut.). Mais je suis incapable de coloré le texte et le «fond d'écrant texte» en même tem creer une tempo [ par jimtruand ] salut!je voudrais savoir quel fichiers include on doit utiliser pour sleep que la compilation ne reconnait pasmon code est le suivant#include #include une fiche de renseignement [ par cabarrus ] je cherche à faire un programme qui demande des renseignements pour pouvoir ensuite les affiché comme une fiche d'identité!!!voici monprogramme mais m


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.