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
un petit plus dans la presentation de(source) programme
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bonjour à tous,
Je propose, suggere une amelioration de presentation de programme source
Je me suis aperçu au fil du temps, qu'il devenait hazardeux de reprendre un vieux programme , ecrit quelques mois ou annnees
auparavant , et de voir qu'il ne tourne plus correctement
à cause de l'environnement ...
Je me suis donc imposé de nouvelles regles , qui memes si elles peuvent etre contraignantes et alourdir le source
permet de ne pas patauger , perdre du temps..
En tete de programme
Ou est-il stocké,sous quel nom de projet, source ..
Fichiers annexes : pour Eeprom du PIC, la config des bits
Type de MCU, Tension alim, FOSC....
Quelques definitions usuelles
Quelques adresses I2C usuelles
Description succinte du hardware
les messages de presentation
Les declarations de fonctions
J'utilise quasiment tout le temps , L'UART comme outil de suivi de programme et debugging ..
Cà mange pas de pain, 1 pin UART TX en sortie ..
La presentation dans le main du programme, en 6 lignes
[i] UART1_Init(19200);
UART1_Write(CLS); // Erase screen terminal :it is an option on Vbray Terminal!
Delay_ms(500);
CRLF();
UART1_Write_CText(" Presentation : \r\n");
for (i=1;i<9;i++) UART1_Write_CText(Messages[i]);[/i]
...... le maximum de renseignements dans le code source ......
en fond de listing source
La copie de la fenetre de compilation Messages ... obtenue apres le "Build"
MAIS MikroC ne connait pas la mise en forme .. la 1ere ligne pouvant depasser 700 caracteres !
Je copie donc d'abord le contenu de cette fenetre dans mon editeur de texte prefére NotePad+
dans lequel j'ai fait une petite macro pour intercaler un saut de ligne Avant chaque debut d'emplacement de fichier (C:\)
et avant chaque decalaration de Librairie (__lib)
Cette macro , nommée "Arange_Tout" est stockée dans le fichier shortcuts.xml (dans le dossier où est installé NotePad++)
plus d'infos sur ce Tuto NotePad++
la 1ere ligne originale (qui tient sur 1 seule ligne dans Message window !)
un petit coup de macro, et hop, la meme ligne
et on colle cette ligne en fin de source dans un commentaire delimité par /* ..... */
on peut aussi y rajouter l'execution du programme
qui apparaitra sur le terminal, pour avoir une meilleur idee,
meme si au final on utilisera un LCD seulement.
Vous allez me dire .. c'est TROP ... t' exagéres !
oui, mais ...
La macro NotePad++
Je propose, suggere une amelioration de presentation de programme source
Je me suis aperçu au fil du temps, qu'il devenait hazardeux de reprendre un vieux programme , ecrit quelques mois ou annnees
auparavant , et de voir qu'il ne tourne plus correctement
à cause de l'environnement ...
Je me suis donc imposé de nouvelles regles , qui memes si elles peuvent etre contraignantes et alourdir le source
permet de ne pas patauger , perdre du temps..
En tete de programme
Ou est-il stocké,sous quel nom de projet, source ..
Fichiers annexes : pour Eeprom du PIC, la config des bits
Type de MCU, Tension alim, FOSC....
Quelques definitions usuelles
Quelques adresses I2C usuelles
Description succinte du hardware
les messages de presentation
Les declarations de fonctions
Code : Tout sélectionner
#define Directory "C:\\_MikroC\\_MesProjets_MikroC\\_Solar_system "
#define Project "18F26K22_Irrigation_UART_ADC_RTC1302.mcppi"
#define Source "_18F26K22_Irrigation_Control_"
#define Eeprom "_18F26K22_Irrigation_Control.ihex"
#define Config "18F26K22_Fosc_interne_16MHz_PWM2_RB3.cfgsch"
/*
CONFIG1H : $300001 : 0x0028
CONFIG2L : $300002 : 0x0019
CONFIG2H : $300003 : 0x003C
CONFIG3H : $300005 : 0x00BE
CONFIG4L : $300006 : 0x0081
CONFIG5L : $300008 : 0x000F
CONFIG5H : $300009 : 0x00C0
CONFIG6L : $30000A : 0x000F
CONFIG6H : $30000B : 0x00E0
CONFIG7L : $30000C : 0x000F
CONFIG7H : $30000D : 0x0040
*/
#define PROCESSOR "18F26K22"
#define OSCILLATEUR_INTERNE
#define POWER_SUPPLY " 5V"
#define FOSC "16.0" // MHz
#define BAUD 19200 // UART1
#define CLS 12
#define CR 0x0D
#define LF 10
#define TAB 9
#define BACK 8
#define Beep 7
#define Separator 0x20 // space
#define LCD4x20_I2
// cde relais inversée
#define ON 0
#define OFF 1
#ifndef Byte
#define Byte unsigned char
#endif
#ifndef Word
#define Word unsigned int
#endif
#define LCD_ADDR 0x4E // PCF8574 on pigboard YwRobot back located on LCD4x20
#define PCF8574_2_ADDR 0x46 // PCF8574 on breadboard drives 8 leds --R--- +5V
#define DS1307_ADDR 0xD0 // RTC DS1307
#define EEPROM_32K_ADR 0xA0 // EEPROM 24LC256
#define DHT22_Pin PORTC //pin 0
const code char mesg1[]=" Directory :"Directory"\r\n";
const code char mesg2[]=" MikroC pro 7.10 \n\r";
const code char mesg3[] =" Projet :"Project"\r\n";
const code char mesg4[]=" Irrigation Control System \r\n";
const char char mesg5[]=" Config bit : "Config"\r\n";
const char char mesg6[]=" Eeprom: "Eeprom"\r\n";
const char char mesg7[]=" Source : "Source"_"Version".c\r\n";
const char char mesg8[]=" Utilise Tiny_RTC_DS1307.inc et _Lcd_4x20_I2C.inc\r\n";
const char char mesg9[]=" Module HC06 pour BlueTooth Application \r\n";
const code char * Messages[]={mesg0,mesg1,mesg2,mesg3,mesg4,mesg5,mesg6,mesg7,mesg8,mesg9};
// Hardware
/*
Pin 28 RB7 -----------------ICSP Data
Pin 27 RB6 -----------------ICSP Clock
Pin 26 RB5 BP5
Pin 25 RB4 BP4
Pin 24 RB3 ------------------------------------> PWM Output CCP3
Pin 23 RB2 BP2
Pin 22 RB1 BP1
Pin 21 RB0 Interrupt pin for 5 BP keyboard <--- OR function for5 BP
Pin 20 VDD --------+5V
Pin 19 Vss ---------Gnd
Pin 18 RC7 RX UART <-- Keyboard * mettre pull up de 2,7K si alim 3,6V et cordon Prolic 5V
Pin 17 RC6 TX UART --> Display * mettre une pull up de 2.7 si RX non utilisée
Pin 16 RC5
Pin 15 RC4 SDA <-----------> RTC 1307 --- EEPROM 24C32 ---- LCD 4x20
Pin 14 RC3 SCL -->-------- RTC 1307 -----EEPROM 24C32
Pin 13 RC2
Pin 12 RC1
Pin 11 RC0
Pin 10 RA6
Pin 9 RA7
Pin 8 VSS --------- Gnd
Pin 7 RA5 <------- Forcage RTC
Pin 6 RA4 Output --Pump Relay--+Vcc
Pin 5 RA3
Pin 4 RA2 Analog Input
Pin 3 RA1 Analog input EA1
Pin 2 RA0 Analog Input EA0
Pin 1 RE3 MCLR Reset --------ICSP PGRM
*/
void Init_Hardware(void) ;
void CRLF(void) ;
void Raz_Buffer(void) ;
void UART1_Write_CText(const char *txt);
void strConstRamCpy(unsigned char *dest, const code char *source);
void Float2Ascii (float x, unsigned char *chaine,char precision) ;
//---- EEPROM PIC bytes ================
void Save_Msg_To_EEPROM(unsigned char * adrx, unsigned char *ptr1);
void Print_Msg_Eeprom( int debut);
void Arme_Timer0_100mS(void);
void Arme_Timer0_250mS(void);
void Decompile_byte(unsigned char PORT_Buttons);
void My_Init_ADC(void);
unsigned int Lecture_ADC(unsigned char ch);
void My_UART1_Write(unsigned char c);
void My_UART1_Write_Text(unsigned char *t);
void My_UART1_Write_CText(const unsigned char *t)
J'utilise quasiment tout le temps , L'UART comme outil de suivi de programme et debugging ..
Cà mange pas de pain, 1 pin UART TX en sortie ..
La presentation dans le main du programme, en 6 lignes
[i] UART1_Init(19200);
UART1_Write(CLS); // Erase screen terminal :it is an option on Vbray Terminal!
Delay_ms(500);
CRLF();
UART1_Write_CText(" Presentation : \r\n");
for (i=1;i<9;i++) UART1_Write_CText(Messages[i]);[/i]
...... le maximum de renseignements dans le code source ......
en fond de listing source
La copie de la fenetre de compilation Messages ... obtenue apres le "Build"
MAIS MikroC ne connait pas la mise en forme .. la 1ere ligne pouvant depasser 700 caracteres !
Je copie donc d'abord le contenu de cette fenetre dans mon editeur de texte prefére NotePad+
dans lequel j'ai fait une petite macro pour intercaler un saut de ligne Avant chaque debut d'emplacement de fichier (C:\)
et avant chaque decalaration de Librairie (__lib)
Cette macro , nommée "Arange_Tout" est stockée dans le fichier shortcuts.xml (dans le dossier où est installé NotePad++)
plus d'infos sur ce Tuto NotePad++
Code : Tout sélectionner
-<Macro Key="0" Shift="no" Alt="no" Ctrl="no" name="Arrange_Tout">
<Action sParam="" lParam="0" wParam="0" message="1700" type="3"/>
<Action sParam="C:\" lParam="0" wParam="0" message="1601" type="3"/>
<Action sParam="" lParam="1" wParam="0" message="1625" type="3"/>
<Action sParam="\nC:\" lParam="0" wParam="0" message="1602" type="3"/>
<Action sParam="" lParam="512" wParam="0" message="1702" type="3"/>
<Action sParam="" lParam="1609" wParam="0" message="1701" type="3"/>
<Action sParam="" lParam="0" wParam="0" message="1700" type="3"/>
<Action sParam="__lib" lParam="0" wParam="0" message="1601" type="3"/>
<Action sParam="" lParam="1" wParam="0" message="1625" type="3"/>
<Action sParam="\n_lib" lParam="0" wParam="0" message="1602" type="3"/>
<Action sParam="" lParam="512" wParam="0" message="1702" type="3"/>
<Action sParam="" lParam="1609" wParam="0" message="1701" type="3"/>
</Macro>
la 1ere ligne originale (qui tient sur 1 seule ligne dans Message window !)
0 1 mikroCPIC1618.exe -MSF -DBG -pP18F26K22 -RA -C -O11111114 -fo16 -N"C:\_MikroC\_MesProjets_MikroC\_Solar_system\18F26K22_Irrigation_UART_ADC_RTC1307.mcppi" -EH"C:\_MikroC\_MesProjets_MikroC\_Solar_system\18F26K22_Irrigation_UART_ADC_RTC1302.ihex" -SP"C:\_MikroC\mikroC PRO for PIC\Defs\" -SP"C:\_MikroC\mikroC PRO for PIC\uses\P18\" -SP"C:\_MikroC\_MesProjets_MikroC\_Solar_system\" -SP"C:\_MikroC\_MesProjets_MikroC\common\" -SP"C:\_MikroC\_PICKIT2\" "_18F26K22_Irrigation_Control_170908.c" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_CString.mcl" "__Lib_CStdlib.mcl" "__Lib_CMath.mcl" "__Lib_Conversions.mcl" "__Lib_OneWire.mcl" "__Lib_ADC_K22_B.mcl" "__Lib_EEPROM_1024.mcl" "__Lib_I2C_c34b12.mcl" "__Lib_UART_c67b67.mcl"
un petit coup de macro, et hop, la meme ligne
0 1 mikroCPIC1618.exe -MSF -DBG -pP18F26K22 -RA -C -O11111114 -fo16 -N"
C:\_MikroC\_MesProjets_MikroC\_Solar_system\18F26K22_Irrigation_UART_ADC_RTC1307.mcppi" -EH"
C:\_MikroC\_MesProjets_MikroC\_Solar_system\18F26K22_Irrigation_UART_ADC_RTC1302.ihex" -SP"
C:\_MikroC\mikroC PRO for PIC\Defs\" -SP"
C:\_MikroC\mikroC PRO for PIC\uses\P18\" -SP"
C:\_MikroC\_MesProjets_MikroC\_Solar_system\" -SP"
C:\_MikroC\_MesProjets_MikroC\common\" -SP"
C:\_MikroC\_PICKIT2\" "_18F26K22_Irrigation_Control_170908.c" "
_lib_Math.mcl" "
_lib_MathDouble.mcl" "
_lib_System.mcl" "
_lib_Delays.mcl" "
_lib_CType.mcl" "
_lib_CString.mcl" "
_lib_CStdlib.mcl" "
_lib_CMath.mcl" "
_lib_Conversions.mcl" "
_lib_OneWire.mcl" "
_lib_ADC_K22_B.mcl" "
_lib_EEPROM_1024.mcl" "
_lib_I2C_c34b12.mcl" "
_lib_UART_c67b67.mcl"
et on colle cette ligne en fin de source dans un commentaire delimité par /* ..... */
on peut aussi y rajouter l'execution du programme
qui apparaitra sur le terminal, pour avoir une meilleur idee,
meme si au final on utilisera un LCD seulement.
Presentation :
Directory :C:\_MikroC\_MesProjets_MikroC\_Solar_system
MikroC pro 7.10
Projet :18F26K22_Irrigation_UART_ADC_RTC1302.mcppi
Irrigation Control System
Config bit : 18F26K22_Fosc_interne_16MHz_PWM2_RB3.cfgsch
Eeprom: _18F26K22_Irrigation_Control.ihex
Source : _18F26K22_Irrigation_Control__170908.c
Utilise Tiny_RTC_DS1307.inc et _Lcd_4x20_I2C.inc
Vous allez me dire .. c'est TROP ... t' exagéres !
oui, mais ...
La macro NotePad++
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par paulfjujo le ven. 15 sept. 2017 12:15, modifié 2 fois.
un petit plus dans la presentation de(source) programme
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour Paul,
Ton initiative est bonne, mais c'est vrai que c'est dur à mettre en œuvre et surtout d'harmoniser !
Les plus jeunes ne verront pas l’intérêt...
C'est avec l’expérience qu'on s'en rend compte
Pour ma part j'utilise un schéma pour le HARD
Je gère mes dossiers en cloud, un dossier par projet, et dedans je classe tout bien . Schema , programme , sauvegarde, impression 3D, ameliorations a faire, a venir etc ...
Ton initiative est bonne, mais c'est vrai que c'est dur à mettre en œuvre et surtout d'harmoniser !
Les plus jeunes ne verront pas l’intérêt...
C'est avec l’expérience qu'on s'en rend compte
Pour ma part j'utilise un schéma pour le HARD
Je gère mes dossiers en cloud, un dossier par projet, et dedans je classe tout bien . Schema , programme , sauvegarde, impression 3D, ameliorations a faire, a venir etc ...
un petit plus dans la presentation de(source) programme
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour Jeremy et tous,
Cela explique pourquoi il ne peuvent pas, dans certain cas, avoir de réponse à leur questions ou probleme.
J'utilise aussi bien sur des schema ( Isis, Diptrace ou simple dessin Manuel)
qu'on peut mettre , apres transformation en jpg ou gif
sous des
ACTIVE Comment
via la fenetre
Active Comment editor
il suffit ensuite de passer la souris dessus le lien (ex: Ac: schem ) pour voir ledit schema ...
L'inconvenient est que les liens sur ces "Actives Comments ont tendance à se "dissoudre "
avec les mise à jours du source ou renomage .. meme si les fichier images sont toujours dans le meme dossier ..
on peut aussi mettre un lien sur une datashett (pdf)
Ton Cloud est-il externe ? ou sur ton propre reseau intra-muraux , independant du Web ?
j'hesite à en utiliser un ..
pour l'instant j'ai une clé USB 64Go dédiée pour.
Les plus jeunes ne verront pas l’intérêt...
Cela explique pourquoi il ne peuvent pas, dans certain cas, avoir de réponse à leur questions ou probleme.
J'utilise aussi bien sur des schema ( Isis, Diptrace ou simple dessin Manuel)
qu'on peut mettre , apres transformation en jpg ou gif
sous des
ACTIVE Comment
via la fenetre
Active Comment editor
il suffit ensuite de passer la souris dessus le lien (ex: Ac: schem ) pour voir ledit schema ...
L'inconvenient est que les liens sur ces "Actives Comments ont tendance à se "dissoudre "
avec les mise à jours du source ou renomage .. meme si les fichier images sont toujours dans le meme dossier ..
on peut aussi mettre un lien sur une datashett (pdf)
Ton Cloud est-il externe ? ou sur ton propre reseau intra-muraux , independant du Web ?
j'hesite à en utiliser un ..
pour l'instant j'ai une clé USB 64Go dédiée pour.
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 34 invités