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
Trier des données RS232 vers pic16F690?
- Subzero64170
Débutant- Messages : 51
- Âge : 37
- Enregistré en : octobre 2015
- Localisation : PAU
Bonjour,
Petit descriptif du projet : A partir d'une application smartphone réalisée avec App inventor du MIT, je souhaite modifier l'heure de mon DS1307 (module calendrier) raccordé a mon pic 16f690. J'arrive a changer les heures mais à présent je voudrais faire la même chose pour les minutes et secondes.Le problème c'est que je ne sais pas comment mon pic va faire pour savoir par exemple que lorsqu'il reçoit "13" sur la broche RX du pic cela représente des heures et nom des minutes ou des secondes.Il faudrait pour cela que je puisse faire un trie, voir mettre un identifiant pour qu'il puisse faire la différence entre les heures, minutes et secondes.Lorsque j'appuie sur le bouton heure j'envoie l'heure, lorsque j'appuie sur le bouton minutes j'envoie les minutes etc.. comment mon pic peut t-il faire le trie avec tout ça? Est ce que quelqu'un à une petite idée?
Merci
Petit descriptif du projet : A partir d'une application smartphone réalisée avec App inventor du MIT, je souhaite modifier l'heure de mon DS1307 (module calendrier) raccordé a mon pic 16f690. J'arrive a changer les heures mais à présent je voudrais faire la même chose pour les minutes et secondes.Le problème c'est que je ne sais pas comment mon pic va faire pour savoir par exemple que lorsqu'il reçoit "13" sur la broche RX du pic cela représente des heures et nom des minutes ou des secondes.Il faudrait pour cela que je puisse faire un trie, voir mettre un identifiant pour qu'il puisse faire la différence entre les heures, minutes et secondes.Lorsque j'appuie sur le bouton heure j'envoie l'heure, lorsque j'appuie sur le bouton minutes j'envoie les minutes etc.. comment mon pic peut t-il faire le trie avec tout ça? Est ce que quelqu'un à une petite idée?
Merci
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Trier des données RS232 vers pic16F690?
Bonjour,
dans un DS1307 il y a un registre différent pour les heures, minutes, secondes.
Donc il faut que tu récupères l'ensemble de la trame Temps de ton smartphone que tu vas stocker dans un tableau par exemple, puis ensuite il faut que tu isoles chaque catégorie temporelle et que tu les stockes dans des variables dédiées: Vseconde, Vminute, Vheure.
Puis tu envoies en i2c la valeur à modifier dans ta DS1307 en appelant une fonction d'écriture heure/mn/sec qui va accéder aux bons registres pour chacun.
dans un DS1307 il y a un registre différent pour les heures, minutes, secondes.
Donc il faut que tu récupères l'ensemble de la trame Temps de ton smartphone que tu vas stocker dans un tableau par exemple, puis ensuite il faut que tu isoles chaque catégorie temporelle et que tu les stockes dans des variables dédiées: Vseconde, Vminute, Vheure.
Puis tu envoies en i2c la valeur à modifier dans ta DS1307 en appelant une fonction d'écriture heure/mn/sec qui va accéder aux bons registres pour chacun.
Trier des données RS232 vers pic16F690?
- Subzero64170
Débutant- Messages : 51
- Âge : 37
- Enregistré en : octobre 2015
- Localisation : PAU
Trier des données RS232 vers pic16F690?
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello,
A l'issue et si tu finis ton projet , ce serait cool de faire une présentation avec photo et tout tout , si ca te dis , je pourrais t'aider !
ce sont des sujets qui intérresse pas mal de monde , autant la RTC DS1307 , que l'application pour smart-phone !
A l'issue et si tu finis ton projet , ce serait cool de faire une présentation avec photo et tout tout , si ca te dis , je pourrais t'aider !
ce sont des sujets qui intérresse pas mal de monde , autant la RTC DS1307 , que l'application pour smart-phone !
Trier des données RS232 vers pic16F690?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
j'ai fais une appli similaire (avec Appinventor 1 sur une tablette android archos43)
sur laquelle je peux remettre à jour ma RTC DS1302 ...(ce n'est pas un RTC DS1307 !)
mais le principe devrait etre le meme.
La liaison Bluetooth ... arrive sur mon UART1 RX en mode interrupt.
coté PIC
et dans ma boucle principale du main()
je teste si mon buffer1 de reception UART1 contient une commande
terminée par un CR , qui arme mon drapeau DataReady1
je teste alors plusieurs cas , dont la Mise à jour RTC
Est-tu passé sur Appinventor II ?
j'utilise aussi RFO Basic coté Android.. qui permet de gerer des APK en local
sans passer par google & Co.
j'ai fais une appli similaire (avec Appinventor 1 sur une tablette android archos43)
sur laquelle je peux remettre à jour ma RTC DS1302 ...(ce n'est pas un RTC DS1307 !)
mais le principe devrait etre le meme.
La liaison Bluetooth ... arrive sur mon UART1 RX en mode interrupt.
coté PIC
Code : Tout sélectionner
void set_datetime(unsigned char day, unsigned char mth,
unsigned char year, unsigned char dow,
unsigned char hr, unsigned mini)
{
write_ds1302(0x80,get_bcd(0));
write_ds1302(0x82,get_bcd(mini));
write_ds1302(0x84,get_bcd(hr));
write_ds1302(0x86,get_bcd(day));
write_ds1302(0x88,get_bcd(mth));
write_ds1302(0x8A,get_bcd(dow));
write_ds1302(0x8C,get_bcd(year));
}
void MAJ_RTC()
{
int l,m,dr;
dr=0;
if(INTCON.GIE==1)
{
dr=1;
INTCON.GIE =0 ; // Anulation autorisation globale des IT
}
m=2; // step d'avance dans le buffer
j=0;
PIE1.RCIE = 0;
l=strlen(buff1);
// from appli Appinventor U;15;10;13;02;14;25# + CR
// from Vbray U;15;10;13;02;14;25#035#013
// from TeraTerminal Broadcast : U;15;10;13;02;14;25#<CR enter key>
txt=&Texte[0];
sprintf(txt,"Recu ordre <U>pdate RTC L=%d buff1=%s \r\n ",l,buff1);
k=PutStr_RS2(txt);
CRLF2();
for (i=2;i<l;i++)
{
if(buff1[i]==';')
{
buff1[i]=0;
DateTime[j]=atoi(buff1+m);
// debugging
sprintf(txt,"i=%2d DateTime[%2d]= %02d\r\n ",i,j,DateTime[j]);
k=PutStr_RS2(txt);
CRLF2();
/* Recu ordre <U>pdate RTC L=20 buff1=U;23;01;15;04;14;58#
i= 4 DateTime[ 0]= 23
i= 7 DateTime[ 1]= 01
i=10 DateTime[ 2]= 15
i=13 DateTime[ 3]= 04
i=16 DateTime[ 4]= 14
*/
m=i+1;
j++;
}
}// for i
// ne pas oublier le dernier!
//buff1[l-1]=0; // elimine # en fin de chaine
buff1[19]=0; // elimine # en fin de chaine
DateTime[j]=atoi(buff1+m);
jour=DateTime[0];
mois=DateTime[1];
An=DateTime[2];
dow=DateTime[3]; // jour de la semaine sur 1 seul digit
heure=DateTime[4];
mini=DateTime[5];
// mise à jour effective RTC DS1302
set_datetime( jour,mois,An,dow,heure,mini);
RazIndex();
if(dr==1)INTCON.GIE =1 ; // re-autorisation globale des IT
}
et dans ma boucle principale du main()
je teste si mon buffer1 de reception UART1 contient une commande
terminée par un CR , qui arme mon drapeau DataReady1
je teste alors plusieurs cas , dont la Mise à jour RTC
Code : Tout sélectionner
// Test si arrivé de car sur UART1 pendant la reception UART2 de a trame EDF
// sequence attendue U;JJ;MM,AA,DD;HH;MN# 20 cars (secondes forcees a 00)
// macro sur touche vbray :
// U;11;07;14;05;17;24#035#013
// BroadCast sur Teraterminal :
// U;11;07;14;05;17;24# <avec Enter Key coché et CR>
// si receptionde U au debut et # au 19em cars, on valide
if (( DataReady1 == 1)&& (buff1[0]=='U')&& (buff1[19]=='#'))
{
MAJ_RTC();
}
... autre tests
Est-tu passé sur Appinventor II ?
j'utilise aussi RFO Basic coté Android.. qui permet de gerer des APK en local
sans passer par google & Co.
Trier des données RS232 vers pic16F690?
- Subzero64170
Débutant- Messages : 51
- Âge : 37
- Enregistré en : octobre 2015
- Localisation : PAU
Salut,
Pour l'instant je suis novice j'ai decouvert app inventor il y a peu.Merci pour ton programme mais il y a beaucoup de choses que tu utilise que je ne sais pas encore faire.C'est ça d'ailleurs ce qui est frustrant quand on programme les pics, l'apprentissage est fastidieux, heureusement ca me fait bondir quand je parviens a faire un truc cool
Pour l'instant je suis novice j'ai decouvert app inventor il y a peu.Merci pour ton programme mais il y a beaucoup de choses que tu utilise que je ne sais pas encore faire.C'est ça d'ailleurs ce qui est frustrant quand on programme les pics, l'apprentissage est fastidieux, heureusement ca me fait bondir quand je parviens a faire un truc cool
Trier des données RS232 vers pic16F690?
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
post ton code pour savoir ou tu en es ...
sur le dessin du post #1.. on voit une liaison filaire Phone -> PIC
mais je suppose que tu utilises bluetooth ?
Peux-tu aussi mettre un lien sur ton appli Inventor
pour dialoguer il faut bien intervenir des 2 cotes.
Le point de départ est de receptionner ,cote UART PIC, les donnees en mode interrupt et les stocker dans un buffer
pour pouvoir en analyser le contenu .
et agir en consequence ..
exemple Appinventor + PIC
c'est bien Appinventor II ?
post ton code pour savoir ou tu en es ...
sur le dessin du post #1.. on voit une liaison filaire Phone -> PIC
mais je suppose que tu utilises bluetooth ?
Peux-tu aussi mettre un lien sur ton appli Inventor
pour dialoguer il faut bien intervenir des 2 cotes.
Le point de départ est de receptionner ,cote UART PIC, les donnees en mode interrupt et les stocker dans un buffer
pour pouvoir en analyser le contenu .
et agir en consequence ..
exemple Appinventor + PIC
j'ai decouvert app inventor
c'est bien Appinventor II ?
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 57 invités