Caractère en ascii
messii57
-
hilpert -
hilpert -
Bonjour,
Mon but est d'afficher le pourcentage d'une tension TTL (0-5V) sur un afficheur qui ne comprends que des caractères ascii. Voici la déclaration qui permet d'afficher un chiffre ou une lettre:
j'ai déclaré une variable à l'emplacement du "string" après le unsigned char, mais je ne peux que mettre une valeur hexadécimale correspondant à un chiffre :
exemple: 9 en ascii = 0x39 mais 20 en ascii = 0x3230
de plus je veux compter de 0% a 100% et le code ascii n'est pas quelque chose de croissant pour passer de 9 à 10 ce n'est pas 0x39 à 0x40 mais 0x39 à 0x3130 31 pour le 1 et 30 pour le 0
Ce n'est pas proportionnel donc impossible avec une variable :(
Si quelqu'un as une idée de quelques lignes qui permettent de convertir directement un caractère en ascii ce serait plutôt cool pour la poursuite de mon projet BTS.
Mon but est d'afficher le pourcentage d'une tension TTL (0-5V) sur un afficheur qui ne comprends que des caractères ascii. Voici la déclaration qui permet d'afficher un chiffre ou une lettre:
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)
j'ai déclaré une variable à l'emplacement du "string" après le unsigned char, mais je ne peux que mettre une valeur hexadécimale correspondant à un chiffre :
exemple: 9 en ascii = 0x39 mais 20 en ascii = 0x3230
de plus je veux compter de 0% a 100% et le code ascii n'est pas quelque chose de croissant pour passer de 9 à 10 ce n'est pas 0x39 à 0x40 mais 0x39 à 0x3130 31 pour le 1 et 30 pour le 0
Ce n'est pas proportionnel donc impossible avec une variable :(
Si quelqu'un as une idée de quelques lignes qui permettent de convertir directement un caractère en ascii ce serait plutôt cool pour la poursuite de mon projet BTS.
A voir également:
- Caractère en ascii
- Code ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
1 réponse
Il faut que tu fasse comme ca:
#include <18F4580.h>
#device *=8 //permet de renvoyer que les 8bits de poids fort de la conversion
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include <MonLCD.c>
#define bp PIN_A4
#define led1 PIN_B1
float CONV;
float volt;
void main()
{
SET_TRIS_B(0b00000000);
SET_TRIS_A(0b00010001);
setup_adc_ports(AN0); //seul la broche RA0 est analogique
setup_adc(ADC_CLOCK_INTERNAL); // l'horloge interne est utilisée pour le CAN
set_adc_channel(0); // le CAN effectuera une lecture sur le channel 0 (AN0)
lcd_init();
while(1)
{
delay_ms(20);
CONV= READ_ADC();
volt=CONV*5/255;
lcd_gotoxy(6,1);
if (Volt>2.5)
{
output_high(led1);
lcd_gotoxy (4,2);
LCD_PUTC("feux allumees");
}
else
output_low(led1);
lcd_gotoxy (5,2);
LCD_PUTC("feux eteint");
}
#include <18F4580.h>
#device *=8 //permet de renvoyer que les 8bits de poids fort de la conversion
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include <MonLCD.c>
#define bp PIN_A4
#define led1 PIN_B1
float CONV;
float volt;
void main()
{
SET_TRIS_B(0b00000000);
SET_TRIS_A(0b00010001);
setup_adc_ports(AN0); //seul la broche RA0 est analogique
setup_adc(ADC_CLOCK_INTERNAL); // l'horloge interne est utilisée pour le CAN
set_adc_channel(0); // le CAN effectuera une lecture sur le channel 0 (AN0)
lcd_init();
while(1)
{
delay_ms(20);
CONV= READ_ADC();
volt=CONV*5/255;
lcd_gotoxy(6,1);
if (Volt>2.5)
{
output_high(led1);
lcd_gotoxy (4,2);
LCD_PUTC("feux allumees");
}
else
output_low(led1);
lcd_gotoxy (5,2);
LCD_PUTC("feux eteint");
}