Compter en ascii de 0 à 100
Résolu
messii57
-
messii57 -
messii57 -
Bonjour,
Je suis étudiant en BTS et pour mon projet, je dois configurer un afficheur µOLED de trois façons différentes: afficher une valeur TTL (0-5V) sous dorme de barregraph, numérique et analogique (compteur a aiguille).
Pour afficher ma tension en numérique de 0% a 100%, l'afficheur ne prends que du caractère ASCII, j'ai essayé avec un printf("%c") mais il ne prends pas les caractères donc rien ne s'affiche. Mes valeurs devraient évoluer de la sorte suivante:
0x30=0
0x31=1
.
.
.0x39=9
0x3130=10
0.3131=11
.
.
0x3139=19
0x3230=20
.
.
.
0x313030=100
Je ne peux pas déclarer de variable car la suite logique 0x39 serait 0x40, mais le code ascii de 0x3A qui est la suite logique de 0x39 est est ":".
Voilà je programme avec CCS et j'utilise un PIC1845f80 si vous pourriez me donner au moins la methode a suivre s'il y en a une, je vous remercie d'avance.
Je suis étudiant en BTS et pour mon projet, je dois configurer un afficheur µOLED de trois façons différentes: afficher une valeur TTL (0-5V) sous dorme de barregraph, numérique et analogique (compteur a aiguille).
Pour afficher ma tension en numérique de 0% a 100%, l'afficheur ne prends que du caractère ASCII, j'ai essayé avec un printf("%c") mais il ne prends pas les caractères donc rien ne s'affiche. Mes valeurs devraient évoluer de la sorte suivante:
0x30=0
0x31=1
.
.
.0x39=9
0x3130=10
0.3131=11
.
.
0x3139=19
0x3230=20
.
.
.
0x313030=100
Je ne peux pas déclarer de variable car la suite logique 0x39 serait 0x40, mais le code ascii de 0x3A qui est la suite logique de 0x39 est est ":".
Voilà je programme avec CCS et j'utilise un PIC1845f80 si vous pourriez me donner au moins la methode a suivre s'il y en a une, je vous remercie d'avance.
A voir également:
- Compter en ascii de 0 à 100
- Code ascii - Guide
- Remettre a 0 un pc - Guide
- Numéro de téléphone excel 0 - Guide
- Acpi\int33a0\0 ✓ - Forum Pilotes (drivers)
- Processeur utilisé a 100 en jeu ✓ - Forum Windows 10
#include <18f4580.h>
#device ADC=8
#include <GSGCdef.h>
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7)
unsigned char conv;
unsigned char volt;
//-------------------------------------------------------
void OLED_rectangle(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2, unsigned int16 color)
{
putc(GSGC_RECTANGLE);
putc(x1);
putc(y1);
putc(x2);
putc(y2);
putc(color/256);
putc(color%256);
}
//-------------------------------------------------------
void OLED_GRAPHICVOLTAGE(unsigned char x,unsigned char y,,unsigned char font,unsigned int16 color,unsigned char width,unsigned char height, unsigned char string, unsigned char terminator)
{
putc(GSGC_STRINGGFX);
putc(x);
putc(y);
putc(font);
putc(color/256);
putc(color%256);
putc(width);
putc(height);
putc(string);
putc(terminator);
}
//--------------------------------------------------------
//--------------------------------------------------------
void main(void)
{
SET_TRIS_B(0b00000000);
SET_TRIS_A(0b00000001);
setup_adc_ports(AN0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
putc(0x55);
delay_ms(500);
while(true)
{
conv=READ_ADC();
putc(0x45);
while(!ADC_done())
{
}
volt=conv*0.396;
delay_ms(100);
OLED_graphicvoltage(0x05,0x05,0x02,0x00FF,0x01,volt,0x00);
//OLED_STRINGTXT(0x01,0x01,0x02,0xF800,0x41,0x00);
delay_ms(10);
//OLED_RECTANGLE(0x00,0x24,volt,0x31,0xFF00);
delay_ms(100);
}
}