PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschall Programmproblem



nexus2358
28.07.2013, 17:25
Hallo,
ich habe den Ultraschall-Sensor für Asuro fertig gebaut und angebracht. Nun möchte ich das Programm benutzen, dass im Buch "Mehr Spaß mit Asuro" vorgegeben ist:

#include "asuro.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
ADMUX = 0x03; // Multiplexer for comparator to
// ADC pin 3
SFIOR |= (1 << ACME); // Enable muliplexing of comparator
DDRD &= ~(1 << 6); // Port D Pin 6 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;
// set frequency to 40kHz
}
int main(void)
{
int pos, i;
int posmarker;
Init();
10
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) {
StatusLED(GREEN);
MotorDir(FWD, FWD);
MotorSpeed(200, 200);
}
else {
StatusLED(RED);
MotorDir(FWD, RWD);
MotorSpeed(0, 200);
for(i = 0; i<100; i++) { Sleep(200); }
}
}
return 0;
}

Ich erhalte jedoch eine Fehlermeldung, die irgendwie mit dem Asuro.h Ordner zusammen hängt. Ausserdem seien mehrere Variablen nicht deklariert. Im Internet habe ich nun den Hinweis gefunden, dass ich die Variable volatile unsigned char count72kHz von Asuro.c nach Asuro.h verschieben soll. Ich verstehe leider nicht genau wie das gemeint ist (bin noch Anfänger). Könnte mir jemand erklären wie ich vorzugehen habe?

Danke im Voraus,

Nexus

nexus2358
28.07.2013, 21:40
Habe bei Programmers Notepad jetzt nur die Fehlermeldung "Der Verzeichnisname ist ungültig." Was bedeutet das und was kann ich dagegen tun?

RoboHolIC
29.07.2013, 00:53
@nexus2358:
Da wird wohl bei der Codeerzeugung auf einen Verzeichnisnamen Bezug genommen, der (in dieser Schreibweise) nicht vorhanden ist.
Der Computer ist da stur - ich denke, dass Du nachgeben müssen wirst, d.h. den Verzeichnisnamen und den Speicherort der monierten Datei(en) aus der Fehlermeldung mit der Realität harmonisieren musst.