Hallo,
ich bin recht neu dabei und verstehe nicht warum ich keine internen pull up Wiederstaede aktivieren kann. Ich habe 2 Programme geschieben eins in C und das andere in Basic. Meines Erachtens gleichen sie sich, aber sie tuen nicht dasselbe.
Ziel:
portb pin0 = ausgang (LED) (HIGH = AN)
portb pin1 = eingang (Schalter) (HIGH = Schalter - offen)
Mein Basic Programm funktioniert (LED flakert nicht, pull up aktiv),
alles wunderbar.
Aber mein C Programm aktiviert sie einfach nicht!Code:Ddrb = &B00000001 Portb = &B00000010 Do If Pinb.1 = 0 Then Portb.0 = 1 Else Portb.0 = 0 End If Loop End
Kann sich das einer erklaeren? Ich nicht!Code:#include <avr/io.h> int main (void) { DDRB = 0x01; PORTB = 0x02; // GEHT NET =( while (1) { if ( (PINB & 0x02) == 0x00 ) PORTB = 0x01; else PORTB = 0x00; } }![]()
![]()
![]()
Uebrigens ist das Basic Programm auf XP uebersetzt worden (Bascom), wobei ich C unter Linux benutze (avr-gcc, avrdude).
Danke im Voraus.
mfg
martin









  
					
					
					
						
Zitieren

Lesezeichen