problème clavier sur CCS PCWH et ISIS

< Sujet précédent  Sujet suivant >
Index du Forum -> Forum des Projets fin d'études, mini-projets et des réalisations electroniques -> Projets fin d'études
AuteurMessage
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 15/05/2012 20:38  
1337107095.jpg (225 Ko)
problème clavier sur CCS PCWH et ISIS
asselem aleikom ^_^,

j'ai voulu faire une commande par clavier code pin puis trois touche de commande pour commandé un moteur CC 12v.

sur CCS il y a le driver du clavier 12touche KBD.C mais quand je l'inclus dans le programme (méme un nouveau programme vierge) la clavier est connecté sur les ports B (PIC 16F877)mais sur ISIS les ports D qui sont en marche pour le clavier et quand je la connecte sur les port D la clavier ne fonctionne pas ?

comment je procède ?

voici le programme de test mais sur des leds :

#include "C:\\Users\\Redsed\\documents\\keypad\\main.h"
#include <KBD.C>


void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
kbd_init();
int k,c,cl;
int16 i,j;
c=0;
cl=0;
for(;
{
k=kbd_getc();
if(k!=0){
if(k=='1')
{c++;}
if((k=='2')&&(c==1))
{c++;}
if((k=='3')&&(c==2))
{c++;}}
if(c==3)
{for(i=0;i<5000;i++)
{for(j=0;j<5000;j++)
{switch(k)
{case '*': cl=1;
case '0': cl=2;
case '#': cl=3;}
switch(cl)
{case 1: output_high(PIN_A0);
case 2: {output_high(PIN_A1);output_low(PIN_A0);}
case 3: {output_high(PIN_A2);output_low(PIN_A1);output_low(PIN_A0);}
}
}
}
}
}
// TODO: USER CODE!!
}

et voici le schéma




merci pour l'aide c'est urgent pour PFE il me reste que 16 jours ^_^"

Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 16/05/2012 12:02  
RE : problème clavier sur CCS PCWH et ISIS
quelq'un pour l'aide ?

Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 17/05/2012 02:55  
RE : problème clavier sur CCS PCWH et ISIS
///////////////////////////////////////////////////////////////////////////
//// KBDD.C ////
//// Generic keypad scan driver ////
//// ////
//// kbd_init() Must be called before any other function. ////
//// ////
//// c = kbd_getc(c) Will return a key value if pressed or /0 if not ////
//// This function should be called frequently so as ////
//// not to miss a key press. ////
//// ////
///////////////////////////////////////////////////////////////////////////
//// (C) Copyright 1996,2003 Custom Computer Services ////
//// This source code may only be used by licensed users of the CCS C ////
//// compiler. This source code may only be distributed to other ////
//// licensed users of the CCS C compiler. No other use, reproduction ////
//// or distribution is permitted without written permission. ////
//// Derivative programs created using this software in object code ////
//// form are not restricted in any way. ////
///////////////////////////////////////////////////////////////////////////

////////////////// The following defines the keypad layout on port D

// Un-comment the following define to use port B
// #define use_portb_kbd TRUE

// Make sure the port used has pull-up resistors (or the LCD) on
// the column pins


#if defined(__PCH__)
#if defined use_portb_kbd
#byte kbd = 0xF81 // This puts the entire structure
#else
#byte kbd = 0xF83 // This puts the entire structure
#endif
#else
#if defined use_portb_kbd
#byte kbd = 6 // on to port B (at address 6)
#else
#byte kbd = 8 // on to port D (at address 8)
#endif
#endif

#if defined use_portb_kbd
#define set_tris_kbd(x) set_tris_b(x)
#else
#define set_tris_kbd(x) set_tris_d(x)
#endif



//Keypad connection: (for example column 0 is B2)
// Bx:

#ifdef blue_keypad ///////////////////////////////////// For the blue keypad
#define COL0 (1 << 2)
#define COL1 (1 << 3)
#define COL2 (1 << 6)

#define ROW0 (1 << 4)
#define ROW1 (1 << 7)
#define ROW2 (1 << 1)
#define ROW3 (1 << 5)

#else ////////////////////////////////////////////////// For the black keypad
#define COL0 (1 << 5)
#define COL1 (1 << 6)
#define COL2 (1 << 7)

#define ROW0 (1 << 1)
#define ROW1 (1 << 2)
#define ROW2 (1 << 3)
#define ROW3 (1 << 4)

#endif

#define ALL_ROWS (ROW0|ROW1|ROW2|ROW3)
#define ALL_PINS (ALL_ROWS|COL0|COL1|COL2)

// Keypad layout:
char const KEYS[4][3] = {{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}};

#define KBD_DEBOUNCE_FACTOR 33 // Set this number to apx n/333 where
// n is the number of times you expect
// to call kbd_getc each second


void kbd_init() {
}

char kbd_getc( ) {
static BYTE kbd_call_count;
static int1 kbd_down;
static char last_key;
static BYTE col;

BYTE kchar;
BYTE row;

kchar='\0';
if(++kbd_call_count>KBD_DEBOUNCE_FACTOR) {
switch (col) {
case 0 : set_tris_kbd(ALL_PINS&~COL0);
kbd=~COL0&ALL_PINS;
break;
case 1 : set_tris_kbd(ALL_PINS&~COL1);
kbd=~COL1&ALL_PINS;
break;
case 2 : set_tris_kbd(ALL_PINS&~COL2);
kbd=~COL2&ALL_PINS;
break;
}

if(kbd_down) {
if((kbd & (ALL_ROWS))==(ALL_ROWS)) {
kbd_down=FALSE;
kchar=last_key;
last_key='\0';
}
} else {
if((kbd & (ALL_ROWS))!=(ALL_ROWS)) {
if((kbd & ROW0)==0)
row=0;
else if((kbd & ROW1)==0)
row=1;
else if((kbd & ROW2)==0)
row=2;
else if((kbd & ROW3)==0)
row=3;
last_key =KEYS[row][col];
kbd_down = TRUE;
} else {
++col;
if(col==3)
col=0;
}
}
kbd_call_count=0;
}
set_tris_kbd(ALL_PINS);
return(kchar);
}


ce deux ligne inportant de lire


// Un-comment the following define to use port B
// #define use_portb_kbd TRUE

// Make sure the port used has pull-up resistors (or the LCD) on
// the column pins


Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 17/05/2012 02:56  
1337216172.C (5 Ko)
RE : problème clavier sur CCS PCWH et ISIS
utiluser ce driver


Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 17/05/2012 17:31  
RE : problème clavier sur CCS PCWH et ISIS
merci pour l'aide salem^_^

j'ai nommé le driver keypad.C
donc est ce que je met
#include keypad.C dans le main.C ?
merci pour la réponse ^_^

Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 17/05/2012 19:50  
RE : problème clavier sur CCS PCWH et ISIS
bien sur tu doit metre le nom que vous faite keypad.C


bonne courage


Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 17/05/2012 20:14  
RE : problème clavier sur CCS PCWH et ISIS
baraka allah fik ^_^
j vais essayer.
pour les résistance de pullup 1K ça fais l'affaire ?

Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 19/05/2012 13:32  
RE : problème clavier sur CCS PCWH et ISIS
bon salem merci pour l'aide !

mais ça n'a pas encore marché je soupçonne l'ISIS mais je ne peux pas savoir si j'ai tort ou non donc merci de me mettre schéma sur le cablage et de me corrigé le progamme s'il y en a des fautes .
je n'ai trouvé aucune personne pour m'aider méme les profs
si quelq'un peux me rencontrer au centre ville tunis et je le paie pour l'aide merci .
voilà mon num 55854954

et voilà le programme :

#include "C:\Users\Redsed\documents\keypad\main.h"
#include <keypad.C> // je ne sais pas si c'est correcte ou il faut que je mets "C:\Users\Redsed\documents\keypad\keypad.C"//

void main()
{

port_b_pullups(TRUE);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
int k,c,cl;
int16 i,j;
c=0;
cl=0;
kbd_init();
for(;
{
k=kbd_getc();
if(k!=0){
if(kbd_getc()=='1')
{c++;}
if((kbd_getc()=='2')&&(c==1))
{c++;}
if((kbd_getc()=='3')&&(c==2))
{c++;}}
if(c==3)
{for(i=0;i<5000;i++)
{for(j=0;j<5000;j++)
{k=kbd_getc();
switch(k)
{case '*': cl=1;
case '0': cl=2;
case '#': cl=3;}
switch(cl)
{case 1: output_high(PIN_A0);
case 2: {output_high(PIN_A1);output_low(PIN_A0);}
case 3: {output_high(PIN_A2);output_low(PIN_A1);output_low(PIN_A0);}
}
}
}
}
}
// TODO: USER CODE!!

}

Revenir en haut | Permalien
France.png bertrandbd
Junior Member



Messages : 74
Inscrit(e) le: 12/12/2010
Posté le 20/05/2012 23:44  
RE : problème clavier sur CCS PCWH et ISIS
Sedelec


Tu peux poster ton schéma sous Isis avec le code pour que je puisse y jeter un coup d'oeil?

A+

ps: je n'utilise pas les pic mais plutôt les atmega donc je ne maîtrise pas bien l'architecture ni l'environnement de développement

Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 21/05/2012 12:25  
RE : problème clavier sur CCS PCWH et ISIS
voilà le schéma sur ISIS.

il est notée dans le driver KBD.C modifié par salem en keypad.C et un livre pour la programmation en C des pics que :

B1 = ligne 2
B2 = colonne 0
B3 = colonne 1
B4 = ligne 0
B5 = ligne 3
B6 = colonne 2
B7 = ligne1

Revenir en haut | Permalien
France.png bertrandbd
Junior Member



Messages : 74
Inscrit(e) le: 12/12/2010
Posté le 21/05/2012 23:20  
RE : problème clavier sur CCS PCWH et ISIS
Bonsoir


je ne vois pas ta pièce jointe (schéma)?

A+

Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 22/05/2012 15:40  
1337694026.rar (54 Ko)
RE : problème clavier sur CCS PCWH et ISIS
It work finalyyy

Revenir en haut | Permalien
France.png bertrandbd
Junior Member



Messages : 74
Inscrit(e) le: 12/12/2010
Posté le 23/05/2012 00:14  
RE : problème clavier sur CCS PCWH et ISIS
Bonsoir

Cela marche effectivement sauf qu'Isis détecte un problème de contention sur le 5V. Tu peux configurer le moniteur (debug/configure diagnostic) pour t'aider.

A+

Revenir en haut | Permalien
Tunisia.png sedelec
Junior Member



Messages : 12
Inscrit(e) le: 15/05/2012
Posté le 23/05/2012 16:46  
RE : problème clavier sur CCS PCWH et ISIS
merci infinement pour votre aide ^_^

bon j'utilise ISIS 7.1 SP4 et je crois que votre version et plus récente Salem et Bertrand donc un lien de téléchargement si vous pouvez en MP si se n'est pas autorisé sur la discussion .

sinon une capture écran pour le cablage.
pour le programme je veux une un code PIN premièrement avant que l'utilisateur peux commander les LEDs premièrement et ensuite je l'implanterai dans mon programme principal pour la commande du moteur cc.

donc 3 digit comme code PIN ensuite une commande avec les trois touches.

merci encore.


Edité par sedelec le 23/05/2012 16:08
Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 23/05/2012 17:00  
RE : problème clavier sur CCS PCWH et ISIS
capture

Revenir en haut | Permalien
Tunisia.png salem
Member



Messages : 102
Inscrit(e) le: 09/01/2008
Posté le 23/05/2012 17:03  
1337785423.JPG (145 Ko)
RE : problème clavier sur CCS PCWH et ISIS
essalam

Revenir en haut | Permalien

Haut de page

© 2019 Technologue pro, cours électricité électronique informatique · © 2007 - 2019 Technologue pro - Ressources pédagogiques pour l'enseignement technologique en Tunisie
Usage dans un cadre strictement académique

Technologue: cours en ligne gratuit en électricité, électronique, informatique industrielle et mécanique pour l'enseignement technologique en Tunisie et offre des cours en ligne en génie électrique, informatique, mécanique, une base de données de TP, projets fin d'études et un annuaire de ressources pédagogiques
Licence - Sitemap - Qui somme nous ? - confidentialité- Tunisie Index
J'accepte
Ce site web utilise des cookies. Nous utilisons des cookies pour vous offrir la meilleure expérience sur notre site Web. Plus d'infos