Anfängerfrage: Wo die #include Datien hinpacken?



  • Hi, ich hoffe aus meinem Topictitel ist halbwegs ersichtlich was ich möchte.
    Kurz zu mir: Student, das erste mal mit C konfrontiert, absolut planlos und kaum Zeit zum einarbeiten. Im Zuge eines Studienmoduls geht es um die Programmierung von Mikrocontrollern in C (Assemblerebene schon gemacht).

    Problem: Ich habe nun eine Quelldatei, die mehrere #include <blibla> Anweisungen hat. Also beim compilieren der Datei werden diese Dateien einbunden (ist das so wie import bei java?).
    Nun möchte ich zusätzlich zu den "standartmässigen" headerdatien noch eine andere einbinden, die heisst bei mir lcd.h. Ich weiss allerdings nicht wo ich die hinkopieren muss damit die eigebunden wird beim kompilieren! Kann mir einer sagen wo man die hinpackt?

    Ich poste einfach mal meinen Code hier rein - auch wenn es um den garnicht genau geht. die fraglichen stellen habe ich auskommentiert und der code lässt sich so acuh kompilieren!

    include <stdint.h>
    #include <stdlib.h>
    #include <string.h>
    #include <avr/io.h>
    #include <avr/sleep.h>
    #include <avr/interrupt.h>
    //#include <lcd.h> 
    
    unsigned int get_adc(){
    
    	unsigned int result = 0;  
    	ADCSRA  = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
    	ADMUX = (1<<REFS0); 
        ADCSRA = (1<<ADSC);
    
    	while (ADCSRA & (1<<ADSC)){
    		;
    	}
    	result = ADCW;
    
    	return result; 
    
    }
    
    int main (void) {     
    	unsigned int analogwert;
    	//lcd_init();
    
    	while(1){
    		analogwert = get_adc();
    		//#ifdef
    		//	lcd_putf();
    		//#endif
    	}
    
    	return 0;
    }
    

    Wäre für Hilfe echt dankbar, die Frage scheint so simpel zu sein, dass ich dazu bisher nirgends im Netz was finden konnte!



  • TimTim schrieb:

    Ich weiss allerdings nicht wo ich die hinkopieren muss damit die eigebunden wird beim kompilieren!

    Wenn du sagst #include <a.h> , dann muss a.h in irgendeinem globalen Include-Verzeichnis leben.
    Wenn du sagst #include "a.h" , dann kann a.h auch im aktuellen Verzeichnis leben.

    TimTim schrieb:

    ist das so wie import bei java?

    Nein, include ist einfach nur Textersatz durch den Präprozessor.
    🙂



  • Mensch super, das läuft! Vielen Dank, hätte nicht gedacht, dass die Lösung so simpel ist!



  • Es gibt da verschiedene Varianten - hättest die Suche besser füttern müssen 😉

    Eine Möglichkeit ist du hast die "lcd.h" selbst geschrieben und die soll nur bei wenigen Projekten zum Einsatz kommen und die befindet sich in dem selben Verzeichnis wie deine "xy.c"

    #include <stdint.h>
    #include <stdlib.h>
    #include <string.h>
    #include <avr/io.h>
    #include <avr/sleep.h>
    #include <avr/interrupt.h>
    #include "lcd.h"
    

    Suche - ein Treffer von vielen:
    http://www-gs.informatik.tu-cottbus.de/alp_proj.pdf
    😃

    Anders kann es aussehen, wenn du den Header oft nutzen möchtest.

    MfG f.-th.


Anmelden zum Antworten