Wenn der µC sonst nichts zu tun hat kann man natürlich auch auf Interrupts verzichten, stimmt schon
Ich ging halt davon aus, daß der µC mehr als eine Aufgabe hat ;-)
Druckbare Version
Wenn der µC sonst nichts zu tun hat kann man natürlich auch auf Interrupts verzichten, stimmt schon
Ich ging halt davon aus, daß der µC mehr als eine Aufgabe hat ;-)
Wie ist denn der COde für deine Funktion dann nun insgesamt?
Muss mit dem Teil möglichst schnell (innerhalb der nächsten Tage) einen sharp-entfernungsmesser auslesen und der µC soll auch noch was machen während er auf den ACD wartet... bitte helft mir
MfG dark_flash
Zitat:
Wie ist denn der COde für deine Funktion dann nun insgesamt?
Muss mit dem Teil möglichst schnell (innerhalb der nächsten Tage) einen sharp-entfernungsmesser auslesen und der µC soll auch noch was machen während er auf den ACD wartet... bitte helft mir
MfG dark_flash
Also in der MAin wird die Methode mit dem Port aufgerufen, an welchem gemessen werden soll... sonst ist eigentlich alles kommentiert...oder gibt es nocht Fragen ?Code:uint16_t getADC(uint8_t pin);
* main program
*/
{
/* define port a as imput ( A/D-converter inputs ) */
DDRA = 0x00;
PORTA = 0x00;
int s1 = getADC(0);
}
uint16_t getADC(uint8_t pin)
{
uint16_t adc_value = 0;
// min Prescaler = µC Frequ / 200 KHz & max Prescaler = µC Freq. / 50 khz = min 80 & max 320
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // Prescalar = 128
ADMUX = pin;
ADMUX |= (1<<REFS1) | (1<<REFS0); // use internal voltage
ADCSRA |= (1<<ADSC);
while (!(ADCSRA & (1<<ADIF))); // wait for finish converting ADIF bit
adc_value = ADCW; // read result
ADCSRA = (1<<ADIF); // delete ADIF, cause it could trigger an ISR
return adc_value; // return result
}
MfG
Alex
PS: Allen Usern noch ein gesundes neues Jahr 2006 ! \:D/
danke für die Funktion, aber der Wert der ausgegeben wird ist doch ein Integer oder? Wie kann ich den in einen String umwandeln, der mir auf einem LCD angezeigt wird?
kommt drauf an wie du deine Ausgabe realisierst, ich habe zB. für eine ausgabe über die RS232 die Printf-funktion benutzt und somit kann man es wunderschön wzb. so benutzen:Zitat:
danke für die Funktion, aber der Wert der ausgegeben wird ist doch ein Integer oder? Wie kann ich den in einen String umwandeln, der mir auf einem LCD angezeigt wird?
oder du benutztCode:int wert = 1234;
printf("Wert = %i", wert);
ist jetzt nicht getestet aber sollte funktionieren ...Code:
char mychar_array[4];
char *p_mychar_array = mychar_array;
itoa(wert,p_mychar_array,4);
MfG
Alecs[/code]
mmh werds ausprobieren wenn ich wieder zuhause bin...
Danke erstmal aber da fällt mir ein... Kann ich einenn SHarp-entfernungsmesser GP2D12 einfach so an den Pin des Mega 32 hängen?
Danke,MfG Sebastian
eigentlcih schon, hab gerade noch mal den Schaltplan vom RN-Control angeschaut und dort ist PORT A auch direkt auf den µC gezogen...Zitat:
Kann ich einenn SHarp-entfernungsmesser GP2D12 einfach so an den Pin des Mega 32 hängen?
Viel Erfolg
MfG
Alecs
Sooo wir haben den ADC jetzt am Laufen danke für die Tips...