Quelltext bleibt immer stehen und geht nicht weiter

Gast #960190
Lesenswert?

Ich habe ein Problem der Quelltext bleibt immer an der stelle "1"

stehen und geht nicht weiter wenn ich das Programm in AVR studio 
laufenlassen möchte als Mikro. verwende ich einen atmega8.
brauch dringend HILFE
1
int main(void)
2
{
3
//lcd_init();            
4
//lcd_home();
5
DDRC  = 0x00;
6
PORTC = 0xff;
7
  
8
while(1)
9
{
10

11
  qwe = PINC;   // 1
12
if (qwe == 0b00000001);
13
{
14
//  lcd_string("1");  
15
}
16
....
17
}
#960314
Lesenswert?

Sorry, das war nicht als Antwort auf die eigentliche Frage gedacht, 
sondern als Zusatzhinweis. ;-)

Zur eigentlich Frage denke ich, dass die Zeile "qwe = PINC;" der einzige 
Inhalt der while-Schleife ist, weil der Rest wegoptimiert wurde. Der 
if-Block ist ja schon mal leer und wer weiß schon, was "...." ist. Dann 
scheint im Simulator die Ausführung an dieser Zeile hängenzubleiben, 
weil einfach nur immer wieder diese Zeile ausgeführt wird.
Moderator (Firma: Titel) Persönliche Seite #961558
Lesenswert?

>ein "=" ist an dieser Stelle definitiv falsch
Aber das ist doch egal, denn
>>es geht
und was will man mehr?   ;-)

@ Frank
Ich habe ja auch schon mal aus Versehen eine Zuweisung (=) statt eines 
Vergleichs (==) in eine Abfrage gemacht, aber ich war hinterher nicht 
stolz drauf...

Mit einer Zuweisung (=) hier
:
if (qwe = 0b00000001)
{
   irgendwas();
:
wird "irgendwas" immer ausgeführt. Denn da wird qwe zuerst der Wert 1 
zugewiesen, und dann geprüft ob qwe Null ist. Ist es natürlich nicht, 
und damit ist die Bedingung erfüllt.
Gast #961585
Lesenswert?

Ich wuerde mir mal ein C-Buch besorgen, das lesen und dann erst mit dem 
Programmieren anfangen. Wenn eine Posix-Umgebung vorhanden ist, finde 
ich immer noch das alte "Kernighan & Ritchie, Programmieren in ANSI-C" 
empfehlenswert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren