Forum: Mikrocontroller und Digitale Elektronik Anfänger braucht Hilfe, hi-tech C, PIC16F887, MPLAB IDE v.8.60


von Elias M. (exro)


Lesenswert?

Ich bin ein C-Anfänger und brauche Hilfe:

Ich arbeite mit MPLAB IDE v.8.60, verwende den PIC16F887 und den Hi-Tech 
C Compiler!

Das Ziel ist es eine Positionsmessung eines Motors zu entwickeln. Mit 
dieser Positionsmessung kann man erkennen, in welcher Motorstellung sich 
die Maschine gerade befindet. Dies wird mittels einer Codescheibe und 
dazugehörigen Lichtschranken an der gedrehten Welle des Motors 
ermöglicht.

Unterprogramm:

#include <htc.h>
#include <stdio.h>

#define druckposition      RC0
#define position_a        RA4
#define position_b        RC1
#define position_c        RC2
#define position_d        RC3
#define position_e        RA2
#define position_f        RA3
unsigned char mess_position;


void main() {
  druckposition = 0;
  delay(1);
  mess_position = 1 * position_a + 2 * position_b + 4 * position_c + 8 * 
position_d + 16 * position_e + 32 * position_f;
  _ascii(mess_position,10);
  druckposition = 1;
}
______________________________________________________________

Fehlermeldung beim Build:

(1273) Omniscient Code Generation not available in Lite mode (warning)
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode)  V9.71a
Copyright (C) 2010 Microchip Technology Inc.
Error   [500] ; 0. undefined symbols:
  _delay(Positionsmessung.obj) __ascii(Positionsmessung.obj)

********** Build failed! **********

Könnte mir jemand helfen?

von Martin S. (drunkenmunky)


Lesenswert?

steht doch da was das Problem ist. Er kennt die Funktion delay nicht. 
Ich denk mal du wolltest die Funktion vom Compiler verwenden. Ein Blick 
in den User Guide bewirkt da manchmal wunder:

__delay_ms(x) // request a delay in milliseconds
__delay_us(x) // request a delay in microseconds

grad gesehen, das gibts auch noch:

_delay(10); // delay for 10 cycles

Ansonsten, wenn du keine Ahnung hast wo der Fehler liegt, Teile vom Code 
auskommentieren und kucken wann der Fehler weg ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.