• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Podział kodu źródłowego na pliki
#1
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ź.
 
Odpowiedź
#2
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.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
Może jeśli nie dodane dodaj #include <Arduino.h> w pliku h.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#4
(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
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości