collapse

* Posts Recentes

Rede de comboios elétricos totalmente autónomos 10 ton em Rust em realtime. por blabla
[18 de Setembro de 2022, 18:44]


NiMH por 18650 por almamater
[18 de Setembro de 2022, 17:21]


How We Get Down to 0.2nm CPUs and GPUs - TechTechPotato por blabla
[18 de Setembro de 2022, 15:38]


Nova secção de Raspberry Pi Bare Metal em C e em Rust e Systems Programming por blabla
[04 de Setembro de 2022, 08:55]


The code for AGI will be simple - John Carmack and Lex Fridman por blabla
[29 de Agosto de 2022, 07:36]


Wavelets: a mathematical microscope por blabla
[28 de Agosto de 2022, 20:50]


Bom livro - Dive Into Systems por blabla
[28 de Agosto de 2022, 12:19]


graus negativos inclinação por josecarlos
[28 de Agosto de 2022, 11:31]


Super obsolescência super programada? por SerraCabo
[06 de Agosto de 2022, 11:36]


Motor de aspirador por dropes
[02 de Agosto de 2022, 22:18]

Autor Tópico: lcd 16x2 1 Warnings  (Lida 2708 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.028
lcd 16x2 1 Warnings
« em: 13 de Abril de 2014, 17:51 »
Boa tarde,

Quero por a funcionar o lcd com o avrstudio, mas sem usar o pino R/S. Depois de muita busca pelo google, encontrei qualquer fiz uns +/- um corte e coze e já consegui por a trabalhar.
Agora apareceu-me aqui um warning, já investiguei o erro mas nao consegui resolver o problema, mas funciona.

O erro é: ../lcd_test.c:78: warning: pointer targets in passing argument 1 of 'lcd_write_str' differ in signedness

Como posso resolver isto, e que estou ainda muito verde ainda na programação.
Citar
const char *frase =  "Hello World";   
int main(void)
{
    lcd_begin();                               
  lcd_write_str(frase);
     while(1);
    return 0;
}

void lcd_write_str(uint8_t theString[])
{
    volatile int i = 0;                             // character counter*/
    while (theString != 0)
    {
        lcd_write_cha(theString);
        i++;
        _delay_us(80);                              // 40 uS delay (min)
    }
}

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.731
  • Helpdesk do sitio
Re: lcd 16x2 1 Warnings
« Responder #1 em: 13 de Abril de 2014, 18:44 »
tira o *

Ediit:

Ele esá-se a queixar que estar a passar um char(int8_t) a uma função uint.
« Última modificação: 13 de Abril de 2014, 18:54 por senso »
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.028
Re: lcd 16x2 1 Warnings
« Responder #2 em: 23 de Abril de 2014, 11:47 »
A biblioteca do lcd já diz "ola" sem erros e warmings. No entanto surgiu-me umas erros/duvidas.

1- void envia_nibble(byte obyte)
{
//aqui apaga e tem os ifs para enviar nibble para o lcd.
}
O erro é este //../lcd_test.c:196: error: expected ')' before 'obyte'   
troquei byte por unit8_t obyte e já funciona mas queria saber por não dá  byte.

A segunda situação é nao conseguir criar uma variavel byte segui varios exemplos e nao consegui:
ex:  byte valor = 200;
dá-me 4 erros:
../lcd_test.c:68: error: 'byte' undeclared (first use in this function)
../lcd_test.c:68: error: (Each undeclared identifier is reported only once
../lcd_test.c:68: error: for each function it appears in.)
../lcd_test.c:68: error: expected ';' before 'valor'

O que está aqui mal?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.595
    • Tróniquices
Re: lcd 16x2 1 Warnings
« Responder #3 em: 23 de Abril de 2014, 12:03 »
O tipo de dados "byte" não está definido (duh :)). Este tipo não faz parte da "plataforma" standard de C/C++ portanto tens que o definir se o queres usar.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.028
Re: lcd 16x2 1 Warnings
« Responder #4 em: 23 de Abril de 2014, 16:17 »
colocar  typedef uint8_t byte , e depois usar byte é a mesma coisa do que colocar logo unit8_t.

isto com calma e aos poucos vai lá.