Arduino Polska Forum
Podział kodu źródłowego na pliki - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Podział kodu źródłowego na pliki (/watek-podzia%C5%82-kodu-%C5%BAr%C3%B3d%C5%82owego-na-pliki)



Podział kodu źródłowego na pliki - sajoon - 19-03-2020

Witam.
Chcąc poprawić czytelność kodu próbuje podzielić mój kod na pliki, bez skutku.
Korzystam z Eclips-a. Czytałem różne poradniki, oglądałem poradniki wideo ale nadal coś mi umyka...
Wstawiony kod jest przykładowy aby nie zaciemniać tego, z czym mam problem.
Przetestowałem poniższy kod jako pojedynczy plik main.c i wszystko śmiga.
Po podziale na pliki nie daje się skompilować Huh

plik główny
Kod:
#include <Arduino.h>
#include "wyslij.h"

void setup() {
  //otwarcie portu i ustawienie prędkości na 9600 bodów
  Serial.begin(9600);
  //wypisanie linijki tekstu
  Serial.println("Kolejno odlicz!");
}


void loop() {
    wyslij();
  //czekamy sekundę na kolejny przebieg pętli
  delay(1000);
}

plik nagłówkowy wyslij.h
Kod:
/*
* wyslij.h
*
*  Created on: 19 mar 2020
*      Author: Staszek 
*/

#ifndef WYSLIJ_H_
#define WYSLIJ_H_

#include <Arduino.h>

int k = 0;
void wyslij(void);


#endif /* WYSLIJ_H_ */

plik wyslij.c
Kod:
/*
* wyslij.c
*
*  Created on: 19 mar 2020
*      Author: Staszek
*/

#include "wyslij.h"

void wyslij(void){
      //wypisywanie zmiennej k w nowym wierszu.
      Serial.println(k);
      //inkrementujemy k
      Serial.println("  Obecny!");
      k++;
}

Kompilator zgłasza taki błąd:

Method 'println' could not be resolved wyslij.c /Nano_test line 12 Semantic Error

Pewnie chodzi o jakiś szczegół.
Proszę o podpowiedź.


RE: Podział kodu źródłowego na pliki - Robson Kerman - 19-03-2020

Serial.begin wystąpił później niż Serial.println?
Czy cóś takiego?

Musisz poczytać o linkerze, kompilatorze i preprocesorze.
To nie gryzie i nie jest skomplikowane.


RE: Podział kodu źródłowego na pliki - kaczakat - 20-03-2020

Może jeśli nie dodane dodaj #include <Arduino.h> w pliku h.


RE: Podział kodu źródłowego na pliki - sajoon - 20-03-2020

(19-03-2020, 22:53)Robson Kerman napisał(a): Serial.begin wystąpił później niż Serial.println?
Czy cóś takiego?

Musisz poczytać o linkerze, kompilatorze i preprocesorze.
To nie gryzie i nie jest skomplikowane.
Gdziekolwiek nie przeniose Serial.begin(); oprucz setup() kompilator sygnalizuje błąd Syntax error