Hio.
Ich hab ein ziemlich dringendes Problem. Und zwar versuche ich gerade das US Modul vom Asuro mit einem RN-Control zu verbinden und es will einfach nicht tun. Ich schreib schnell wie ich das gemacht habe und ich wäre wirklich jedem sehr dankbar, der mir einen Tipp geben könnte, was falsch ist.
Also, ich schließe den Pin ADC3 der Erweiterungsplatine an den Pin AIN1 am RN-Control (also invertierter Eingang des Komparators) und den Pin PD6 (AIN0) der Erweiterungsplatine an AIN0 am RN-Control an (jeweils direkt den Draht an den Pin). Nun schließe ich noch den Pin OC2 (PD3) der Erweiterungsplatine an PD7 (OC2) an das RN-Control an. Mein Programm sieht nun so aus:
posmarker ist immer 0. An den Eingängen des Komparators tut sich auch nix. Da zeigt mein billig Multimeter immer 2,47 V an...Code:#include "asuro.h" #include "uart.h" void LocalInit(void) { // Change Oscillator-frequency of Timer 2 // to 40kHz, no toggling of IO-pin: TCCR2 |= (1 << WGM21) | (1 << CS20); OCR2 = 0x64; // 40kHz @8MHz crystal ADCSRA = 0x00; // ADC off // Analog comparator: ACSR = 0x02; // Generate interrupt on falling edge SFIOR |= (1 << ACME); // Enable muliplexing of comparator DDRB &= ~((1 << PB2) | (1 << PB3)); // Port B Pin 2 and 3 is input } void Ping(unsigned char length) { count72kHz = 0; TCCR2 |= (1 << WGM21) | (1 << COM20) | (1 << CS20); // Toggling of IO-Pin on // generate the Chirp while(count72kHz < length) { OCR2 = 0x64 + length / 2 - count72kHz; } TCCR2 |= (1 << WGM21) | (1 << CS20); // Toggling of IO-Pin off OCR2 = 0x64; } int main(void) { // LEDs aus vom RN-Control DDRC = 0xFF; int pos, i; int posmarker; uart_init(); LocalInit(); while(TRUE) { posmarker = 0; Ping(20); for(pos = 0; pos < 100; pos++) { Sleep(10); if((ACSR & (1 << ACI)) != 0) { if(posmarker == 0) { posmarker = pos; } } ACSR |= (1 << ACI); } if(posmarker < 10) { PORTC &= ~((1<<PC1)); PORTC |= (1<<PC0); } else { PORTC &= ~((1<<PC0)); PORTC |= (1<<PC1); } uart_putc(posmarker); } return 0; } [/b]
Was ist da falsch? Hab ich irgendwas falsch verbunden? Ich hab das strenge Gefühl das der Timer nicht tut, keine Ahnung, kann das aber nicht messen, weil ich kein Oszi hab.
Ich wär für einen Hinweis wirklich sehr sehr dankbar.
Gruß
Lutz







Zitieren

Lesezeichen