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
afficheur Nokia 3310
D'accord.. Merci pour cette éclairage
j'apprends beaucoup chaque jour grasse a vous.
Au niveau de l’écran (bien que n'ayant pas encore simuler votre code). Lorsque je faissais avec mon code arduino mon ecrant n'acceptais que des valeurs de types char. et en convertissant mon analog read en char (j'ai oublier l'expression) est ce qu'il y'qura un visuel sur l'afficheur nokia??
ex
float valeur = capteur (mis pour le code jusqua la convertion en mv)
Nokia_ affiche(char(valeur))
est ce que ça peut fonctionner?
j'apprends beaucoup chaque jour grasse a vous.
Au niveau de l’écran (bien que n'ayant pas encore simuler votre code). Lorsque je faissais avec mon code arduino mon ecrant n'acceptais que des valeurs de types char. et en convertissant mon analog read en char (j'ai oublier l'expression) est ce qu'il y'qura un visuel sur l'afficheur nokia??
ex
float valeur = capteur (mis pour le code jusqua la convertion en mv)
Nokia_ affiche(char(valeur))
est ce que ça peut fonctionner?
afficheur Nokia 3310
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
la réponse est déja dans le source du zip posté précedement !
En simulation
F1 evolue de 0.00 à 999.75 par pas de 0.25
affiché en Gros carateres sur la 4em ligne , avec effacement des zero inutiles avant la virgule
à remplacer par ta mesure ADC avec +VRef=Vcc=5V -Vref=Vss
EA0=ADC_Read(0); // channel RA0
F1=(float) EA0 * 0.00488;
En simulation
F1 evolue de 0.00 à 999.75 par pas de 0.25
affiché en Gros carateres sur la 4em ligne , avec effacement des zero inutiles avant la virgule
à remplacer par ta mesure ADC avec +VRef=Vcc=5V -Vref=Vss
EA0=ADC_Read(0); // channel RA0
F1=(float) EA0 * 0.00488;
Code : Tout sélectionner
// init
float f1;
unisgned int EA0;
void Float_To_Ascii_2_decim(float chiffreDeci, char * pt)
{
unsigned int e=0;
unsigned int d=0;
e=(int)chiffreDeci ; // partie entière
d=(int)((chiffreDeci-(float)e)*100.0); // partie décimale(2 chiffres)
if (e/100>0) pt[0]=(char)((e/100)+0x30); // partie entiere de 999 a 0
else pt[0]=' ';
e=e%100;
if (e/10>0)pt[1]=(char)((e/10)+0x30);
else pt[1]=' ';
pt[2]=(char)((e%10)+0x30);
pt[3]=0x2C;
pt[4]=(char)((d/10)+0x30);
pt[5]=(char)((d%10)+0x30);
pt[6]=0 ;
}
void main()
{
F1=0.0;
........
........
do
{
....
UART1_Write_CText("Bigger Size..."); CRLF1();
Float_To_Ascii_2_decim(f1,txt);
Nokia_Write_Text_At(2,4,txt,1); // argument 1 =gros caratere sinon mettre 0 =normal
f1=f1+0.25;
if (f1>999.75)f1=0.0 ;
....
} while(1);
afficheur Nokia 3310
afficheur Nokia 3310
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
verifie bien si le fichier *.h et *.mcl sont dans ton projet
le contenu de ma fenettre Message apres compilation
le contenu de ma fenettre Message apres compilation
Code : Tout sélectionner
0 1 mikroCPIC1618.exe -MSF -DBG -pP18F26K22 -RA -C -DL -O11111114 -fo16 -EH"^C
C:\_MikroC\_MesProjets_MikroC\_Nokia_LCD_5110_2019\18F45K22_UART_Eeprom.ihex" -N"^C
C:\_MikroC\_MesProjets_MikroC\_Nokia_LCD_5110_2019\18F26K22_BASE_Test_My_Lib_Nokia5110_SPI1_Hard_or_Soft_2019.mcppi" -SP"^C
C:\_MikroC\mikroC PRO for PIC\Defs\" -SP"^C
C:\_MikroC\mikroC PRO for PIC\uses\P18\" -SP"^C
C:\_MikroC\_MesProjets_MikroC\_Nokia_LCD_5110_2019\" -SP"^C
C:\_MikroC\mikroC PRO for PIC\Packages\Nokia_5110_Advanced_Graphics_1_1\Uses\" -IP"^C
C:\_MikroC\mikroC PRO for PIC\uses\P18\" "_18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c" "My_Nokia_5110_MC_lib.mcl" "
_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_SPI_c345b123.mcl" "
_Lib_UART_c67b67.mcl"
0 1139 Available RAM: 3875 [bytes], Available ROM: 65536 [bytes]
0 122 Compilation Started P18F26K22.c
2623 123 Compiled Successfully P18F26K22.c
0 122 Compilation Started
_Lib_Delays.c
172 123 Compiled Successfully
_Lib_Delays.c
0 122 Compilation Started _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
312 1509 Generated baud rate is 19231 bps (error = 0.16 percent) _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
431 123 Compiled Successfully _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
200 1164 Variable 'x6' has been eliminated by optimizer _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
200 1164 Variable 'n' has been eliminated by optimizer _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
200 1164 Variable 'temp' has been eliminated by optimizer _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
201 1164 Variable 'f1' has been eliminated by optimizer _18F26k22_Test_Nokia_51110_SPI_Hard_or_soft_190813.c
0 127 All files Compiled in 266 ms
0 1144 Used RAM (bytes): 968 (25%) Free RAM (bytes): 2907 (75%) Used RAM (bytes): 968 (25%) Free RAM (bytes): 2907 (75%)
0 1144 Used ROM (bytes): 8374 (13%) Free ROM (bytes): 57162 (87%) Used ROM (bytes): 8374 (13%) Free ROM (bytes): 57162 (87%)
0 125 Project Linked Successfully 18F26K22_BASE_Test_My_Lib_Nokia5110_SPI1_Hard_or_Soft_2019.mcppi
0 128 Linked in 234 ms
0 129 Project '18F26K22_BASE_Test_My_Lib_Nokia5110_SPI1_Hard_or_Soft_2019.mcppi' completed: 1016 ms
0 103 Finished successfully: 15 août 2019, 19:34:04 18F26K22_BASE_Test_My_Lib_Nokia5110_SPI1_Hard_or_Soft_2019.mcppi
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par paulfjujo le jeu. 15 août 2019 19:38, modifié 1 fois.
afficheur Nokia 3310
afficheur Nokia 3310
afficheur Nokia 3310
afficheur Nokia 3310
OK je l'ai fait ça a fonctionné merci
J'avais appercu ce fichier depuis longtemps et je refusais de croire que ça avait été écrit pas un Homme
S'il vous plait dite moi que le fichier .mcl est un fichier système par ce que la je ne comprend absolument rien de son contenue
Et aussi le contenue de vos fonctions se trouve dans quel fichier svp??? Ou bien elles sont deja pris en comptre par le compilateur?
J'avais appercu ce fichier depuis longtemps et je refusais de croire que ça avait été écrit pas un Homme
S'il vous plait dite moi que le fichier .mcl est un fichier système par ce que la je ne comprend absolument rien de son contenue
Et aussi le contenue de vos fonctions se trouve dans quel fichier svp??? Ou bien elles sont deja pris en comptre par le compilateur?
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
afficheur Nokia 3310
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
PRNN-lab a écrit :OK je l'ai fait ça a fonctionné merci
J'avais appercu ce fichier depuis longtemps et je refusais de croire que ça avait été écrit pas un Homme
S'il vous plait dite moi que le fichier .mcl est un fichier système par ce que la je ne comprend absolument rien de son contenue
Et aussi le contenue de vos fonctions se trouve dans quel fichier svp??? Ou bien elles sont deja pris en comptre par le compilateur?
le fichier *.mcl n'est pas un fichier systeme
c'est un fichier semi-compilé
qui est le resultat de la compilation du fichier source My_Nokia_5110_MC_lib.c
pour generer ce fichier *.MCL , utilisable sans le source C originel.
MikroC a une option dans
Tools
Options
Ouptut
Output Settings
compiler
build all files as libray (coché!)
je recommande aussi l'option
case sentitive (cochée !)
il faudra ,bien sur inclure d'abord une premiere fois, le fichier source original dans le projet , pour qu'il puisse être compilé !
et par la suite , on aura plus besoin de celui-ci
puisse qu'on recuperera le *.mcl à la fin de cette 1ere compilation.
Dans ce fichier *.mcl , on trouve donc toutes les fonctions détaillées , presentées par le fichier Header *.H
Le fichier Header servant à faire connaitre au compilateur le nom des fonctions à inclure.
ci dessous le fichier source yant servi préalablement à obtenir le fichier *.MCL ( utilisé par la suite)
Code : Tout sélectionner
// rev 13/08/2019
#include "My_Nokia_5110_MC_lib.h"
//#define Mode_SPI_Bit_Bang
//#define Mode_SPI_HARDWARE
extern sfr bit Nokia_DC ;// LATC.B1; // choix Data ou Cde
extern sfr bit Nokia_CE ; // LATC.B0; // selection device
extern sfr bit Nokia_RST ; // LATC.B2; // RESET
extern sfr bit Nokia_MOSI; // LATC.B5 ; // SSP1 DOUT MOSI
extern sfr bit Nokia_SCLK ;// LATC.B3; // SSP1 clock
unsigned char LcdCache [768]; //need 768 !
unsigned int LcdPos = 0;
unsigned short newline=0;
int ddram;
// modif 24-02-2014 was unsigned short = byte
unsigned int charsel,char_row,charpos,chardata,plot_value;
long plot_value32,plot_llsb,plot_ulsb,plot_lmsb,plot_umsb;
//Table 5x7 96 rows * 5 bytes= 480 bytes
const char TABLE_car[480]=
{0x00,0x00,0x00,0x00,0x00, // 20 space ASCII table for NOKIA
0x00,0x00,0x5f,0x00,0x00, // 21 !
0x00,0x07,0x00,0x07,0x00, // 22 "
0x14,0x7f,0x14,0x7f,0x14, // 23 #
0x24,0x2a,0x7f,0x2a,0x12, // 24 $
0x23,0x13,0x08,0x64,0x62, // 25 %
0x36,0x49,0x55,0x22,0x50, // 26 &
0x00,0x05,0x03,0x00,0x00, // 27 '
0x00,0x1c,0x22,0x41,0x00, // 28 (
0x00,0x41,0x22,0x1c,0x00, // 29 )
0x14,0x08,0x3e,0x08,0x14, // 2a *
0x08,0x08,0x3e,0x08,0x08, // 2b +
0x00,0x50,0x30,0x00,0x00, // 2c ,
0x08,0x08,0x08,0x08,0x08, // 2d -
0x00,0x60,0x60,0x00,0x00, // 2e .
0x20,0x10,0x08,0x04,0x02, // 2f /
0x3e,0x51,0x49,0x45,0x3e, // 30 0
0x00,0x42,0x7f,0x40,0x00, // 31 1
0x42,0x61,0x51,0x49,0x46, // 32 2
0x21,0x41,0x45,0x4b,0x31, // 33 3
0x18,0x14,0x12,0x7f,0x10, // 34 4
0x27,0x45,0x45,0x45,0x39, // 35 5
0x3c,0x4a,0x49,0x49,0x30, // 36 6
0x01,0x71,0x09,0x05,0x03, // 37 7
0x36,0x49,0x49,0x49,0x36, // 38 8
0x06,0x49,0x49,0x29,0x1e, // 39 9
0x00,0x36,0x36,0x00,0x00, // 3a :
0x00,0x56,0x36,0x00,0x00, // 3b ;
0x08,0x14,0x22,0x41,0x00, // 3c <
0x14,0x14,0x14,0x14,0x14, // 3d =
0x00,0x41,0x22,0x14,0x08, // 3e >
0x02,0x01,0x51,0x09,0x06, // 3f ?
0x32,0x49,0x79,0x41,0x3e, // 40 @
0x7e,0x11,0x11,0x11,0x7e, // 41 A
0x7f,0x49,0x49,0x49,0x36, // 42 B
0x3e,0x41,0x41,0x41,0x22, // 43 C
0x7f,0x41,0x41,0x22,0x1c, // 44 D
0x7f,0x49,0x49,0x49,0x41, // 45 E
0x7f,0x09,0x09,0x09,0x01, // 46 F
0x3e,0x41,0x49,0x49,0x7a, // 47 G
0x7f,0x08,0x08,0x08,0x7f, // 48 H
0x00,0x41,0x7f,0x41,0x00, // 49 I
0x20,0x40,0x41,0x3f,0x01, // 4a J
0x7f,0x08,0x14,0x22,0x41, // 4b K
0x7f,0x40,0x40,0x40,0x40, // 4c L
0x7f,0x02,0x0c,0x02,0x7f, // 4d M
0x7f,0x04,0x08,0x10,0x7f, // 4e N
0x3e,0x41,0x41,0x41,0x3e, // 4f O
0x7f,0x09,0x09,0x09,0x06, // 50 P
0x3e,0x41,0x51,0x21,0x5e, // 51 Q
0x7f,0x09,0x19,0x29,0x46, // 52 R
0x46,0x49,0x49,0x49,0x31, // 53 S
0x01,0x01,0x7f,0x01,0x01, // 54 T
0x3f,0x40,0x40,0x40,0x3f, // 55 U
0x1f,0x20,0x40,0x20,0x1f, // 56 V
0x3f,0x40,0x38,0x40,0x3f, // 57 W
0x63,0x14,0x08,0x14,0x63, // 58 X
0x07,0x08,0x70,0x08,0x07, // 59 Y
0x61,0x51,0x49,0x45,0x43, // 5a Z
0x00,0x7f,0x41,0x41,0x00, // 5b [
0x02,0x04,0x08,0x10,0x20, // 5c
0x00,0x41,0x41,0x7f,0x00, // 5d
0x04,0x02,0x01,0x02,0x04, // 5e
0x40,0x40,0x40,0x40,0x40, // 5f
0x00,0x01,0x02,0x04,0x00, // 60
0x20,0x54,0x54,0x54,0x78, // 61 a
0x7f,0x48,0x44,0x44,0x38, // 62 b
0x38,0x44,0x44,0x44,0x20, // 63 c
0x38,0x44,0x44,0x48,0x7f, // 64 d
0x38,0x54,0x54,0x54,0x18, // 65 e
0x08,0x7e,0x09,0x01,0x02, // 66 f
0x0c,0x52,0x52,0x52,0x3e, // 67 g
0x7f,0x08,0x04,0x04,0x78, // 68 h
0x00,0x44,0x7d,0x40,0x00, // 69 i
0x20,0x40,0x44,0x3d,0x00, // 6a j
0x7f,0x10,0x28,0x44,0x00, // 6b k
0x00,0x41,0x7f,0x40,0x00, // 6c l
0x7c,0x04,0x18,0x04,0x78, // 6d m
0x7c,0x08,0x04,0x04,0x78, // 6e n
0x38,0x44,0x44,0x44,0x38, // 6f o
0x7c,0x14,0x14,0x14,0x08, // 70 p
0x08,0x14,0x14,0x18,0x7c, // 71 q
0x7c,0x08,0x04,0x04,0x08, // 72 r
0x48,0x54,0x54,0x54,0x20, // 73 s
0x04,0x3f,0x44,0x40,0x20, // 74 t
0x3c,0x40,0x40,0x20,0x7c, // 75 u
0x1c,0x20,0x40,0x20,0x1c, // 76 v
0x3c,0x40,0x30,0x40,0x3c, // 77 w
0x44,0x28,0x10,0x28,0x44, // 78 x
0x0c,0x50,0x50,0x50,0x3c, // 79 y
0x44,0x64,0x54,0x4c,0x44, // 7a z
0x00,0x08,0x36,0x41,0x00, // 7b
0x00,0x00,0x7f,0x00,0x00, // 7c
0x00,0x41,0x36,0x08,0x00, // 7d
0x10,0x08,0x08,0x10,0x08, // 7e
0x78,0x46,0x41,0x46,0x78 // 7f
};
/* Rappel
void Nokia_Init(void);
void Nokia_Write_Command(char Nokia_cmd);
void Nokia_Write_Donnee(char Nokia_data);
void Nokia_Write_Byte(char Nokia_byte);
void Nokia_Gotoxy(unsigned char Xnokia, unsigned char Ynokia);
void Nokia_Erase_y(unsigned char Ynokia);
void Nokia_Erase_x(unsigned char Xnokia);
void Nokia_Print_Char(unsigned char cvar, char Bold);
void Nokia_Print_Str(char *ptr,char Bold); // size 5x7 ou 10x7
void Nokia_Clean_Ddram(void);
void Nokia_Plot(unsigned char Xnokia,unsigned char plot_value8);
void Nokia_Write_Donnee_Inv(char Nokia_data_inv);
void Nokia_Clear_Screen(void);
void Nokia_Clear_XY(unsigned char Xnokia, unsigned char Ynokia);
void Nokia_Print_uparrow(void);
void Nokia_Print_downarrow(void);
void Nokia_Print_leftarrow(void);
void Nokia_Print_rightarrow(void);
void Nokia_Print_degree(void);
void Nokia_Print_lowbatdegree(void);
void Nokia_Write_Text_At(char x, char y, char *ptr,char Bold) ;
void Nokia_Write_Text(char *ptr,char Bold) ;
void Nokia_Write_CText_At(char x, char y, const char *ptr,char Bold);
void Nokia_Pixel(unsigned char pX,unsigned char pY,unsigned char pMode);
void Nokia_line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char lineMode);
void Nokia_Rect(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char rectMode);
void Nokia_Circle(unsigned char centerX,unsigned char centerY,unsigned char radius,unsigned char circleMode);
void Nokia_Redraw(void);
void Nokia_CLS(void);
*/
void Nokia_Pixel(unsigned char pixelX,unsigned char pixelY,unsigned char pixelMode)
{
unsigned int index;
unsigned char offset;
if ( pixelX > 83 ) return;
if ( pixelY > 47 ) return;
index = ((pixelY / 8) * 84) + pixelX;
offset= pixelY - ((pixelY / 8) * 8);
if (pixelMode == 0) LcdCache[index] &= ~(0x01 << offset);
if (pixelMode == 1) LcdCache[index] |= (0x01 << offset);
if (pixelMode == 2) LcdCache[index] ^= (0x01 << offset);
}
void Nokia_Line(unsigned char x1,unsigned char y1,
unsigned char x2,unsigned char y2,
unsigned char lineMode)
{
int dx, dy, stepx, stepy, fraction;
dy = y2 - y1;
dx = x2 - x1;
if ( dy < 0 )
{
dy = -dy;
stepy = -1;
}
else stepy = 1;
if ( dx < 0 )
{
dx = -dx;
stepx = -1;
}
else stepx = 1;
dx <<= 1;
dy <<= 1;
Nokia_Pixel( x1, y1, lineMode );
if ( dx > dy )
{
fraction = dy - (dx >> 1);
while ( x1 != x2 )
{
if ( fraction >= 0 )
{
y1 += stepy;
fraction -= dx;
}
x1 += stepx;
fraction += dy;
Nokia_Pixel( x1, y1, lineMode );
}
}
else
{
fraction = dx - (dy >> 1);
while ( y1 != y2 )
{
if ( fraction >= 0 )
{
x1 += stepx;
fraction -= dy;
}
y1 += stepy;
fraction += dx;
Nokia_Pixel( x1, y1, lineMode );
}
}
}
void Nokia_Redraw(void)
{
unsigned int a;
Nokia_Gotoxy(0,0); // Se placer en 0,0
LcdPos = 0;
for (a=0;a<504;a++)
{
Nokia_Write_Donnee(LcdCache[a]);
}
}
void Nokia_Rect(unsigned char x1,unsigned char y1,
unsigned char x2,unsigned char y2,
unsigned char rectMode)
{
Nokia_Line(x1,y1,x2,y1,rectMode);
Nokia_Line(x2,y1,x2,y2,rectMode);
Nokia_Line(x2,y2,x1,y2,rectMode);
Nokia_Line(x1,y2,x1,y1,rectMode);
Nokia_Redraw();
}
void Nokia_Circle(unsigned char centerX,unsigned char centerY,
unsigned char radius,
unsigned char circleMode)
{
signed int tswitch;
unsigned char y, x = 0;
unsigned char d;
d = centerY - centerX;
y = radius;
tswitch = 3 - 2 * radius;
while (x <= y)
{
Nokia_Pixel(centerX + x,centerY + y, circleMode);
Nokia_Pixel(centerX + x,centerY - y, circleMode);
Nokia_Pixel(centerX - x,centerY + y, circleMode);
Nokia_Pixel(centerX - x,centerY - y, circleMode);
Nokia_Pixel(centerY + y - d, centerY + x, circleMode);
Nokia_Pixel(centerY + y - d, centerY - x, circleMode);
Nokia_Pixel(centerY - y - d, centerY + x, circleMode);
Nokia_Pixel(centerY - y - d, centerY - x, circleMode);
if (tswitch < 0) tswitch += (4 * x + 6);
else {
tswitch += (4 * (x - y) + 10);
y--;
}
x++;
}
Nokia_Redraw();
}
void Nokia_Init(void)
{
Nokia_SCLK=1;
Nokia_DC=1;
Nokia_CE=0;
Nokia_RST=0; // reset chip during 100ms
Delay_ms(250);
Nokia_CE=1;
Nokia_RST=1;
Delay_ms(200);
Nokia_Write_Command(0x21); // set extended instruction set
Nokia_Write_Command(0x90); // 0x90 was 0xc2 LCD=;3.06+162*0.06=4.02
Nokia_Write_Command(0x05);
Nokia_Write_Command(0x13); //0x13 bias 1:48 -> n=4
Nokia_Write_Command(0x20); // horiz mode Droite, X autoincremente
Delay_ms(150);
Nokia_Write_Command(0x0c); // mod control normal change
Delay_ms(50);
}
void Nokia_Clean_Ddram(void)
{
Nokia_CE=0;
Nokia_Gotoxy(0,0); // 96*8=768 84*6=504 clear LCD
for (ddram=0;ddram<504;ddram++)
{
Nokia_Write_Donnee(0x00);
LcdCache[ddram]=0;
Delay_us(20);
}
Nokia_Gotoxy(0,0);
Nokia_CE=1;
}
void Nokia_Write_Command(char Nokia_cmd)
{
Nokia_DC=0; // byte is a command it is read with the eight SCLK pulse
Nokia_CE=0; // chip enabled
Delay_us(25);
Nokia_Write_Byte(Nokia_cmd);
Nokia_CE=1; // chip disabled
}
void Nokia_Write_Donnee(char Nokia_data)
{
Nokia_DC=1;
Nokia_CE=0; // chip enabled
Delay_us(25);
Nokia_Write_Byte(Nokia_data);
Nokia_CE=1; // chip disabled
}
void Nokia_Write_Byte(char Nokia_byte) // serial write data or command
{
char caa;
#ifdef Mode_SPI_Bit_Bang
for (caa=8;caa>0;caa--)
{
Nokia_SCLK=0;
Delay_us(10);
if ((Nokia_byte&0x80)==0){Nokia_MOSI=0;}
else {Nokia_MOSI=1;}
Nokia_SCLK=1;
Nokia_byte= Nokia_byte << 1;
}
#endif
#ifdef Mode_SPI_HARDWARE
SPI1_Write(Nokia_byte);
#endif
}
void Nokia_Gotoxy(unsigned char Xnokia, unsigned char Ynokia)
{
Nokia_Write_Command(0x40|(Ynokia&0x07)); // Y axe initialisation: 0100 0yyy
Nokia_Write_Command(0x80|(Xnokia&0x7f)); // X axe initialisation: 1xxx xxxx
}
void Nokia_Erase_y(unsigned char Ynokia)
{
char row;
for(row=0;row<84;row=row+6) // 84-6 sinon car un ' '=6 pixels sinon deborde ligne suivante
{
Nokia_Gotoxy(row,Ynokia);
Delay_us(10);
Nokia_Print_Char(' ',0);
Delay_us(10);
}
Nokia_Gotoxy(0,Ynokia);
}
void Nokia_CLS()
{int i;
Nokia_Gotoxy(0,0);
for (i=0;i<84;i=i+8)
{
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
}
Nokia_Gotoxy(0,0);
}
void Nokia_Erase_x(unsigned char Xnokia)
{
char column;
for (column=0;column<8;column++){
Nokia_Gotoxy(Xnokia,column);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00); Nokia_Write_Donnee(0x00);
}
}
void Nokia_Print_Char(unsigned char cvar,char Bold) // Write 1 character to LCD
{
charsel=cvar;
if (charsel<0x0020)return;
if (charsel>0x007f)return;
for (char_row=0;char_row<5;char_row++)
{ // 5 bytes largeur matrice caractere
charpos=(charsel-0x0020)*5;
chardata=TABLE_car[(charpos+char_row)];
Nokia_Write_Donnee(chardata); // send data to nokia
if(Bold>0) Nokia_Write_Donnee((unsigned char)chardata);
}
Nokia_Write_Donnee(0x00); // 1 byte (always blank)
}
void Nokia_Plot(unsigned char Xnokia,unsigned char plot_value8)
{
char i;
plot_value32=0;
//plot_value32|=1; // unremark this if you want dotgraph instead of bargraph
for (i=0;i!=plot_value8;i++){
// plot_value32|=1; // remark this if you want dotgraph instead of bargraph
plot_value32<<=1;
}
plot_value32|=2; // bottom line is always filled
plot_llsb=(plot_value32&0xff);
plot_ulsb=((plot_value32>>8)&0xff);
plot_lmsb=((plot_value32>>16)&0xff);
plot_umsb=((plot_value32>>24)&0xff);
Nokia_Gotoxy(Xnokia,1);
Nokia_Write_Donnee_Inv(plot_umsb);
Nokia_Gotoxy(Xnokia,2);
Nokia_Write_Donnee_Inv(plot_lmsb);
Nokia_Gotoxy(Xnokia,3);
Nokia_Write_Donnee_Inv(plot_ulsb);
Nokia_Gotoxy(Xnokia,4);
Nokia_Write_Donnee_Inv(plot_llsb);
}
void Nokia_Write_Donnee_Inv(char Nokia_data_inv)
{
char caa;
Nokia_DC=1;
Nokia_CE=0; // chip enabled
for (caa=8;caa>0;caa--) {
Nokia_SCLK=0;
Delay_us(10);
if ((Nokia_data_inv&0x01)==0){Nokia_MOSI=0;}
else {Nokia_MOSI=1;}
Nokia_SCLK=1;
Nokia_data_inv=Nokia_data_inv>>1;
}
Nokia_CE=1; // chip disabled
}
void Nokia_Clear_Screen(void)
{
Nokia_Erase_y(0);
Nokia_Erase_y(1);
Nokia_Erase_y(2);
Nokia_Erase_y(3);
Nokia_Erase_y(4);
Nokia_Erase_y(5);
Nokia_Erase_y(6);
Nokia_Erase_y(7);
}
void Nokia_Clear_XY(unsigned char Xnokia, unsigned char Ynokia)
{
Nokia_Gotoxy(Xnokia,Ynokia);
Nokia_Print_Char(' ',0);
Nokia_Gotoxy(Xnokia,Ynokia);
}
void Nokia_Print_uparrow(void)
{
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x04);
Nokia_Write_Donnee(0x02);Nokia_Write_Donnee(0x7f);
Nokia_Write_Donnee(0x02);Nokia_Write_Donnee(0x04);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
//
void Nokia_Print_downarrow(void)
{
Nokia_Write_Donnee(0x10);Nokia_Write_Donnee(0x20);
Nokia_Write_Donnee(0x7f);Nokia_Write_Donnee(0x20);
Nokia_Write_Donnee(0x10);Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
//
void Nokia_Print_leftarrow(void)
{
Nokia_Write_Donnee(0x08);Nokia_Write_Donnee(0x1c);
Nokia_Write_Donnee(0x2a);Nokia_Write_Donnee(0x08);
Nokia_Write_Donnee(0x08);Nokia_Write_Donnee(0xf8);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
//
void Nokia_Print_rightarrow(void)
{
Nokia_Write_Donnee(0x08);Nokia_Write_Donnee(0x08);
Nokia_Write_Donnee(0x2a);Nokia_Write_Donnee(0x1c);
Nokia_Write_Donnee(0x08);Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
//
void Nokia_Print_degree(void)
{
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x06);
Nokia_Write_Donnee(0x09);Nokia_Write_Donnee(0x09);
Nokia_Write_Donnee(0x06);Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
void Nokia_Print_lowbatdegree(void)
{
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x06);
Nokia_Write_Donnee(0x0f);Nokia_Write_Donnee(0x0f);
Nokia_Write_Donnee(0x06);Nokia_Write_Donnee(0x00);
Nokia_Write_Donnee(0x00);Nokia_Write_Donnee(0x00);
}
void Nokia_Write_CText_At(char x, char y, const char *ptr,char Bold)
{
Nokia_Gotoxy(x,y);
while(*ptr!=0)
{
Nokia_Print_Char(*ptr++,Bold);
Delay_us(200);
}
}
void Nokia_Write_Text_At(char x, char y, char *ptr,char Bold)
{
Nokia_Gotoxy(x,y);
while(*ptr!=0)
{
Nokia_Print_Char(*ptr++,Bold);
Delay_us(200);
}
}
//--------------------------------
void Nokia_Write_Text(char *ptr,char Bold)
{
while(*ptr!=0)
{
Nokia_Print_Char(*ptr++,Bold);
Delay_us(200);
}
}
Nota: les Packages de librairies externe à MikroE , voir Libstock sur la page internet de mIKROeLEKTRONICA OU VIA Le HELP de MikroC
contiennent aussi , à titre d'exmemple , un fichier "Nokia_5110_Basics.mcl " à inclure dans le projet , directorie "Binaries"
EXEMPLE / Nokia_5110_Advanced_Graphics_1_1 ( mais ce n'est pas ce package qui a été utilisé dans mon cas)
il faut Package_Manager pour importer et utiliser des package externes à MikroC, dispo sur libstock
une fois installé, ils s'ajoute dans la liste du " Libraries Manager" , apres la liste system.
...ça necesssiterait un tuto complet ..
afficheur Nokia 3310
Non je comprend justement c'est ce package que j'ai installée et que j'ai pas pu utiliser.
Si le fichier .clm est un fichier crée lors de la compilation ça répond a ma question j'avais juste peur que c'etais a moi de l’écrire
Encore merci pour ces explication. Je n'ai pas encore atteins le niveau de création de ma propre librairie mais lors des simulations réel que je ferais je saurais comment utiliser la votre et la modifier pour mon résultat final encore Grand merci.
Ça prouve que j'ai encore beaucoup a apprendre sur la programmation des pic .
Vous concernant c’était une matière dispensée a l’école ou bien vous y êtes aller en autodidacte?
Si le fichier .clm est un fichier crée lors de la compilation ça répond a ma question j'avais juste peur que c'etais a moi de l’écrire
Encore merci pour ces explication. Je n'ai pas encore atteins le niveau de création de ma propre librairie mais lors des simulations réel que je ferais je saurais comment utiliser la votre et la modifier pour mon résultat final encore Grand merci.
Ça prouve que j'ai encore beaucoup a apprendre sur la programmation des pic .
Vous concernant c’était une matière dispensée a l’école ou bien vous y êtes aller en autodidacte?
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 135 invités