outp, sbi, cbi undeclared

OP #2636549
Hi Leute,

ich versuche gerade das LCD zum Laufen zu bringen. Dabei verwende ich 
den Code von dieser Seite:
http://www.jennaron.com.au/avr/lcd.html

Hier der Code im Main:
1
/******************************************************************************
2

3
    Test program for the lcd16.c module. Displays a floating point number
4
    on line one along with a fixed string. Displays a long integer (32-bits)
5
    and an integer (16-bits) on the second line. Increments the numbers by one
6
    forever.
7
  
8
  Ron Kreymborg
9
  
10
******************************************************************************/
11

12
#include <avr/io.h>
13
#include <stdlib.h>
14
#include <interrupt.h>
15
#include <string.h>
16
#include <math.h>
17
#include "lcd.h"
18

19

20
#define BYTE            unsigned char
21
#define WORD            unsigned int
22

23
int main(void);
24

25
int main(void)
26
{    
27
    float fnum;
28
    long lnum;
29
    int inum;
30
    
31
   // PORTB
32
    outp(0xff, PORTB);              // all high
33
    outp(0xff, DDRB);               // all output
34
    // PORTA
35
    outp(0x00, PORTA);              // all low
36
    outp(0xff, DDRA);               // all output
37

38
    InitLCD();
39
    fnum = 0.0;
40
    lnum = 0L;
41
    inum = 0;
42
    
43
    while (1)
44
    {
45
        SendFloat(fnum, 1, 0);          // floating point number
46
        fnum = fnum + 1.0;
47

48
        SendString("value", 1, 11);     // plain string
49
        
50
        SendLong(lnum, 2, 0);           // long
51
        lnum++;
52
        
53
        SendString("      ", 2, 10);    // ensure background cleared
54
        SendInt(inum, 2, 10);           // int
55
        inum++;
56
    }    
57
    
58
    return 0;
59
}

Ich verwende AVRStudio4 und WinAVR und erhalte die Fehlermeldung, dass 
interrupt.h nicht gefunden werden kann. Okay, dachte ich mir, kommt ein 
avr/ davor, weil diese Datei im selben Ordner wie die io.h ist, also:
1
#include <avr/interrupt.h>

Jetzt erhalte ich ziemlich viele Fehlermeldungen:
1
Build started 14.4.2012 at 22:26:22
2
avr-gcc  -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d  -c  ../main.c
3
../main.c: In function 'main':
4
../main.c:32: warning: implicit declaration of function 'outp'
5
avr-gcc -mmcu=atmega128 -Wl,-Map=LCD1.map main.o lcd16.o     -o LCD1.elf
6
main.o: In function `main':
7
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../main.c:32: undefined reference to `outp'
8
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../main.c:33: undefined reference to `outp'
9
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../main.c:35: undefined reference to `outp'
10
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../main.c:36: undefined reference to `outp'
11
lcd16.o: In function `SendByte':
12
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:190: undefined reference to `outp'
13
lcd16.o: In function `Clock':
14
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:199: undefined reference to `sbi'
15
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:201: undefined reference to `cbi'
16
lcd16.o: In function `Send':
17
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:154: undefined reference to `outp'
18
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:155: undefined reference to `outp'
19
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:159: undefined reference to `sbi'
20
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:160: undefined reference to `sbi'
21
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:162: undefined reference to `inp'
22
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:163: undefined reference to `cbi'
23
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:164: undefined reference to `cbi'
24
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:166: undefined reference to `sbi'
25
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:167: undefined reference to `sbi'
26
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:169: undefined reference to `cbi'
27
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:170: undefined reference to `cbi'
28
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:174: undefined reference to `outp'
29
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:175: undefined reference to `outp'
30
lcd16.o: In function `InitLCD':
31
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:110: undefined reference to `outp'
32
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:111: undefined reference to `outp'
33
D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:113: undefined reference to `outp'
34
lcd16.o:D:\Libraries\Documents\Workspace\MCU\AVR\LCD1\default/../lcd16.c:115: more undefined references to `outp' follow
35
make: *** [LCD1.elf] Error 1
36
Build failed with 24 errors and 1 warnings...

Ich gebe zu, dass ich sowohl in C als auch in uC neu bin. Aber cbi, sbi 
und outp sind doch Standardfunktionen, jedenfalls meine ich es so im 
Internet gelesen zu haben.

Danke und Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.