un Bize c'est quelqu'un de très sympa.
- Robot Maker
- → Contenu de nebukadnezare
Contenu de nebukadnezare
Il y a 9 élément(s) pour nebukadnezare (recherche limitée depuis 05-mai 13)
Par type de contenu
Voir pour ce membre
#65430 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 07:43 dans Programmation
#65426 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 04:25 dans Programmation
ok voila sa marche nickel en modifiant le temps de la condition " if(Button(&PORTD,0,500,0)) .... super sympa mike118 t'est un BIZE . mais n’empêche ,s'il y a des truc en trop ou d'éventuel amélioration je t'en prie.
#65425 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 04:14 dans Programmation
while(1) { if(plus==0){delay_ms(100);if(plus==0) // BP PLUS TEMPS { if(count<TMAX) count++;}} if(moins==0){delay_ms(100);if(moins==0) //BP MOINS TEMPS { if(count>TMIN) count--;}} if (Button(&PORTD, 0, 1, 0)) {oldstate = 1;delay_ms(10); //CONDITION POUR UTILISE LE BP PLUS ET MOINS if (oldstate && Button(&PORTD, 1, 5, 0)) //POUR UNE MEMORISATION { EEPROM_Write(0x00, count); // MEMORISATION DES VALEURS delay_ms(10); EEPROM_Write(0x01, count>>1); delay_ms(10);oldstate = 0;}} if(start==0) // BP DEBUT DECOMPTAGE { count--; delay_ms(100); {if (count == TMIN) // CONDITION {PORTC=0xff; // ACTIVATION RELAY. delay_ms(2000); // ...2S count= (EEPROM_Read(0x01)<<1); count |=EEPROM_Read(0x00); PORTC=0; } } }
Encore une petit amélioration, mais des fois au lieu qu'il mémorise il acrémente ou décrémente .
#65423 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 03:38 dans Programmation
et aussi le premier code que je t'ais envoyer n’étais qu'un test pour que je comprenne bien les BP
#65422 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 03:36 dans Programmation
unsigned short mask (unsigned short num){ switch(num) { case 0:return 0x7e; case 1:return 0x30; case 2:return 0x6d; case 3:return 0x79; case 4:return 0x33; case 5:return 0x5b; case 6:return 0x5f; case 7:return 0x70; case 8:return 0x7F; case 9:return 0x73; //case 0: PORTB = 63; break; //case 1: PORTB = 6; break; //case 2: PORTB = 91; break; //case 3: PORTB = 79; break; //case 4: PORTB = 102; break; //case 5: PORTB = 109; break; //case 6: PORTB = 125; break; //case 7: PORTB = 7; break; //case 8: PORTB = 127; break; //case 9: PORTB = 111; break; } } #define bouton_plus PORTD.RD0 #define bouton_moins PORTD.RD1 #define bouton_start PORTD.RD2 #define bouton_select PORTD.RD3 #define appui_bouton(b) (!(b)) #define TEMPS_MAX 9999 #define TEMPS_MIN 0 #define TICK_DELAY_MS 1 unsigned int count = 0; unsigned int count1 = 0; unsigned int count2 = 0; unsigned int count3 = 0; unsigned int count4 = 0; unsigned int meme = 2; unsigned int nombre; unsigned short i; void Interrupt(){ count4= (count/1000)%10; // AFFICHAGE 0000 count3= (count/100)%10; count2 = (count/10)%10; count1 = count%10; if(i==0) {PORTA = 0xf7; portb=mask(count1);} if(i==1) {PORTA = 0xfb; portb=mask(count2);} if(i==2) {PORTA = 0xfd; portb=mask(count3);} if(i==3) {PORTA = 0xfe; portb=mask(count4);} i++;if (i==4) i=0 ; INTCON = 0xA0; TMR0 = 6; } void main(void) { OPTION_REG = 0x82; TMR0 = 6; INTCON = 0xA0; count= (EEPROM_Read(0x01)<<1); count |=EEPROM_Read(0x00); TRISA = 0x00; TRISB = 0x00; PORTA = 0x00; PORTB = 0x00; TRISD = 0xff; PORTD = 0x00; TRISC = 0x00; PORTC = 0x00; while(1) { if(appui_bouton(bouton_plus)) // BP PLUS TEMPS { if(count<TEMPS_MAX) delay_ms(50); count++;} if(appui_bouton(bouton_moins)) //BP MOINS TEMPS { if(count>TEMPS_MIN) delay_ms(50);count--;} if(appui_bouton(bouton_moins)&&appui_bouton(bouton_plus)) //PLUS ET MOINS POUR LA MEMORISATION { delay_ms(2000); EEPROM_Write(0x00, count); // Mémorisation de la valeur delay_ms(10); EEPROM_Write(0x01, count>>1); delay_ms(10);} if(appui_bouton(bouton_start)) // BP DEBUT DECOMPTAGE { count--; delay_ms(500); {if (count == TEMPS_MIN) // CONDITION {PORTC=0xff; // ACTIVATION PORTC RELAY 3S delay_ms(3000); count= (EEPROM_Read(0x01)<<1); count |=EEPROM_Read(0x00); PORTC=0; } } } } }
ok voila rien ne vaut une photo et un code, si tu veux je peut t’envoyer le fichier ISIS 7.9 et le code source pour bien voire . le code marche bien sauf que des fois sa ne mémorise pas directement. si tu voie des truck a nettoyer au niveau code n’hésite pas .
NB. sa fait que 2 mois que je programme alors soit clément
#65415 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 03:33 dans Programmation
#65413 mikroc
Posté par nebukadnezare sur 04 octobre 2015 - 12:45 dans Programmation
#define plus portb.b0 #define moin portb.b1 #define start portb.b2 #define led1 portc.b0 #define led2 portc.b1 #define led3 portc.b2 #define led4 portc.b3 unsigned int oldstate; // Old state flag void main() { portb=0x00; portc=0x00; trisb=0xff; trisc=0x00; do { if(plus==0){delay_ms(300);if(plus==0){led2=1;delay_ms(100);led2=0;} } if(moin==0){delay_ms(300);if(moin==0){led3=1;delay_ms(100);led3=0;} } if(start==0){led4=1;delay_ms(100);led4=0;} if (Button(&PORTB, 0, 1, 0)) {oldstate = 1;delay_ms(100);} if (oldstate && Button(&PORTB, 1, 5000, 0)) { led1=1;delay_ms(1000);led1=0; oldstate = 0; } } while(1); }
se que j'ai c'est un décompteur,et 4 BP (Plus,Moins,Reset et Start) le but rechercher c'est de mettre le bon timing et le décompter au moyen du BP start toutes en le mémorisant. j'ai essayer de le mémoriser en utilisant START actifs ce qui engendre la mémorisation du dernier temps qui 1, puis j'ais chercher a utilise 2 BP (qui sont Plus et le Moins) avec des pression rapide et suivie; mais en-vain.
voila ce moi j'ai fait mais "il y a toujours un MAIS :)" le problème c'est que j'utilise le PLUS et si je veux diminuer avec le MOIN il passe en mode mémo.
Si tu a une autre idée je suis preneur.
#65408 mikroc
Posté par nebukadnezare sur 03 octobre 2015 - 09:50 dans Programmation
merci mike118 pour l'attention ,justement c'est ce que je veux faire mais je n'y arrive pas, si tu a une ou deux ligne de commande a propose ça serais sympa.
#65404 mikroc
Posté par nebukadnezare sur 03 octobre 2015 - 06:27 dans Programmation
bonjour a tous,
j'ai réalise un décompteur de 4 digit 7seg et 4 boutons poussoirs ,ma question et que je voudrais utilise un des bouton poussoir pour 2 actions sans que l'une n’altère l'autre par exemple le bouton qui incrément les ++ ,si j’appuie plus longtemps il seras utilise pour mémorise la valeur du dernier r décomptage un truck comme sa et merci d’avance.
- Robot Maker
- → Contenu de nebukadnezare
- Privacy Policy