ошибка с задачей в микроконтроллере для картинки - PullRequest
0 голосов
/ 07 декабря 2011
char uart_rd;
int b;

void main() {
  ANSEL  = 0;    
  ANSELH = 0;
  C1ON_bit = 0;  
  C2ON_bit = 0;
  TRISC = 0;
  PORTC = 0x00;
  UART1_Init(9600);               
  Delay_ms(10);                  
  UART1_Write_Text("Start");          
  UART1_Write(10);             
  UART1_Write(13);

  while (1) {                     
    if (UART1_Data_Ready()) {     
      uart_rd = UART1_Read();     
      UART1_Write(uart_rd);       
      **WordtoInt(uart_rd, b)**- this line code is my error

       if(b <= 20)
       {
              PORTC = 0x01;
       }
       if(b > 20)&&(b <= 40)
       {
              PORTC = 0x03;
       }
       if(b > 40)&&(b <= 60)
       {
              PORTC = 0x07;
       }
       if(b > 60)&&(b <= 80)
       {
              PORTC = 0x0F;
       }
       if(b > 80)&&(b <= 100)
       {
              PORTC = 0x1F;
       }


    }
  }
}

Это моя задача.Когда я его создаю, он показывает мне ошибку.

Я читаю цифры из 0 to 100, которые указывают заряд батареи и, в зависимости от заряда, 0 to 5 контакты port C будут светиться.

Может кто-нибудь помочь мне, как найтифункция, которая конвертирует слово в int?

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Как насчет просто b = uart_rd; или b = (unsigned char)uart_rd;?

1 голос
/ 07 декабря 2011

uart_rd является однобайтовой переменной типа char.b находится в целочисленной переменной.Чтобы преобразовать uart_rd в b, просто сделайте это:

b = (int) uart_rd;
...