Chybové hlásenie error: expected ')' before numeric constant

Zrdavim, mohol by sa mi niekto kuknut aku tu mam chybu…som zaciatocnik v programovani mikrokontrolerov.

ATmega8…AVRstudio4…

while (1); { if (PINC.5 !=1) { c=c+10; }; if (PINC.4 !=1) { c=c-10; };

Pripodmienkach mi vyhadzuje takuto chybu…
error: expected ‘)’ before numeric constant

zatial dik

:arrow_right: administrator: přejmenováno z "Chyba pri programovani…"

Zkus to takhle:

while (1)
{
	if (PINC.5 !=1) 
	{
		c=c+10;
	}
	if (PINC.4 !=1) 
	{
		c=c-10;
	}
}

za slozenyma zavorkama se obvykle strednik nedela, a kdyz napises strednik za tim while, tak ti to porad vykonava jen ten while cyklus

aj ked to dam takto tak to vyhadzuje tu istu chybu…

while (1)
{
if(PINC.4 == 0) c++;
}

Zkus

   if(bit_is_clear(PINC,4)) c++;

Vdaka…to uz prebehne…
Ale mam taky problem, pri zapojeni portu na tlacidlo mi program nereaguje…akoby ten vstup nedokazal zobrat log.0…

ako mam to tlacidlo zapojit?

jeste jedna otazecka, v cem programujes? PINC.1 ti funguje pouze v Codevision, ale podle te chyby bych spis rekl ze pouzivas WinAvr

Edit: ted sem si vsiml, ze delas v AVR studiu, tam tu hampulackou syntaxi PINC.1 pouzivat nemuzes, tam se jede myslim ze na cistym Cecku

zkus zapnout vnitrni pull-up
PORTC |= (1 << PC4);

zapol som pull-up a pouzil som v nekonecnej smycke tuto podmienku… if(!(PORTC & (1<<PC4))) … pri stlaceni tlacidla mi prikaz neprebehne … dam tu radsej viac toho kodu…

int main(void)
{
PORTC=0b00110000;
DDRC=0b00110000;
PORTC |= (1 << PC4);
lcd_init(LCD_DISP_ON);
while (1)
{
if(!(PORTC & (1<<PC4)))
{
lcd_gotoxy(7,0);
lcd_puts(“Martin”);
_delay_ms(1000);
}
}
}

tlacitko musis mat medzi pinom a GND

presne tak ho mam

no pokud vidim spravne tak mas spatne nastavenej registr DDRC, cislovani portu zacina na nule, tak musis pocitat poradne, jestlize tedy chces mit PC4 jako vstup tak to je patej pin, tedy musis mit DDRC=0b00100000;
tz mas nastavenej PC4 jako vystup

Vdaka…to som si ani neuvedomil…
No ale stale mi to na to tlacidlo nereaguje…

no nechces sem dat treba celej kod a zapojeni?

Že ti nejde tlačítko pravděpodobně soudíš podle toho, že ti to nevypíše to slovo. Seš si jistej, že ti jede správně displej? zkus pro začátek něco jednoduššího jako třeba ledku.

Display funguje spravne…to mam otestovane…
Tlacitko je tiez v poriadku…

#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "lcd.h"
#include "util_delay.h"

static const PROGMEM unsigned char copyRightChar] =
{
	0x07, 0x08, 0x13, 0x14, 0x14, 0x13, 0x08, 0x07,
	0x00, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x00
};

int main(void)
{
	PORTC=0b00110000;
	DDRC=0b00000000; 
	PORTC |= (1 << PC4); /* Pin PC4 pull-up enabled    */	
    
        /* initialize display, cursor off */
        lcd_init(LCD_DISP_ON);
	while (1)
	{
		if(!(PORTC & (1<<PC4)))
		{
		lcd_gotoxy(7,0);
		lcd_puts("Martin");
		_delay_ms(1000);
		}
	};
    return 0;	
}

Zapisujeme do PORTx, čteme z PINx.

Dakujem za rady…tlacitka som uz rozbehal…
Nie som v tomto obore moc doma, a preto si velmi vazim vasu pomoc.

nebol som prihlaseny…moj prispevok vyssie.