LusoRobótica - Robótica em Português
Software => C/C++ => Tópico iniciado por: dio123 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.
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)
}
}
-
tira o *
Ediit:
Ele esá-se a queixar que estar a passar um char(int8_t) a uma função uint.
-
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?
-
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.
-
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á.