1

Voilà, pour programmer un clavier à 12 touches et en mettant une sécurité par mot de passe. J'ai mélangé un peu ce que j'avais sous la main, ne sachant pas trop programmer, il me semblait trop dur de reprendre le programme à zéro. J'obtiens une erreur en compilant, pourtant je pense qu'il y a de gros problèmes de noms de variables etc... Donc si quelqu'un pouvait m'aider ça serait bien, c'est très important ! Merci d'avance.
unsigned char clavier(void) //définition de la fonction clavier
{
unsigned char colonne; //déclaration des variables liées à cette fonction
unsigned char ligne;
unsigned char codetouche;
unsigned char touche;



DDRC=0b11110000;
colonne=0b00100000;
versportc: //étiquette permettant un saut
PORTC=colonne;
#asm //appel à des instructions de l'assembleur
nop //pour retarder la lecture du portC afin
nop //d'obtenir des niveaux de tensions valides sur
#endasm //les entrées/sorties du clavier.
ligne=PINC;
byte cod1, cod2,cod3,cod4 'chiffre du code
byte car1, car2, car3, car4 'chiffre tapés
byte touche 'variable de touche

Initialisation des variables :
On défini le code qui sera utilisé par le programme. L’utilisateur n’aura aucune influence sur ce code : il est défini à la programmation.



'----- initialisation des variables ------



'--- définition du code secret

cod1=1

cod2=9

cod3=8

cod4=5



Configuration des ports E/S :
On configure le port E en digital. Par ailleurs, on signale l’utilisation des port C, B et D :



'--------- initialisation des variables, des ports et fonctionnalités -------



'--- port E ----

PCFG3=1: PCFG2=0: PCFG1=0:PCFG0=1 'configuration de PE1 et PE2 en digital si utilisation LCD



'-- port B ----

' clavier = pullup activé par clavierinit et PB0,PB3 et PB4 en entrée



'--- port C ---

'D4 à D7 sur PC4-PC7 configuré en sortie par lcd2x16.bas



'---- port D ----

'clavier = lignes sur PD0 à PD3 en sortie





if ((ligne&0b00001111)==0) //structures if ... then ...else
{
colonne=colonne<<1;
if (colonne!=0)
{
goto versportc;
}
else
{
touche=255;
}
}
else
{
codetouche=colonne|ligne;
switch (codetouche) //structure switch ... case
{case (0b00100001):
{touche=3; break;}
case (0b00100010):
{touche=6; break;}
case (0b00100100):
{touche=9; break;}
case (0b00101000):
{touche=11; break;}
case (0b00101000):
{touche=2; break;}
case (0b01000010):
{touche=5; break;}
case (0b01000100):
{touche=8; break;}
case (0b01001000):
{touche=0; break;}
case (0b10000001):
{touche=1; break;}
case (0b10000010):
{touche=4; break;}
case (0b10000100):
{touche=7; break;}
case (0b10001000):
{touche=10; break;}
default: touche=255;
}
}

return touche; //mot clef return afin de renvoyer la valeur de "touche"
}

monprog:

lcdcmnd(clear)

lcd_putsf(ENTREZ CODE !)



lcdcmnd(L2+1)

lcd_putsf(----)

lcdcmnd(L2+1)



Ensuite par une série de « pas » successif, on assure la saisie de chacun des caractères tapés par l’utilisateur. A noter que le caractère # est obligatoire pour valider le code tapé.



pas1:

touche=lireclavier()

if touche=0 then goto pas1 'si pas de caractère tapé, relire clavier

car1=touche
lcd_putsf(*)

pause 500



pas2:

touche=lireclavier()

if touche=0 then goto pas2 'si pas de caractère tapé, relire clavier

car2=touche

lcd_putsf(*)

pause 500


pas3:

touche=lireclavier()

if touche=0 then goto pas3 'si pas de caractère tapé, relire clavier

car3=touche

lcd_putsf(*)

pause 500


pas4:

touche=lireclavier()

if touche=0 then goto pas4 'si pas de caractère tapé, relire clavier

car4=touche

lcd_putsf(*)

pause 500


pas5:

touche=lireclavier()

if touche=0 then goto pas5 'si pas de caractère # tapé, relire clavier

if touche<>12 then goto pas5 'si pas appui sur #, relire clavier

'--- comparaison avec code ---

lcdcmnd(L1+1)

if car1<>cod1 then goto erreur

if car2<>cod2 then goto erreur

if car3<>cod3 then goto erreur

if car4<>cod4 then goto erreur

'---- si code bon ---

lcd_putsf(Code exact! )

pause 4000

goto monprog

'--- si code faux ---

erreur:

lcd_putsf(code faux )

pause 4000

goto monprog
The truth is a waste of time, when we're conditioned to understand
Lies are the right was as we watch the blind leading the blind

[La DNC-Team] Un club plein de mystère

2

1° apprends a coder avant de coder
2° on n'est pas la pour coder à ta place
3° si tu veux qu'on t'aide, il nous faudrait les erreurs de compilation avec les lignes...
avatar
納 豆パワー!
I becamed a natto!!!1!one!

3

Code immonde sick. Tu t'immagines, que c'est facile de comprendre un code qui a été écrit par d'autres, qui plus est dans un truc qui ne ressemble même pas à du C ?
Tu devrais apprendre le C parce que ça te permettrait de voir quelque chose d'énorme dans ton code... (c'est peut être pour ça que je trouvais que ça ne ressemblait pas à du C aussi...)
Et d'ailleurs, programmer quelque chose qu'on ne comprend pas et en plus sans savoir programmer... triroll
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

4

dieux que c (et encore, placer un 'c' dans cette phrase, ça me fait mal...) moche... #sic#
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

Tu sais que ça a des chances de ne pas marcher si tu mets du code Basic dans un programme C? cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

6

unsigned char clavier(void) //définition de la fonction clavier
{
unsigned char colonne; //déclaration des variables liées à cette fonction
unsigned char ligne;
unsigned char codetouche;
unsigned char touche;



DDRC=0b11110000;
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
colonne=0b00100000;
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
versportc: //étiquette permettant un saut
PORTC=colonne;
#asm //appel à des instructions de l'assembleur
nop //pour retarder la lecture du portC afin
nop //d'obtenir des niveaux de tensions valides sur
#endasm //les entrées/sorties du clavier.
ligne=PINC;
byte cod1, cod2,cod3,cod4 'chiffre du code
type non défini?
; manquant
byte car1, car2, car3, car4 'chiffre tapés
type non défini?
; manquant
byte touche 'variable de touche
type non défini?
; manquant

Initialisation des variables :
On défini le code qui sera utilisé par le programme. L’utilisateur n’aura aucune influence sur ce code : il est défini à la programmation.
signes de commentaires manquants


'----- initialisation des variables ------
signe de commentaire incorrect


'--- définition du code secret
signe de commentaire incorrect

cod1=1
; manquant

cod2=9
; manquant

cod3=8
; manquant

cod4=5
; manquant



Configuration des ports E/S :
On configure le port E en digital. Par ailleurs, on signale l’utilisation des port C, B et D :
signes de commentaires manquants



'--------- initialisation des variables, des ports et fonctionnalités -------
signe de commentaire incorrect



'--- port E ----
signe de commentaire incorrect

PCFG3=1: PCFG2=0: PCFG1=0:PCFG0=1 'configuration de PE1 et PE2 en digital si utilisation LCD
: à la place de ;
: à la place de ;
: à la place de ;
; manquant



'-- port B ----
signe de commentaire incorrect

' clavier = pullup activé par clavierinit et PB0,PB3 et PB4 en entrée
signe de commentaire incorrect



'--- port C ---
signe de commentaire incorrect

'D4 à D7 sur PC4-PC7 configuré en sortie par lcd2x16.bas
signe de commentaire incorrect



'---- port D ----
signe de commentaire incorrect

'clavier = lignes sur PD0 à PD3 en sortie
signe de commentaire incorrect





if ((ligne&0b00001111)==0) //structures if ... then ...else
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{
colonne=colonne<<1;
if (colonne!=0)
{
goto versportc;
}
else
{
touche=255;
}
}
else
{
codetouche=colonne|ligne;
switch (codetouche) //structure switch ... case
{case (0b00100001):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=3; break;}
case (0b00100010):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=6; break;}
case (0b00100100):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=9; break;}
case (0b00101000):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=11; break;}
case (0b00101000):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=2; break;}
case (0b01000010):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=5; break;}
case (0b01000100):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=8; break;}
case (0b01001000):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=0; break;}
case (0b10000001):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=1; break;}
case (0b10000010):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=4; break;}
case (0b10000100):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=7; break;}
case (0b10001000):
essai d'utilisation d'une extension TIGCC (0b...), peu de chances de marcher ailleurs
{touche=10; break;}
default: touche=255;
}
}

return touche; //mot clef return afin de renvoyer la valeur de "touche"
}

monprog:

lcdcmnd(clear)
; manquant

lcd_putsf(ENTREZ CODE !)
"" manquants
; manquant



lcdcmnd(L2+1)
; manquant

lcd_putsf(----)
"" manquants
; manquant

lcdcmnd(L2+1)
; manquant



Ensuite par une série de « pas » successif, on assure la saisie de chacun des caractères tapés par l’utilisateur. A noter que le caractère # est obligatoire pour valider le code tapé.
signes de commentaires manquants



pas1:

touche=lireclavier()
; manquant

if touche=0 then goto pas1 'si pas de caractère tapé, relire clavier
() manquants après if
then en trop
; manquant
signe de commentaire incorrect

car1=touche
; manquant
lcd_putsf(*)
"" manquants
; manquant

pause 500
() manquants autour des paramètres de l'appel
; manquant

[...]
idem pour les autres pas

if touche<>12 then goto pas5 'si pas appui sur #, relire clavier
() manquants après if
<> au lieu de !=
then en trop
; manquant
signe de commentaire incorrect

'--- comparaison avec code ---

lcdcmnd(L1+1)
; manquant

if car1<>cod1 then goto erreur
() manquants après if
<> au lieu de !=
then en trop
; manquant

if car2<>cod2 then goto erreur
() manquants après if
<> au lieu de !=
then en trop
; manquant

if car3<>cod3 then goto erreur
() manquants après if
<> au lieu de !=
then en trop
; manquant

if car4<>cod4 then goto erreur
() manquants après if
<> au lieu de !=
then en trop
; manquant

'---- si code bon ---
signe de commentaire incorrect

lcd_putsf(Code exact! )
; manquant

pause 4000
() manquants autour des paramètres de l'appel
; manquant

goto monprog
; manquant

'--- si code faux ---
signe de commentaire incorrect

erreur:

lcd_putsf(code faux )
; manquant

pause 4000
() manquants autour des paramètres de l'appel
; manquant

goto monprog
; manquant

J'espère que ça explique ce qui ne va pas dans ton programme. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

J'espère que ça explique ce qui ne va pas dans ton programme

heu... beaucoup de choses grin

ça me rappelle mes devoirs d'allemand au collège lycée : tout en rouge une fois que le prof randait la copie grin
(argh, j'ai partiel d'allemand demain (enfin, non, en fait, uajourd'hui, mercredi) mourn)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

8

Viel Glück! smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Heu...
Danke Schone ?
(ou Danke Schon, ou Danke Shon, ou Danke Schöne, ou Danke Schön (je crois que c ça ?))

vivement que ça soit fini... une fois le partiel d'allemand passé, je me considère comme étant en vacances grin
(restera deux jours de cours... j'irai, je pense, sauf si je suis trop crevé... mais ça sentira Noel...)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

10

ah non kevin fallait pas l'aider sad
avatar
納 豆パワー!
I becamed a natto!!!1!one!

11

lcd_putsf(Code exact! ) ; manquant

il faut peut-être aussi des guillemets autour de la chaine de caractère...
(les autres fois, Kevin, tu as vu, mais sur ce coup, tu as oublibé smile)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

12

DTC !
avatar
納 豆パワー!
I becamed a natto!!!1!one!

13

pkoi dmc ?

au fait, sous XP Pro, dans system32, j'ai un
msdtc.exe
et un msdtclog.dll
(plus quelques autres msdtc*.*)
grin
(virus, ou pas virus ???)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

14

ds celui de KK neutral
avatar
納 豆パワー!
I becamed a natto!!!1!one!

15

ds celui de KK

arf, t'aurait ,pu préciser roll
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

16

Merci pour Kevin Kofler... j'ai compris, je vais tout refaire dès le début pendant ces vacances...
The truth is a waste of time, when we're conditioned to understand
Lies are the right was as we watch the blind leading the blind

[La DNC-Team] Un club plein de mystère