Ja, klar, aber ich wollte halt mit ihm zusammen versuchen ein Pendant in Bascom zu schreiben. Und ich wollte halt wenn möglich die Funktionen möglichst genauso machen, wie in C. Deshalb wollte ich hlat z.B. den Timer 1 als PWm verwenden. Allerdings ahbe ich noch ein großes Problem mit dem Pollswitch und zwar gibt es einen Interrupt für Änderungen am ADC-Port, ich weiß allerdings nciht genau wie man den einstellt, das wäre natürlich enxtrem Vorteilhaft, vielleicht kennt sich ja jemand mit ON ADC aus!?
Außerdem müsste ich die Berechnung für die Switchvariable kappieren, denn da steht ja haargenau welcher Bumper gedrückt wurde, leider verstehe ich die Schritt hier in C aber nicht, weil ich halt kein C kann. Vielleicht könnte mir das mal jemand kommentieren.
Code:
unsigned char PollSwitch (void)
{
unsigned int i;
DDRD |= SWITCHES; // Switches as Output
SWITCH_ON; // Output HIGH for measurement
ADMUX = (1 << REFS0) | SWITCH; // AVCC reference with external capacitor
Sleep(10);
ADCSRA |= (1 << ADSC); // Start conversion
while (!(ADCSRA & (1 << ADIF)));// wait for conversion complete
ADCSRA |= (1 << ADIF); // clear ADCIF
i = ADCL + (ADCH << 8);
SWITCH_OFF;
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));
}
MFG Moritz
Lesezeichen