#include "USBdsc.c" #define TAILLE_BUF 64 /*------------- Pilotage des LEDs en luminosité -------------*/ /* */ /* Programme écrit pour MikroC 2009, */ /* incompatible avec la version 2011 */ /* */ /* Auteur: LAURENT Amaury */ /* Date: 30/11/2011 */ /* */ /*-----------------------------------------------------------*/ unsigned short userRD_buffer[TAILLE_BUF]; unsigned short userWR_buffer[TAILLE_BUF]; char * pt; char ReadBuf[TAILLE_BUF] WriteBuf[TAILLE_BUF]; int i; signed int consigne1=0, consigne2=0; unsigned char cpt=0; void Vider_Buffer(char * Buffer) { for (i=0;i<TAILLE_BUF;i++) Buffer[i]=0; } void interrupt() { if (PIR2.USBIF == 1) { asm CALL _Hid_InterruptProc asm nop if(HID_Read()!=0) { pt=strstr(ReadBuf,"LED1: "); if (pt!=0) { consigne1=*(pt+6); } pt=strstr(ReadBuf,"LED2: "); if (pt!=0) { consigne2=*(pt+6); } Vider_Buffer(ReadBuf); Vider_Buffer(WriteBuf); } } } void InitPIC (void) { ADCON1=0x0F; CMCON=7; //------------- LED1 ------------ TRISD.f0=0; PORTD.f0=0; //------------- LED2 ------------ TRISD.f1=0; PORTD.f1=0; //------------- USB ------------- TRISC.f4=1; //D- TRISC.f5=1; //D+ HID_Enable(&ReadBuf,&WriteBuf); } void main() { InitPIC(); while (1) { //------------------------------- //------------- PWM ------------- //------------------------------- //----------- LED 1 ------------- portd.f0=(consigne1>cpt); //----------- LED 2 ------------- portd.f1=(consigne2>cpt); cpt++; } }