Build error: expected 'asm' or '__attribute__' before 'char'

Pravděpodobně máš někde jedno rovnítko místo dvou.
if (x = 3) …
K takovému dotazu je dobré přidat příslušný kousek kódu.

V prvním kódu chybí na konci složená závorka. Možná by bylo lepší psát tyto závorky pod sebe aby bylo vidět jejich párování.

for (i = 0; i < 255 ; i++) { if(!(PINC & (1<<PC3))) obsah* = 0x01; else obsah*= 0x00; }
Ve druhém kódu musíš mazat displej, jinak se data zobrazují stále za sebou.

for (i=0; i <255;i++) { sprintf (buffer, "obsah%d] = %d", i, obsah*); lcd_clrscr(); lcd_puts(buffer); _delay_ms(1000); }
Doporučoval bych začít nové vlákno, dotazy už nemají s původním názvem nic společného.***