Benaming functie etc

algemene C code
Berichten: 76
Geregistreerd: 05 Nov 2016, 09:42

Re: Benaming functie etc

Berichtdoor spaansebrabander » 20 Jan 2017, 12:40

Ineens hoor ik weer van alles over pointers???

Ik heb dat boek gedownload en ben begonnen, maar hoe moet je die sketches laten uitvoeren met Arduino?
Bv onderstaand 1e programma: informatieve tekst staat door programma heen, Geen setup of loop, wel main()? Arduino kan het ook niet compileren, ook niet als ik informatieve tekst weghaal.
Hoe wijzig ik dit programma zodat mijn Arduino dit wel aanneemt?

#include <stdio.h> include information about standard library
main() define a function called main
that received no argument values
{ statements of main are enclosed in braces
printf("hello, world\n"); main calls library function printf
to print this sequence of characters
} \n represents the newline character

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Benaming functie etc

Berichtdoor nicoverduin » 20 Jan 2017, 12:41

Ju zult het moeten aanpassen aan de opzet van de Arduino. Dit boek is ruim 35 jaar geschreven. Toen bestond de Arduino en de opzet met setup en loop nog niet.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Benaming functie etc

Berichtdoor nicoverduin » 20 Jan 2017, 12:57

cpp code
void setup(){
Serial.println(9600);
Serial.println("Hello World\n");
}

void loop() {
}

De vraag is echter of jij nu de C/C++ taal wil leren of Arduino. Arduino is nu eenmaal een subset van C en C++. Puur omdat die processor veeeeeeeel te klein is om alles te ondersteunen. Zou je echter een C/C++ compiler installeren die op een windows PC werkt of Linux (Eclipse bijvoorbeeld met C/C++) dan kun je zo die voorbeelden draaien op de PC.
Arduino heeft een hele batterij functies gebouwd om C heen zodat iedereen het kan toepassen (Wiring genoemd). Daar betaal je uiteraard een "prijs" voor in performance. Ga je eenmaal met veel grotere processoren werken dan is er geen Arduino meer (behoudens enkele producenten die bang zijn de boot te missen). En moet je terugvallen op de basis.
Dit boek leert je wel over de structuur, de taal, de functies enz. Hoe werkt het etc. Beheers je dit dan stap je veel gemakkelijker over op de Arduino. Wil je dit niet doen... tja dan zou ik naar een boek zoeken puur op de arduino. Kans is dan wel kleiner dat je die in pdf vindt.

Verder heb ik al eens eerder aangegeven om eens in de 'core' libraries te kijken wat er allemaal om C heen is gebouwd.
main() bestaat wel degelijk en staat in main.cpp
cpp code
/*
main.cpp - Main loop for Arduino sketches
Copyright (c) 2005-2013 Arduino Team. All right reserved.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include <Arduino.h>

// Declared weak in Arduino.h to allow user redefinitions.
int atexit(void (* /*func*/ )()) { return 0; }

// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
void initVariant() { }

void setupUSB() __attribute__((weak));
void setupUSB() { }

int main(void)
{
init();

initVariant();

#if defined(USBCON)
USBDevice.attach();
#endif

setup();

for (;;) {
loop();
if (serialEventRun) serialEventRun();
}

return 0;
}


Daar zie je ook de aanroep van setup() en loop().
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 76
Geregistreerd: 05 Nov 2016, 09:42

Re: Benaming functie etc

Berichtdoor spaansebrabander » 20 Jan 2017, 13:49

Ik wil eerst kunnen omgaan met een Arduino. Ik heb inmiddels tig boeken over programmeren en over Arduino. Wat ik wil is gewoon simpel programmeren in Arduino en de programmeertaal begrijpen. Ik ben een syllabus aan het schrijven over het programmeren van Arduino. Ik doe dit voor mezelf, maar misschien hebben anderen hier ook belangstelling voor. (geen fin bijbed hoor) Ik ben uitgegaan van de beginnerscursus die in
Tweak4all te vinden is, maar dat is voor een deel flauwekul. Gaat soms ineens heel die, soms lijkt het of de schrijver het ook niet begrijpt en ergens een stuk Engelse tekst heeft vertaald. Ineens verschijnt daar bv uit het niets de "Zeef van Sierpinski"' en daar zit een beginnend programmeur ook niet op te wachten. . Om eea te begrijpen stel ik hier vragen en zoek op internet en in de tig boeken die ik over Arduino heb. Een sketch begrijpen die een paar lampjes laat flikkeren is leuk, maar de techneut wil verder. en een cursus om dat te leren is eigenlijk niet voorhanden

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Benaming functie etc

Berichtdoor nicoverduin » 20 Jan 2017, 14:26

Als er al cursussen worden gegeven dan zullen die op een programmeertaal zijn (C, C++, C#, Java, Javascript, PHP etc). De kans dat je überhaupt een op het gebied van Arduino vind zal eerder op de MBO/HBO scholen plaatsvinden. Hoewel die eigenlijk nu pas wakker beginnen te worden. En dan nog is het maar de vraag of het betaalbaar is voor de instituten. Nu zie je meestal introductie avonden van een paar uur. Wil je de diepte in dat is dat veel meer en daarmee de prijs. De meeste mensen willen/kunnen dat niet betalen. Er zijn al meer verzoeken geweest en daar is volgens mij weinig uitgekomen.

De enige die ik ken is een in België die wat actiever is op dit gebied.

Maar laat het een troost zijn.... Er is op dit gebied eigenlijk niets echt veranderd in de afgelopen 40 jaar. Nieuwe techniekjes en taal uitbreidingen daar gelaten.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Vorige

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten