Sp666dy
09.07.2012, 19:06
Guten Tag,
also ich habe bis jetzt den Kapazitäten Sensor immer aus Hardware (http://www.modding-faq.de/Forum/index.php?topic=20032.0) gemacht, da ich jetzt ein bisschen platz sparen wollte,
wollte ich nur zwei PORT's vom micro benutzen oder wenn es mir einer erklärt aus ein Port HIER (http://elm-chan.org/works/capsens/report_e.html).
Jetzt habe ich im netz ein code Schnipsel gefunden, der aber nur bei Berührung funktionier und auch nicht die Näherung
sonder ehrlich 1 oder 0 ist.
#defineF_CPU9600000
#include<avr/io.h>
#include<util/delay.h>
#include<stdint.h>
intmain(void)
{
uint16_ti,d;
DDRB|=(1<<PB1);
while(1)
{
d = 1;
for(i=1;i<1500;i++)
{
DDRB&=~(1<<PB3);// B3 hochohmig
PORTB|=(1<<PB4);// B4 high
DDRB|=(1<<PB4);// B4 niederohmig
if(!(PINB&(1<<PB3)))
break;
DDRB&=~(1<<PB4);// B4 hochohmig
PORTB&=~(1<<PB4);// ohne Pullup
DDRB|=(1<<PB3);// B3 high
d++;
}
PORTB&=~(1<<PB3);
PORTB&=~(1<<PB4);
DDRB|=(1<<PB3);
DDRB|=(1<<PB4);
if (d < 50)
PORTB|=(1<<PB1);
else
PORTB&=~(1<<PB1);
_delay_ms(50);
}
}
Hab mehret Kondensatoren benutzt aber bei 2.2 nf klappt es am besten, mit der Einschränkung das es nur bei Berührung geht.
Hat jemand eine Idee wieso? oder hat jemand ein anderen Code? Oder weiß jemand wie und ob das Projekt
mit dem einen Port klappt, denn im Video sieht es recht zuverlässig aus.
Gruß David
also ich habe bis jetzt den Kapazitäten Sensor immer aus Hardware (http://www.modding-faq.de/Forum/index.php?topic=20032.0) gemacht, da ich jetzt ein bisschen platz sparen wollte,
wollte ich nur zwei PORT's vom micro benutzen oder wenn es mir einer erklärt aus ein Port HIER (http://elm-chan.org/works/capsens/report_e.html).
Jetzt habe ich im netz ein code Schnipsel gefunden, der aber nur bei Berührung funktionier und auch nicht die Näherung
sonder ehrlich 1 oder 0 ist.
#defineF_CPU9600000
#include<avr/io.h>
#include<util/delay.h>
#include<stdint.h>
intmain(void)
{
uint16_ti,d;
DDRB|=(1<<PB1);
while(1)
{
d = 1;
for(i=1;i<1500;i++)
{
DDRB&=~(1<<PB3);// B3 hochohmig
PORTB|=(1<<PB4);// B4 high
DDRB|=(1<<PB4);// B4 niederohmig
if(!(PINB&(1<<PB3)))
break;
DDRB&=~(1<<PB4);// B4 hochohmig
PORTB&=~(1<<PB4);// ohne Pullup
DDRB|=(1<<PB3);// B3 high
d++;
}
PORTB&=~(1<<PB3);
PORTB&=~(1<<PB4);
DDRB|=(1<<PB3);
DDRB|=(1<<PB4);
if (d < 50)
PORTB|=(1<<PB1);
else
PORTB&=~(1<<PB1);
_delay_ms(50);
}
}
Hab mehret Kondensatoren benutzt aber bei 2.2 nf klappt es am besten, mit der Einschränkung das es nur bei Berührung geht.
Hat jemand eine Idee wieso? oder hat jemand ein anderen Code? Oder weiß jemand wie und ob das Projekt
mit dem einen Port klappt, denn im Video sieht es recht zuverlässig aus.
Gruß David