Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
pour le tutoriel réalisé sur ton site Internet très bien expliqué, je vais ajouter dans Rttl.exe une version pour encodage des fichier Rttl en C+.
Personnellement j'ai pas eu le courage de faire un fichier d'Aide(help ) de plus j'ai jamais su expliqué proprement les choses en trouvant les mots exacte, je possède malheureusement pas ce don.
Donc si j'ai bien compris il faut juste retirer les DB et rajouter une virgule en fin pour la fonction C+ ?
Les temps des notes tu les gères par interruption je suppose ? par pas de 1 milliseconde ?
A+
paulfjujo a écrit :Source du message j'en rappelle ici , la procedure pour pouvoir l'utiliser sous C
pour le tutoriel réalisé sur ton site Internet très bien expliqué, je vais ajouter dans Rttl.exe une version pour encodage des fichier Rttl en C+.
Personnellement j'ai pas eu le courage de faire un fichier d'Aide(help ) de plus j'ai jamais su expliqué proprement les choses en trouvant les mots exacte, je possède malheureusement pas ce don.
Donc si j'ai bien compris il faut juste retirer les DB et rajouter une virgule en fin pour la fonction C+ ?
Les temps des notes tu les gères par interruption je suppose ? par pas de 1 milliseconde ?
A+
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bonjour Temps-X et à tous
Oui,
rajouter l' entete ex: unsigned char PinkPanther[]={
mais enlever tous les db
enlever aussi les 5 bytes Adresses Avant le nom du fichier , les 5 bytes adresse Apres le nom de fichier
mais Rajouter 0xFF,
et enlever les 5 bytes adresses en fin de fichier ..
mais rajouter ,0xFF};
on a pas besoin d'adresses dans les data du fichier Rttl
puisque les adressages de fichiers en C, sont contenu dans la liste de pointeur sur les tables
exemple :
char * Liste_Melodie[]= {Mission_Impossible,BOLERO,Smoke,PinkPanther,Alfred_Hitchcok};
pour jouer PinkPanther
void Play_Melodie(3,0); 3= element #3 de la liste et 0=pas de visu de detail (detail = frequence et duree)
Pink Panther en exemple
tous les db ont été enlevés
virgule rajoutée en fin de ligne
adresses mise en commentaires par //
et rajout des 0xFF = terminateurs...
unsigned char PinkPanther[]={
//0xFE,0xFD,0xFC,0xFB,0xFA,
0x50,0x69,0x6E,0x6B,0x50,0x61,0x6E,0x74,0x68,0x65,0x72,0xFF,
//0xFE,0xFD,0xFC,0xFB,0xFA,
0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,
0x00,0x00,0x02,0xEE,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xCD,0x6F,0x00,0xBC,0x00,0x00,
0x00,0x02,0xEE,0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0x00,0x00,
0x00,0x5E,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xCD,0x6F,0x00,0xBC,0x00,0x00,0x00,0x00,
0x5E,0x01,0x12,0x39,0x00,0xBC,0x01,0x02,0xEA,0x00,0xBC,0x00,0x00,0x00,0x00,0x5E,
0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0x00,0x00,0x00,0x5E,0x01,
0x02,0xEA,0x00,0xBC,0x00,0xF4,0x46,0x02,0xEE,0x00,0x00,0x00,0x02,0xEE,0x00,0xE6,
0xAF,0x00,0x5E,0x00,0xCD,0x6F,0x00,0x5E,0x00,0xAC,0xCE,0x00,0x5E,0x00,0x99,0xD8,
0x00,0x5E,0x00,0xAC,0xCE,0x02,0xEE,
//0xFE,0xFD,0xFC,0xFB,0xFA
0xFF};
les delays sont effectivement en ms Delay_ms(1);
Remarque:
Actuellement , pour jouer une melodie RTTL , on est obligé d'attendre la fin pour continuer le deroulement du programme...
Une version synchronisée sur un timer 1mS , pourrait etre jouée en arriere plan
du programme principal
A voir si l'appli principale peut supporter d'être interrompu chaque millisecondes .. ( en plus d'autres timers et autres sources d'interrupts)
si on a une liaison UART à 9600 bs =>en Reception, 1 byte pouvant arriver chaque 1.04ms
avec un buffer hardware dans le PIC ! No problemeo
mais à 115200 bds ou plus .. à verifier
Je n'en ai pas l'utilité pour l'instant , car ces "melodies" me servent aussi de tempo !
et je n'ai pas de duree critiques dans l'appli CLAVIER .. qui a déja 2 timers toujours actifs TMR4 à 0,5sec et TMR1 à 100mS
à suivre ....
Temps-x a écrit :Donc si j'ai bien compris il faut juste retirer les DB et rajouter une virgule en fin pour la fonction C+ ?
Les temps des notes tu les gères par interruption je suppose ? par pas de 1 milliseconde ?
Oui,
rajouter l' entete ex: unsigned char PinkPanther[]={
mais enlever tous les db
enlever aussi les 5 bytes Adresses Avant le nom du fichier , les 5 bytes adresse Apres le nom de fichier
mais Rajouter 0xFF,
et enlever les 5 bytes adresses en fin de fichier ..
mais rajouter ,0xFF};
on a pas besoin d'adresses dans les data du fichier Rttl
puisque les adressages de fichiers en C, sont contenu dans la liste de pointeur sur les tables
exemple :
char * Liste_Melodie[]= {Mission_Impossible,BOLERO,Smoke,PinkPanther,Alfred_Hitchcok};
pour jouer PinkPanther
void Play_Melodie(3,0); 3= element #3 de la liste et 0=pas de visu de detail (detail = frequence et duree)
Pink Panther en exemple
tous les db ont été enlevés
virgule rajoutée en fin de ligne
adresses mise en commentaires par //
et rajout des 0xFF = terminateurs...
unsigned char PinkPanther[]={
//0xFE,0xFD,0xFC,0xFB,0xFA,
0x50,0x69,0x6E,0x6B,0x50,0x61,0x6E,0x74,0x68,0x65,0x72,0xFF,
//0xFE,0xFD,0xFC,0xFB,0xFA,
0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,
0x00,0x00,0x02,0xEE,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xCD,0x6F,0x00,0xBC,0x00,0x00,
0x00,0x02,0xEE,0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0x00,0x00,
0x00,0x5E,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xCD,0x6F,0x00,0xBC,0x00,0x00,0x00,0x00,
0x5E,0x01,0x12,0x39,0x00,0xBC,0x01,0x02,0xEA,0x00,0xBC,0x00,0x00,0x00,0x00,0x5E,
0x00,0xA2,0xE8,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0x00,0x00,0x00,0x5E,0x01,
0x02,0xEA,0x00,0xBC,0x00,0xF4,0x46,0x02,0xEE,0x00,0x00,0x00,0x02,0xEE,0x00,0xE6,
0xAF,0x00,0x5E,0x00,0xCD,0x6F,0x00,0x5E,0x00,0xAC,0xCE,0x00,0x5E,0x00,0x99,0xD8,
0x00,0x5E,0x00,0xAC,0xCE,0x02,0xEE,
//0xFE,0xFD,0xFC,0xFB,0xFA
0xFF};
les delays sont effectivement en ms Delay_ms(1);
Remarque:
Actuellement , pour jouer une melodie RTTL , on est obligé d'attendre la fin pour continuer le deroulement du programme...
Une version synchronisée sur un timer 1mS , pourrait etre jouée en arriere plan
du programme principal
A voir si l'appli principale peut supporter d'être interrompu chaque millisecondes .. ( en plus d'autres timers et autres sources d'interrupts)
si on a une liaison UART à 9600 bs =>en Reception, 1 byte pouvant arriver chaque 1.04ms
avec un buffer hardware dans le PIC ! No problemeo
mais à 115200 bds ou plus .. à verifier
Je n'en ai pas l'utilité pour l'instant , car ces "melodies" me servent aussi de tempo !
et je n'ai pas de duree critiques dans l'appli CLAVIER .. qui a déja 2 timers toujours actifs TMR4 à 0,5sec et TMR1 à 100mS
à suivre ....
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
Suite....
Ok, c'est fait
Je vois que tu travailles avec une veille version je t'expliquerais comment supprimer tout cela, car tout est prévu dans le programme, mais avant tout,
voici un exemple de ce que j'ai fait aujourd'hui pour le C+
Est ce que ça va comme ça, n’hésite pas à me faire supprimer, ou ajouter des choses, mais essai de l'expliquer avec un exemple.
Voir ICI ou j'ai fait une version qui fonctionne en arrière plan(le code est en ASM)
Normalement c'est au programmateur de vérifier tout cela et d'organiser le programme de t'elle façon qu'il n'y ait pas de No problemeo.
Avec 1,04ms faut faire cohabiter le NCO avec UART, car les 04 ne seront pas percevable par l'oreille humaine.
Enfin tout est une question de synchronisation, et je dirais même de Temps.
A+
paulfjujo a écrit :Source du message à suivre .
Suite....
paulfjujo a écrit :Source du message rajouter l' entete ex: unsigned char PinkPanther[]={
mais enlever tous les db
Ok, c'est fait
paulfjujo a écrit :Source du message enlever aussi les 5 bytes Adresses Avant le nom du fichier , les 5 bytes adresse Apres le nom de fichier
mais Rajouter 0xFF,
et enlever les 5 bytes adresses en fin de fichier ..
mais rajouter ,0xFF};
Je vois que tu travailles avec une veille version je t'expliquerais comment supprimer tout cela, car tout est prévu dans le programme, mais avant tout,
voici un exemple de ce que j'ai fait aujourd'hui pour le C+
Code : Tout sélectionner
//***********************************************************************************************
//************** titre de la mélodie, axelf, taille 121 octets, durée 0 min 5 sec ***************
//***********************************************************************************************
unsigned char axelf[]={
0xFF,0x61,0x78,0x65,0x6C,0x66,0xFF,0x00,0xC1,0xD1,0x01,0x77,0x00,0xE6,0xAF,0x00,
0xD3,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xC1,0xD1,0x00,0x5E,0x00,0xF4,0x46,0x00,0xBC,
0x00,0xC1,0xD1,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0xC1,0xD1,0x01,0x77,0x01,
0x12,0x39,0x00,0xD3,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xC1,0xD1,0x00,0x5E,0x01,0x33,
0xB1,0x00,0xBC,0x01,0x22,0x69,0x00,0xBC,0x00,0xE6,0xAF,0x00,0xBC,0x00,0xC1,0xD1,
0x00,0xBC,0x01,0x22,0x69,0x00,0xBC,0x01,0x83,0xA3,0x00,0xBC,0x00,0xC1,0xD1,0x00,
0x5E,0x00,0xAC,0xCE,0x00,0xBC,0x00,0xAC,0xCE,0x00,0x5E,0x00,0x91,0x34,0x00,0xBC,
0x00,0xD9,0x8E,0x00,0xBC,0x00,0xC1,0xD1,0x01,0xD4,0xFF
};
Est ce que ça va comme ça, n’hésite pas à me faire supprimer, ou ajouter des choses, mais essai de l'expliquer avec un exemple.
paulfjujo a écrit :Source du message Remarque:
Actuellement , pour jouer une melodie RTTL , on est obligé d'attendre la fin pour continuer le déroulement du programme...
Une version synchronisée sur un timer 1mS , pourrait être jouée en arrière plan
du programme principal
Voir ICI ou j'ai fait une version qui fonctionne en arrière plan(le code est en ASM)
paulfjujo a écrit :Source du message A voir si l'appli principale peut supporter d'être interrompu chaque millisecondes .. ( en plus d'autres timers et autres sources d'interrupts)
Normalement c'est au programmateur de vérifier tout cela et d'organiser le programme de t'elle façon qu'il n'y ait pas de No problemeo.
paulfjujo a écrit :Source du message si on a une liaison UART à 9600 bs =>en Reception, 1 byte pouvant arriver chaque 1.04ms
Avec 1,04ms faut faire cohabiter le NCO avec UART, car les 04 ne seront pas percevable par l'oreille humaine.
Enfin tout est une question de synchronisation, et je dirais même de Temps.
A+
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Temps-x a écrit :Code : Tout sélectionner
//***********************************************************************************************
//************** titre de la mélodie, axelf, taille 121 octets, durée 0 min 5 sec ***************
//***********************************************************************************************
unsigned char axelf[]={
0xFF,0x61,0x78,0x65,0x6C,0x66,0xFF,0x00,0xC1,0xD1,0x01,0x77,0x00,0xE6,0xAF,0x00,
0xD3,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xC1,0xD1,0x00,0x5E,0x00,0xF4,0x46,0x00,0xBC,
0x00,0xC1,0xD1,0x00,0xBC,0x00,0xAC,0xCE,0x00,0xBC,0x00,0xC1,0xD1,0x01,0x77,0x01,
0x12,0x39,0x00,0xD3,0x00,0xC1,0xD1,0x00,0xBC,0x00,0xC1,0xD1,0x00,0x5E,0x01,0x33,
0xB1,0x00,0xBC,0x01,0x22,0x69,0x00,0xBC,0x00,0xE6,0xAF,0x00,0xBC,0x00,0xC1,0xD1,
0x00,0xBC,0x01,0x22,0x69,0x00,0xBC,0x01,0x83,0xA3,0x00,0xBC,0x00,0xC1,0xD1,0x00,
0x5E,0x00,0xAC,0xCE,0x00,0xBC,0x00,0xAC,0xCE,0x00,0x5E,0x00,0x91,0x34,0x00,0xBC,
0x00,0xD9,0x8E,0x00,0xBC,0x00,0xC1,0xD1,0x01,0xD4,0xFF
};
Est ce que ça va comme ça, n’hésite pas à me faire supprimer, ou ajouter des choses, mais essai de l'expliquer avec un exemple.
presque OK, il suffit de supprimer le premier byte 0xFF ...
0xFF me sert de terminateur pour isoler le titre
et detecter la fin des datas..Normalement c'est au programmateur de vérifier tout cela et d'organiser le programme de t'elle façon qu'il n'y ait pas de No problemeo.
je suis d'accord avec toi sur le principe ..
mais suivant l'application, le programmeur peut se retrouver dans une situation mal ou pas maitrisée ou inconnue:
et il faut alors utiliser PARACHUTE, BRETELLE ,CEINTURE .. dans le codage.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
On pouvais le faire dans l'ancienne version, mais voici ce que j'envisage de faire dans la nouvelle version que je vais faire, pour cette fin de semaine.
C'est tout le problème d'un organigramme mal conçu, ou le choix d'un microcontrôleur mal adapté à ce qui est prévu par l'organigramme.
Bref.... c'est le vrai métier d'ingénieur de mettre tout cela en pratique, pour nous, ou plus personnellement pour moi, j'en suis bien loin, et je plussoie
ton raisonnement.
A+
paulfjujo a écrit :Source du message presque OK, il suffit de supprimer le premier byte 0xFF ...
On pouvais le faire dans l'ancienne version, mais voici ce que j'envisage de faire dans la nouvelle version que je vais faire, pour cette fin de semaine.
paulfjujo a écrit :Source du message mais suivant l'application, le programmeur peut se retrouver dans une situation mal ou pas maitrisée ou inconnue:
et il faut alors utiliser PARACHUTE, BRETELLE ,CEINTURE .. dans le codage.
C'est tout le problème d'un organigramme mal conçu, ou le choix d'un microcontrôleur mal adapté à ce qui est prévu par l'organigramme.
Bref.... c'est le vrai métier d'ingénieur de mettre tout cela en pratique, pour nous, ou plus personnellement pour moi, j'en suis bien loin, et je plussoie
ton raisonnement.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
Voila c'est fait, tu peux télécharger la nouvelle version ICI pour le réglage voir ci-dessous, je pense que tu comprendras.
J'ai fait des d'essais, et je n'ai pas trouvé de bug, reste à voir par la suite....
A+
Voila c'est fait, tu peux télécharger la nouvelle version ICI pour le réglage voir ci-dessous, je pense que tu comprendras.
J'ai fait des d'essais, et je n'ai pas trouvé de bug, reste à voir par la suite....
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour temps X
Testé avec ce fichier Dire Straits Walkoflife
//***********************************************************************************************
//************* titre de la mélodie, WalkOfLi, taille 176 octets, durée 0 min 7 sec *************
//***********************************************************************************************
unsigned char WalkOfLi[]={
0xFF,0x57,0x61,0x6C,0x6B,0x4F,0x66,0x4C,0x69,0xFF,0xFF,0x01,0xB3,0x1D,0x01,0x2C,
0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,
0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,
0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,
0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,
0x96,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,
0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,
0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,
0x00,0x00,0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,
0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0x45,0xD0,0x01,0x2C,0xFF // virgule et 0xFF
};
c'est presque OK
il ne faut qu'un terminateur de titre et un terminateur de melodie , ici 0xFF
Temps-x a écrit :Voila c'est fait, tu peux télécharger la nouvelle version ICI pour le réglage voir ci-dessous, je pense que tu comprendras.
J'ai fait des d'essais, et je n'ai pas trouvé de bug, reste à voir par la suite....
Testé avec ce fichier Dire Straits Walkoflife
//***********************************************************************************************
//************* titre de la mélodie, WalkOfLi, taille 176 octets, durée 0 min 7 sec *************
//***********************************************************************************************
unsigned char WalkOfLi[]={
0xFF,0x57,0x61,0x6C,0x6B,0x4F,0x66,0x4C,0x69,0xFF,0xFF,0x01,0xB3,0x1D,0x01,0x2C,
0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,
0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,
0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,
0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,
0x96,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,
0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,
0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,
0x00,0x00,0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,
0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0x45,0xD0,0x01,0x2C,0xFF // virgule et 0xFF
};
c'est presque OK
il ne faut qu'un terminateur de titre et un terminateur de melodie , ici 0xFF
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
Tu as la version 27.02.2022, normal que ça ne va pas, je te conseille de télécharger la dernière version 05.03.2022, j'ai rajouté pas mal de chose
(à suivre, mais non, c'est à voir)
J'ai vu que tu as avancé sur CLAVIER Matriciel DIGI 3000 revisité avec PIC18F27K42 ça prends tournure, on dirais que c'est fonctionnelle d'après ce que tu dis sur ta page Web
A+
Tu as la version 27.02.2022, normal que ça ne va pas, je te conseille de télécharger la dernière version 05.03.2022, j'ai rajouté pas mal de chose
(à suivre, mais non, c'est à voir)
J'ai vu que tu as avancé sur CLAVIER Matriciel DIGI 3000 revisité avec PIC18F27K42 ça prends tournure, on dirais que c'est fonctionnelle d'après ce que tu dis sur ta page Web
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir TempX et à tous,
OK, je vais retester cette version..
Pour le clavier digicode, je suis en train de terminer la version DIGIT4000 , bien remaniée ...
avec plus de fonctionalités à integrer et un tas de documents à mettre à jour.
... Bientot des nouvelles sur ce sujet
testé aujourd'hui 16/03
avec cette config
titre centré sur 255 pixel
caractere 1 pixel
pixel ou Byte ou caractere
.... C'est PRESQUE çà ! ...
//***********************************************************************************************
//************ titre de la mélodie, WalkOfLi, taille 278 octets, durée 0 min 6 sec ************
//***********************************************************************************************
unsigned char WalkOfLi[]={
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x57,0x61,0x6C,0x6B,0x4F,
0x66,0x4C,0x69,0xFF,0x01,0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,
0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,
0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,
0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,
0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,
0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,
0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,
0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x01,
0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,
0x01,0x45,0xD0,0x01,0x2C,0xFF
};
OK, je vais retester cette version..
Pour le clavier digicode, je suis en train de terminer la version DIGIT4000 , bien remaniée ...
avec plus de fonctionalités à integrer et un tas de documents à mettre à jour.
... Bientot des nouvelles sur ce sujet
testé aujourd'hui 16/03
avec cette config
titre centré sur 255 pixel
caractere 1 pixel
pixel ou Byte ou caractere
.... C'est PRESQUE çà ! ...
//***********************************************************************************************
//************ titre de la mélodie, WalkOfLi, taille 278 octets, durée 0 min 6 sec ************
//***********************************************************************************************
unsigned char WalkOfLi[]={
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x57,0x61,0x6C,0x6B,0x4F,
0x66,0x4C,0x69,0xFF,0x01,0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,
0x1D,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,
0x00,0x96,0x01,0xB3,0x1D,0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,
0x96,0x01,0x22,0x69,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x2C,
0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,
0xB3,0x1D,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0xB3,0x1D,0x00,0x96,0x00,0x00,
0x00,0x01,0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,0x01,0xB3,0x1D,
0x01,0x2C,0x01,0x45,0xD0,0x00,0x96,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x01,
0x2C,0x00,0x00,0x00,0x00,0x96,0x01,0x22,0x69,0x00,0x96,0x01,0x45,0xD0,0x00,0x96,
0x01,0x45,0xD0,0x01,0x2C,0xFF
};
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
PIC18F27K42 et NCO1 Numerically Controlled Oscillator
Bonsoir paulfjujo, et tout le forum,
C'est bien des pixels qu'il s’agit
Explique moi, car je ne comprends pas, d'après mes calculs, si tu prends 255 pixels pour une longueur de ton écran, la moitié à raison d'un pixel cela nous fait 127(arrondis).
Ce qui nous donne 127 - (Titre/2) = Cela nous fait 123 espaces(0x20), c'est bien ce que tu as + ((titre/2) = 4 pixels), ce qui nous donne 123 + 4 =127 pixels.
J'ai fait un essai sur une feuille de papier, et sur écran OLED on appliquent la même formule, et c'est tout bon, ça fonctionne bien, après il y a une tolérance de plus au moins 2 pixels, en fonction des nombres utilisés.(ne pas oublier l'espace qui peut avoir entre 2 caractères)
Maintenant si tu vois une meilleur formule je suis preneur, même si il faut ajouter un plus sur le programme.
pour les essais.
A+
paulfjujo a écrit :Source du message pixel ou Byte ou caractere
C'est bien des pixels qu'il s’agit
paulfjujo a écrit :Source du message .... C'est PRESQUE çà ! ...
Explique moi, car je ne comprends pas, d'après mes calculs, si tu prends 255 pixels pour une longueur de ton écran, la moitié à raison d'un pixel cela nous fait 127(arrondis).
Ce qui nous donne 127 - (Titre/2) = Cela nous fait 123 espaces(0x20), c'est bien ce que tu as + ((titre/2) = 4 pixels), ce qui nous donne 123 + 4 =127 pixels.
J'ai fait un essai sur une feuille de papier, et sur écran OLED on appliquent la même formule, et c'est tout bon, ça fonctionne bien, après il y a une tolérance de plus au moins 2 pixels, en fonction des nombres utilisés.(ne pas oublier l'espace qui peut avoir entre 2 caractères)
Maintenant si tu vois une meilleur formule je suis preneur, même si il faut ajouter un plus sur le programme.
pour les essais.
A+
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 31 invités