Caractère en ascii

messii57 -  
 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:

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.

1 réponse

  1. hilpert
     
    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");
    }
    0