//---------------------------------------------------------------------------- // Demo SX01-SX13 // Note : Per utilizzare questo firmware occorre collegare la scheda // SX01 (connettore BITWISE I/O) con la scheda SX13 tramite un // cavo piatto a 10 poli. La scheda dimmer deve montare il firmware // SX13A, dotato di controllo seriale //----------------------------------------------------------------------------- #define BINBUFSIZE 255 #define BOUTBUFSIZE 255 #define SET_ADDRESS 0x53 //Comando S. Impostazione indirizzo #define SET_DIMMER 0x4C //Comando L. Impostazione dimmer // Prototipi funzioni void SendDimCommand(char, char, char); void msDelay(unsigned int ); //----------------------------------------------------------------- // Genera un ritardo // Riceve : numero di ms da ritardare // Restituisce : - //----------------------------------------------------------------- nodebug void msDelay(unsigned int ams) { auto unsigned long t0; for(t0=MS_TIMER; MS_TIMER Comando scelto: Impostazione Indirizzo\n"); printf ("Inserisci l'indirizzo di destinazione del comando (in decimale + Invio)\n"); gets(st); val=atoi(st); val &= 0xFF; addr=(char)val; printf ("Inserisci il nuovo indirizzo da impostare (in decimale + Invio)\n"); gets(st); val=atoi(st); val &= 0xFF; data=(char)val; SendDimCommand(SET_ADDRESS,addr,data); break; case 2: printf (" ---> Comando scelto: Impostazione Livello Dimmer\n"); printf ("Inserisci l'indirizzo di destinazione del comando (in decimale + Invio)\n"); gets(st); val=atoi(st); val &= 0xFF; addr=(char)val; printf ("Inserisci il valore di luminosità (in decimale + Invio)\n"); gets(st); val=atoi(st); val &= 0xFF; data=(char)val; SendDimCommand(SET_DIMMER,addr,data); break; default: printf ("Comando Sconosciuto\n"); break; } printf ("Premere 'q' per terminare. Qualsiasi altro carattere per continuare\n"); ch=getchar(); } break; case 2: while (ch!=0x71) { // Rampa addr=0xFF; for (i=0;i<=255;i++) { data=(char)i; SendDimCommand(SET_DIMMER,addr,data); msDelay(50); } for (i=255;i>=0;i--) { data=(char)i; SendDimCommand(SET_DIMMER,addr,data); msDelay(50); } printf ("Premere 'q' per terminare. Qualsiasi altro carattere per continuare\n"); ch=getchar(); } break; default: break; } } }