Hi,
wie sieht den die Beschaltung aus und wie sieht der Code aus?
Hi,
wie sieht den die Beschaltung aus und wie sieht der Code aus?
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Also weil ich keine lust habe immer rumzustecken programmiere ich den code auf den rn controll (ATmega32)
ich habe eine led an PORT D4
und den Eingang versuch ich über PORT B4 einzulesen
der Code ist:
DDRB=(0<<PB4);//PORTB = (1<<PB4);
PINB=(0<<PB4);
DDRD=0xff;
PORTD=0x00;
while(1)
{
if(PINB&(1<<PINB4))
{
PORTD|=(1<<PB4);
}
else
{
PORTD&=~(1<<PD4);
}
Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!
Probier es mal so
Getestet auf dem RN-Control.Code:/* * Eingang.c * * Created: 30.03.2012 23:26:19 * Author: Daniel */ #include <avr/io.h> #include <util/delay.h> int main(void) { DDRC = 0xFF; // Kompletter Port C auf Ausgang DDRB = 0x00; // Kompletter Port B auf Eingang while(1) { if(PINB & (1<<PINB0)) { PORTC |= 0x01; } else { PORTC &= ~0x01; } } }
Edit:
Vergleich mal diese Zeilen:
PORTD |= (1<<PB4);
PORTD &= ~(1<<PD4);
Dann findest du den Fehler sicher![]()
Geändert von Kampi (30.03.2012 um 22:41 Uhr) Grund: Was ergänzt!
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
sorry ist aber genau das gleiche wie davor,
die led ist die ganze zeit an, und wenn ich PB0 gegen masse schalte geht die aus.
Aber was ich brauche wäre das wenn ich PB0 gegen 5V schalte, etwas passiert...
Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!
Ja weil das Board so aufgebaut ist.
Schau dir mal den Plan hier an:
http://www.rn-wissen.de/index.php/Bi...plan90grad.gif
Dort siehst du das die LEDs active Low sind d.h. sobald der Pin High ist sind die dunkel und bei Low leuchten sie. Wenn du willst das die LEDs leuchten wenn du den Schalter auf 5V ziehst, drehst du die If-Abfrage einfach um. Wenn PB0 = 0 ist ist PC0 = 1 und bei PB0 = 1 ist PC0 = 0.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
ne ich habe ja nicht die Led vom Board, dass weiß ich das die so funktionieren...
Habe eine externe led mit widerstand an port d4 gesteckt..
habe auch den Fehler behoben trotzdem ist die led die ganze zeit an, außer wenn ich auf PB4 auf masse gehe!
Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!
Ich kenne das Board nicht und weis jetzt auch nicht wie die Taster da drauf verschalten sind falls überhaupt schon welche drauf sind - oder wie du sie selbst verschalten hast falls du die selber da dran gebaut hast.
Aber ich würde mal tippen, dass du den Pulldown-Widerstand nach GND vergessen hast
(Ein offener Eingang wird als high erkannt, weil da ca. 1.6V von der Innenbeschaltung zurücksprotzen)
Lesezeichen