Hi!
outp() gibt es wie sbi()/cbi() nicht mehr. Benutz einfach
PORTB = 0x00;
x = PINB;
usw.
Ich fange gerade erst an mit der C-Programmierung und den µControllern aber ich glaube da muss ich widersprechen
Code:
#include <avr/io.h>
typedef int BYTE;
BYTE RECHTS;
BYTE LINKS;
int main (void)
{
outp (0xff,DDRC);
outp (0x00,DDRD);
outp (0x07,PORTD);
RECHTS = 0;
LINKS = 0;
for (;;) {
if (bit_is_clear (PIND, PIND0) & LINKS == 0){
RECHTS = 1;}
if (bit_is_clear (PIND, PIND1) & RECHTS == 0) {
LINKS = 1;}
if bit_is_clear (PIND, PIND2) {
LINKS = 0;
RECHTS = 0;}
if (RECHTS == 1 ) {
sbi (PORTC, 1);}
if (RECHTS == 0 ) {
cbi (PORTC, 1);}
if (LINKS == 1 ) {
sbi (PORTC, 0);}
if (LINKS == 0 ) {
cbi (PORTC, 0);}
}
Das ist ein kleines Programm mit dem ich noch vor zwei Tagen gespielt habe... funktioniert wunderbar. Mit PonyProg und einem Mega8.
Macht auch wenig Sinn wenn man eine Bitausgabe hat immer den ganzen Port beschreiben zu müssen.
Gruß Olli
Lesezeichen