hi bin gerade dabei meinem microcontroller das multiplexen beizubringen aber irgentwie macht er das nicht was ich will.
die Variable "zwei" (nachher2) gibt er schon aus aber mit "eins" (nachher1) kann er noch nichts anfangen. Da gibt er nur 8 aus. Der Codirschalter soll den parport simulieren. Hat das schon mal einer gemacht und kann mir sagen was da im code falsch ist.
C
#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/sleep.h>
#include <avr/delay.h>
#ifndef F_CPU
#define F_CPU 3686400UL
#endif
uint8_t foo,a,b,c,d,e,f,g,h,i,j,eins,zwei;
int nachher2,nachher1;
int main (void) {
DDRD = 0xff; // Ausgang
DDRB = 0xff; // Ausgang
DDRC = 0x00; // Eingang
a=0b10000010; //0
b=0b11111010; //1
c=0b10100100; //2
d=0b11100000; //3
e=0b11011000; //4
f=0b11000001; //5
g=0b10000001; //6
h=0b11101010; //7
i=0b00000000; //8
j=0b11000000; //9
while(1) {
foo = PINC;
if (foo>=10){
switch(foo){
case 'foo>=10;foo<20':
nachher2=foo-10;
break;
case 'foo>=20;foo<30':
nachher2=foo-20;
break;
case 'foo>=30;foo<40':
nachher2=foo-30;
break;
case 'foo>=40;foo<50':
nachher2=foo-40;
break;
case 'foo>=50;foo<60':
nachher2=foo-50;
break;
case 'foo>=60;foo<70':
nachher2=foo-60;
break;
case 'foo>=70;foo<80':
nachher2=foo-70;
break;
case 'foo>=80;foo<90':
nachher2=foo-80;
break;
case 'foo>=90;foo<100':
nachher2=foo-90;
break;
}
if (foo>=10){
nachher1=foo/10;
}
}
switch(nachher1){
case 1:eins=b; break;
case 2:eins=c; break;
case 3:eins=d; break;
case 4:eins=e; break;
case 5:eins=f; break;
case 6:eins=g; break;
case 7:eins=h; break;
case 8:eins=i; break;
case 9:eins=j; break;
}
switch(nachher2){
case 1:zwei=b; break;
case 2:zwei=c; break;
case 3:zwei=d; break;
case 4:zwei=e; break;
case 5:zwei=f; break;
case 6:zwei=g; break;
case 7:zwei=h; break;
case 8:zwei=i; break;
case 9:zwei=j; break;
}
PORTD = 0b10111111;
PORTB = eins;
_delay_ms(10);
PORTD = 0b01111111;
PORTB = zwei;
_delay_ms(10);
}
return 0;
}
Alles anzeigen
Ich hoffe mal die Einrückung passt Programmieren hab ich nie gelernt.
Der code sieht länger aus als er ist
[Blockierte Grafik: http://kingdonderguru.ki.funpic.de/Bilder/multiplexen/P1010422.JPG]
mfg