Älteren C-Code für AtmelChips für Arduino Micro verwenden: Fehlermeldung f Mikro

Hallo Arduiner,

zunächst, ich bin nicht einer der Kleinen aus unserer Jugendgruppe.

Mein Problem ist:

Ich würde gern das C-Programm für µ-Controller 168 und 328 auf Arduino Mikro und Nano umsetzen.

Ich habe meine LIb-Decoder in Libs eingefügt und eines der Programme compiliert.
Die alten Libs wurden angenommen.
Aber beim Kompilieren für das Mikro-Board erhalte ich die Fehlermeldung
exit status 1
Fehler beim Kompilieren für das Board Arduino Micro.

Ich hätte erstmal die Frage: Welche definierten Libraries von früher für den168/328 kann ich mit mit einer neueren der Arduino plattform ersetzen?

Wo liegt mein Fehler, weshalb die Kompilierung fehlschlug?

mfG
Seb

/****************************************************************************************************
Lok + Wagen Decoder V3


Datei:              hardware.c

****************************************************************************************************/

#include <adc_control.h>
#include <aux_out.h>
#include <config.h>
#include <cortos.h>
#include <cortos_fifolist.h>
#include <cortos_tasklist.h>
#include <cv.h>
#include <datatypes.h>
#include <dcc_rx.h>
#include <dcc_tx.h>
#include <decode_dcc.h>
#include <dist_control.h>
#include <engine.h>
#include <fuse-info.h>
#include <hardware.h>
#include <rfm70.h>
#include <rs232.h>
#include <timer.h>




/****************************************************************************************************
Lok + Wagen Decoder V3


Datei:              hardware.c

****************************************************************************************************/

#include <adc_control.h>
#include <aux_out.h>
#include <config.h>
#include <cortos.h>
#include <cortos_fifolist.h>
#include <cortos_tasklist.h>
#include <cv.h>
#include <datatypes.h>
#include <dcc_rx.h>
#include <dcc_tx.h>
#include <decode_dcc.h>
#include <dist_control.h>
#include <engine.h>
#include <fuse-info.h>
#include <hardware.h>
#include <rfm70.h>
#include <rs232.h>
#include <timer.h>


#include <inttypes.h>
#include <string.h>

#include <inttypes.h>
#include <string.h>

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#include "config.h"
#include "hardware.h"


void init_hardware(void)
  {
    // io Ports
    DDRB = CARDECDDRB;
    DDRC = CARDECDDRC;
    DDRD = CARDECDDRD;

    PORTB = CARDECPORTB;
    PORTC = CARDECPORTC;
    PORTD = CARDECPORTD;

    // PCINT Initialisierung (für Stopstelle)
    // Decoder V2 PD2 PCINT18 Initialisierung
    #if (BOARD == CAR_V2_M168) || (BOARD == CAR_V2_M328_DEBUG)
    PORTD |= (1<<PD2);
    PCICR |= (1<<PCIE2);
    PCMSK2 = (1<<PCINT18);

    // Decoder V3 PB0 PCINT0 Initialisierung
    #elif (BOARD == CAR_D2U_M168) || (BOARD == CAR_V3_M168) || (BOARD == CAR_V3_M328)
    PORTB |= (1<<PB0);
    PCICR |= (1<<PCIE0);
    PCMSK0 = (1<<PCINT0);
    #endif
  }
Arduino: 1.8.13 (Windows 10), Board: "Arduino Micro"





















In file included from C:\Users\feell\Documents\Arduino\libraries\Decoder/adc_control.h:26:0,

                 from D:\DCC\Arduino\ArduinoSketch\Lok___Wagen_Decoder_V3_Hardware-c\Lok___Wagen_Decoder_V3_Hardware-c.ino:11:

C:\Users\feell\Documents\Arduino\libraries\Decoder/hardware.h:137:6: error: invalid preprocessing directive #ERROR

     #ERROR SEVERE Warning - please define a BOARD

      ^~~~~

exit status 1

Fehler beim Kompilieren für das Board Arduino Micro.

Wenn Du uns noch die genaue Fehlermeldung verrätst (bitte als Text in Codetags), könnte sich das jemand anschauen.

Gruß Tommy

feelltbaanschneggen:
Wo liegt mein Fehler, weshalb die Kompilierung fehlschlug?

Weil Du lauter .h-Dateien einbindest, die es unter der Arduino IDE nicht gibt.
Wo ist dieses Programm denn her? Ein beliebiges C-Programm das z.b. in AVR-Studio erstellt wurde, lässt sich nicht so ohne weiteres auf die Arduino IDE umsetzen.

lässt sich nicht so ohne weiteres auf die Arduino IDE umsetzen.

In der Regel schon!

Dann darf das Programm aber nicht in einer *.ino liegen.
Die muss dann leer gelassen werden.

Wo liegt mein Fehler, weshalb die Kompilierung fehlschlug?

Vielleicht mal die Ausführlichen Fehlerausgaben aktivieren und dann doch auch lesen.

zunächst, ich bin nicht einer der Kleinen aus unserer Jugendgruppe.

Was soll das bedeuten?

Hallo Franz Peter,

ja der Selbstbaudecoder wurde vor Jahren in AVR Studio programmiert.

Ich wurde gefragt, ob es auch auf den Nanos etc. laufen könnte.

@Combie Wir sind nicht alleine unterwegs. Eine Jugendgruppe.Es gibt einen Post der Kleinen.
Nur damit man nicht durcheinanderkommt.
Kann man das an der Plattform einstellen?
Ich würde lieber die Plattform nutzen, als AtmelStudio.

mfG
Seb

feelltbaanschneggen:
ja der Selbstbaudecoder wurde vor Jahren in AVR Studio programmiert.

Ich wurde gefragt, ob es auch auf den Nanos etc. laufen könnte.

Wenn ihr da einen ISP-Programmer habt, kann der Nano auch direkt aus AVR-Studio programmiert werden. Allerdings ist dann der Bootloader weg, und es geht erstmal nicht mehr mit der Arduino IDE über die USB Schnittstelle.

Wenn ihr das Projekt auf die Arduino IDE transferieren wollt, müsst ihr wirklich alles was dazugehört und nicht Gcc-Lib ist mit übernehmen.

Hallo Franz Peter,

Ich arbeite zur Zeit in meiner Ausbildung mit anderen Programmen.

Also das letzte Mal war ich in Informatik vor ca 4 Jahren dabei und habe nicht im ganzen Aufbau des Programms mitgemacht.
Leider kann ich nicht mehr nachfragen, weil der Lehrer dieses Jahr verstarb.
Aber ich meine, dass das Programm in Modulen aufgebaut war. Die oberen oberen .h dateien sind im ganzen der Decoder.
Es war so, damit Gruppen einzeln an den Bausteinen arbeiten konnten.
und wenn etwas geändert werden musste, war es nur in einem Bereich geändert.
Ich habe zum Beispiel nur bei der Lastregelung und der Abstandsregelung mitgearbeitet und hinzugfügt.
Aber wie das Programm gebrannt wurde, habe ich leider nicht mehr in der Schule mitmachen können.

mfG
Seb

Erstens:
Solange der Code geheim bleibt. kann das keiner von uns sagen, ob das Programm einfach so in die Arduino IDE übertragbar ist.
Irgendwie logisch, oder?

Zweitens:

Kann man das an der Plattform einstellen?

Hallo
@combie 2. ist sofort nachgereicht worden. es war nur das Häkchen rausgenommen worden.

  1. wie schon bei mikrobahner erklärt, sind die obigen h-dateien im ganzen das Programm dies ein Teil des Ganzen. So wurde es auch im Informatikunterricht ausprobiert.

Was nur fehlt ist main, die liegt noch nicht vor.
Ich habe nur mit hardware.c probleme, zwei andere liessen sich compilieren ohne Fehlermeldung.

mfG
Seb

ist sofort nachgereicht worden.

ok.

Dann fange ich mal an…
Der Fehler ist in der hardware.h du zeigst die hardware.c

Ich sagte, du sollst die *.ino leer lassen.
Da hat kein C Code drin zu stehen.
Das wird dem C++ Kompiler vorgeworfen, das muss nicht klappen, wenn noch weitere C Dateien im Spiel sind.

Übrigens:
Du solltest mal schauen, WARUM es überhaupt zu dem Error kommt.

Auch:

#elif (BOARD == CAR_D2U_M168) || (BOARD == CAR_V3_M168) || (BOARD == CAR_V3_M328)
vermutlich wirst du selber ein BORD für den 32U4 backen müssen.

Hallo,
mir ist gerade die Vebindung bei der Übertragung abgeschmiert.beide Posts sind erst Mal ins Leeregegangen, nicht mehr vorhanden

/****************************************************************************************************
Lok_Wagen Decoder V3


Datei:              hardware.h

K

Beschreibung:       Hardware Definitionen

*****************************************************************************************************
*                                                                                                   *
*                                                                                                   *
* Mega88/168/328 Platinen Version V2                                                                *
*                                                                                                   *
*                                   ************   ***********                                      *
*        RESET                   1  * RESET/PC6 *** ADC5/PC5 * 28        IR_TX_high                 *
*        TSOP7000_IR/RFM_CE      2  * RXD/PD0       ADC4/PC4 * 27        IR_TX_low                  *
*        serial_Out (Prog)       3  * TXD/PD1       ADC3/PC3 * 26        Licht_1                    *
*        AUX13/Stoppstelle       4  * INT0/PD2      ADC2/PC2 * 25        Licht_2                    *
*        Motor PWM (OC2B)        5  * INT1/PD3      ADC1/PC1 * 24        Licht_3 / BEMF             *
*        Licht_4                 6  * TO/PD4        ADC0/PC0 * 23        Licht_5 / EA               *
*        +5V UB                  7  * VCC                GND * 22                                   *
*        GND                     8  * GND               AREF * 21                                   *
*        Frontlicht              9  * XTAL1/PB6         AVCC * 20                                   *
*        Schlusslicht            10 * XTAL2/PB7      SCK/PB5 * 19        SCK/RFM_SCK                *
*        Stopplicht              11 * T1/PD5        MISO/PB4 * 18        MISO/RFM_MISO              *
*        Foto-                   12 * AIN0/PD6      MOSI/PB3 * 17        MOSI/RFM_MOSI              *
*        Foto+                   13 * AIN1/PD7      OC1B/PB2 * 16        RFM_CSN                    *
*        Blinker_links           14 * ICP1/PB0      OC1A/PB1 * 15        Blinker_rechts             *
*                                   **************************                                      *
* TQFP:                                                                                             *
*        frei                         ADC6              ADC7             Vakku                      *
*                                                                                                   *
*                                                                                                   *
* Mega88/168/328 Platinen Version V3                                                                *
*                                                                                                   *
*                                   ************   ***********                                      *
*        RESET                   1  * RESET/PC6 *** ADC5/PC5 * 28        Licht_1                    *
*        Blinker_rechts          2  * RXD/PD0       ADC4/PC4 * 27        Licht_2                    *
*        serial_Out (Prog)       3  * TXD/PD1       ADC3/PC3 * 26        Licht_3 / BEMF             *
*        Licht_4                 4  * INT0/PD2      ADC2/PC2 * 25        IR_TX_high                 *
*        Motor PWM (OC2B)        5  * INT1/PD3      ADC1/PC1 * 24        IR_TX_low                  *
*        Blinker_links           6  * TO/PD4        ADC0/PC0 * 23        Licht_5 / EA               *
*        +5V UB                  7  * VCC                GND * 22                                   *
*        GND                     8  * GND               AREF * 21                                   *
*        Frontlicht              9  * XTAL1/PB6         AVCC * 20                                   *
*        Schlusslicht            10 * XTAL2/PB7      SCK/PB5 * 19        SCK/RFM_SCK                *
*        Stopplicht              11 * T1/PD5        MISO/PB4 * 18        MISO/RFM_MISO              *
*        Foto-                   12 * AIN0/PD6      MOSI/PB3 * 17        MOSI/RFM_MOSI              *
*        Foto+                   13 * AIN1/PD7      OC1B/PB2 * 16        RFM_CSN                    *
*        Stoppstelle             14 * ICP1/PB0      OC1A/PB1 * 15        RFM_CE                     *
*                                   **************************                                      *
* TQFP:                                                                                             *
*        frei                         ADC6              ADC7             Vakku                      *
*                                                                                                   *
* FUSE info für:                                                                                    *
*                                  mega88          mega168          mega328                         *
*                                  mit Bootloader  mit  Bootloader  ohne / mit Bootloader           *
*                                                                                                   *
* Extended:  -          -               0xFA            0xFA        0xFD        0xFD                *
* High Byte: 0xD9       0xDC            0xD5            0xD5        0xD5        0xD4                *
* Low Byte:  0x84       0x84            0xE2            0xE2        0xE2        0xE2                *
* Lockbit:   -          0xCF            0xCC            0xCC        -           0xCC                *
*                                                                                                   *
****************************************************************************************************/
#ifndef __HARDWARE_H__
#define __HARDWARE_H__

#include <stdint.h>
#include "datatypes.h"

//========================================================================
// 1. Processor Definitions
//========================================================================
//

#if (__AVR_ATmega328P__)
  // #define BL_SIZE               512 (=>max CODE_SIZE 32256)
  // #define INTERNAL_SRAM_SIZE    2048
  // #define EEPROM_SIZE           1024
  // #define SPM_PAGESIZE          256
  // #define E2END		0x3FF
  #define EEPROM_SIZE          1024
#elif (__AVR_ATmega168P__)
  // #define BL_SIZE               512 (=>max CODE_SIZE 15872)
  // #define INTERNAL_SRAM_SIZE    1024
  // #define EEPROM_SIZE           512
  // #define SPM_PAGESIZE          128
  // #define E2END		0x3FF
  #define EEPROM_SIZE          512
#else
  #warning: severe: no supported processor  
#endif

#ifndef F_CPU
# warning "F_CPU not defined for <hardware.h>", set default to 8MHz 
# define F_CPU 8000000UL
#endif

#ifndef BOARD
    #ERROR SEVERE Warning - please define a BOARD
#endif

Teil2

//========================================================================
// 2. Port Definitions
//========================================================================
#if (BOARD == CAR_V2_M168) || (BOARD == CAR_V2_M328_DEBUG)

//Datenrichtung und Port init
#define CARDECDDRB 0b00000000                           // DDRB 1=Ausgang/0=Eingang
#define CARDECDDRC 0b00000001                           // DDRC 1=Ausgang/0=Eingang
#define CARDECDDRD 0b00001000                           // DDRD 1=Ausgang/0=Eingang

#define CARDECPORTB 0b00000000                          // PORTB Pins
#define CARDECPORTC 0b00000001                          // PORTC Pins auf high
#define CARDECPORTD 0b00000000                          // PORTD Pins auf high

#define no_stop() (PIND & (1<<PIND2))                     // Low -> Stopp

//Ports/Pins LED Ausgänge schalten nach GND es wird die Datenrichtung umgeschaltet damit parallelschaltung möglich ist
#define pwm_off() TCCR2A &= ~(1<<COM2B1)
#define pwm_on() TCCR2A |= (1<<COM2B1)

#define front_light_on() (DDRB |= (1<<PB6))
#define front_light_off() (DDRB &= ~ (1<<PB6))

#define rear_light_on() (DDRB |= (1<<PB7))
#define rear_light_off() (DDRB &= ~ (1<<PB7))

#define stop_light_on() (DDRD |= (1<<PD5))
#define stop_light_off() (DDRD &= ~ (1<<PD5))

#define turn_signal_left_on() (DDRB |= (1<<PB0))
#define turn_signal_left_off() (DDRB &= ~ (1<<PB0))

#define turn_signal_right_on() (DDRB |= (1<<PB1))
#define turn_signal_right_off() (DDRB &= ~ (1<<PB1))

#define light_1_on() (DDRC |= (1<<PC3))
#define light_1_off() (DDRC &= ~ (1<<PC3))

#define light_2_on() (DDRC |= (1<<PC2))
#define light_2_off() (DDRC &= ~ (1<<PC2))

#define light_3_on() (DDRC |= (1<<PC1))
#define light_3_off() (DDRC &= ~ (1<<PC1))

#define light_4_on() (DDRD |= (1<<PD4))
#define light_4_off() (DDRD &= ~ (1<<PD4))

//Mode0 -> aus=Eingang/ein=GND
#define light_5_mode_0_on() (DDRC |= (1<<PC0))
#define light_5_mode_0_off() (DDRC &= ~ (1<<PC0))
//Mode1 -> aus=+UB/ein=GND
#define light_5_mode_1_on() (PORTC &= ~ (1<<PC0))
#define light_5_mode_1_off() (PORTC |= (1<<PC0))
//Mode2 -> aus=GND/ein=+UB
#define light_5_mode_2_on() (PORTC |= (1<<PC0))
#define light_5_mode_2_off() (PORTC &= ~ (1<<PC0))

// IR_TX_LOW
#define ir_tx_low_on() (DDRC |= (1<<PC4))
#define ir_tx_low_off() (DDRC &= ~ (1<<PC4))
// IR_TX_HIGH
#define ir_tx_high_on() (DDRC |= (1<<PC5))
#define ir_tx_high_off() (DDRC &= ~ (1<<PC5))
// ir_tx_off()
#define ir_tx_off() (DDRC &= ~ ( (1<<PC5) | (1<<PC4) ))

//-----------------------------------------------------------------------
#elif (BOARD == CAR_V3_M168) || (BOARD == CAR_V3_M328)

//Datenrichtung und Port init
#define CARDECDDRB 0b00000000                           // DDRB 1=Ausgang/0=Eingang
#define CARDECDDRC 0b00000001                           // DDRC 1=Ausgang/0=Eingang
#define CARDECDDRD 0b00001000                           // DDRD 1=Ausgang/0=Eingang

#define CARDECPORTB 0b00000000                          // PORTB Pins
#define CARDECPORTC 0b00000001                          // PORTC Pins auf high
#define CARDECPORTD 0b00000000                          // PORTD Pins auf high

#define no_stop() (PINB & (1<<PINB0))                     // Low -> Stopp

//Ports/Pins LED Ausgänge schalten nach GND es wird die Datenrichtung umgeschaltet damit parallelschaltung möglich ist
#define pwm_off() TCCR2A &= ~(1<<COM2B1)
#define pwm_on() TCCR2A |= (1<<COM2B1)

#define front_light_on() (DDRB |= (1<<PB6))
#define front_light_off() (DDRB &= ~ (1<<PB6))

#define rear_light_on() (DDRB |= (1<<PB7))
#define rear_light_off() (DDRB &= ~ (1<<PB7))

#define stop_light_on() (DDRD |= (1<<PD5))
#define stop_light_off() (DDRD &= ~ (1<<PD5))

#define turn_signal_left_on() (DDRD |= (1<<PD4))
#define turn_signal_left_off() (DDRD &= ~ (1<<PD4))

#define turn_signal_right_on() (DDRD |= (1<<PD0))
#define turn_signal_right_off() (DDRD &= ~ (1<<PD0))

#define light_1_on() (DDRC |= (1<<PC5))
#define light_1_off() (DDRC &= ~ (1<<PC5))

#define light_2_on() (DDRC |= (1<<PC4))
#define light_2_off() (DDRC &= ~ (1<<PC4))

#define light_3_on() (DDRC |= (1<<PC3))
#define light_3_off() (DDRC &= ~ (1<<PC3))

#define light_4_on() (DDRD |= (1<<PD2))
#define light_4_off() (DDRD &= ~ (1<<PD2))

//Mode0 -> aus=Eingang/ein=GND
#define light_5_mode_0_on() (DDRC |= (1<<PC0))
#define light_5_mode_0_off() (DDRC &= ~ (1<<PC0))
//Mode1 -> aus=+UB/ein=GND
#define light_5_mode_1_on() (PORTC &= ~ (1<<PC0))
#define light_5_mode_1_off() (PORTC |= (1<<PC0))
//Mode2 -> aus=GND/ein=+UB
#define light_5_mode_2_on() (PORTC |= (1<<PC0))
#define light_5_mode_2_off() (PORTC &= ~ (1<<PC0))

// IR_TX_LOW
#define ir_tx_low_on() (DDRC |= (1<<PC1))
#define ir_tx_low_off() (DDRC &= ~ (1<<PC1))
// IR_TX_HIGH
#define ir_tx_high_on() (DDRC |= (1<<PC2))
#define ir_tx_high_off() (DDRC &= ~ (1<<PC2))
// ir_tx_off()
#define ir_tx_off() (DDRC &= ~ ( (1<<PC2) | (1<<PC1) ))

//-----------------------------------------------------------------------
#elif (BOARD == CAR_D2U_M168)

//Datenrichtung und Port init
#define CARDECDDRB 0b00000000                           // DDRB 1=Ausgang/0=Eingang
#define CARDECDDRC 0b00000001                           // DDRC 1=Ausgang/0=Eingang
#define CARDECDDRD 0b00001000                           // DDRD 1=Ausgang/0=Eingang

#define CARDECPORTB 0b01000000                          // PORTB Pins
#define CARDECPORTC 0b00000000                          // PORTC Pins auf high
#define CARDECPORTD 0b00000000                          // PORTD Pins auf high

#define no_stop() (PINB & (1<<PINB0))                     // Low -> Stopp

//Ports/Pins LED Ausgänge schalten nach GND es wird die Datenrichtung umgeschaltet damit parallelschaltung möglich ist
#define pwm_off() TCCR2A &= ~(1<<COM2B1)
#define pwm_on() TCCR2A |= (1<<COM2B1)

#define front_light_on() (DDRC |= (1<<PC4))
#define front_light_off() (DDRC &= ~ (1<<PC4))

#define rear_light_on() (DDRD |= (1<<PD5))
#define rear_light_off() (DDRD &= ~ (1<<PD5))

#define stop_light_on() (DDRB |= (1<<PB7))
#define stop_light_off() (DDRB &= ~ (1<<PB7))

#define turn_signal_left_on() (DDRD |= (1<<PD2))
#define turn_signal_left_off() (DDRD &= ~ (1<<PD2))

#define turn_signal_right_on() (DDRD |= (1<<PD0))
#define turn_signal_right_off() (DDRD &= ~ (1<<PD0))

#define light_1_on() (DDRD |= (1<<PD4))
#define light_1_off() (DDRD &= ~ (1<<PD4))

#define light_2_on() (DDRC |= (1<<PC3))
#define light_2_off() (DDRC &= ~ (1<<PC3))

#define light_3_on() (DDRC |= (1<<PC2))
#define light_3_off() (DDRC &= ~ (1<<PC2))

#define light_4_on() (DDRC |= (1<<PC5))
#define light_4_off() (DDRC &= ~ (1<<PC5))

//Mode0 -> aus=Eingang/ein=GND
#define light_5_mode_0_on() (DDRB |= (1<<PB6))
#define light_5_mode_0_off() (DDRB &= ~ (1<<PB6))
//Mode1 -> aus=+UB/ein=GND
#define light_5_mode_1_on() (PORTB &= ~ (1<<PB6))
#define light_5_mode_1_off() (PORTB |= (1<<PB6))
//Mode2 -> aus=GND/ein=+UB
#define light_5_mode_2_on() (PORTB |= (1<<PB6))
#define light_5_mode_2_off() (PORTB &= ~ (1<<PB6))

// IR_TX_LOW
#define ir_tx_low_on() (DDRC |= (1<<PC1))
#define ir_tx_low_off() (DDRC &= ~ (1<<PC1))
// IR_TX_HIGH
#define ir_tx_high_on() (DDRC |= (1<<PC0))
#define ir_tx_high_off() (DDRC &= ~ (1<<PC0))
// ir_tx_off()
#define ir_tx_off() (DDRC &= ~ ( (1<<PC1) | (1<<PC0) ))

#else
    unknown BOARD
#endif

//------------------------------------------------------------------------
// Calls
void init_hardware(void);


#endif   // #ifndef __HARDWARE_H__

Sorry,
Die Forum software haut mir eine Wartezeit von 5 Minuten in die Posts.

was versteht man beim Arduino mit *.ino?
ich bin im Moment zu sehr in der Software die ich im Betrieb nutzen muss.
in C habe ich vor ca 4 Jahren was gemacht.
Und die Fehlermeldung sagt mir jetzt auch nichts, so gut mit Arduino bin ich nicht.

Also dass habe ich noch in den Unterlagen zum Decoder gefunden.
es sieht so aus als ob unser Lehrer Unterprogramme mit diesen .h und .c dateien oder tools

#include "adc_control.h"        // akku and bemf control
#include "aux_out.h"            // LED AUX steuern
#include "config.h"             // general definitions the decoder, cv's
#include "cortos.h"             // cooperative scheduler and fifo
#include "cv.h"                 // CV definieren / behandeln
#include "datatypes.h"          // Datentypen
#include "dcc_rx.h"             // dcc ir daten empfangen
#include "dcc_tx.h"             // dcc ir senden / Zeitbasis / cortos systick/timer
#include "decode_dcc.h"         // dcc daten decodieren
#include "dist_control.h"       // ASR distance control
#include "engine.h"             // Motorregelung
#include "hardware.h"           // port definitions for target
#include "rfm70.h"              // RFM7x Funk Kommunikation
#include "rs232.h"              // rs232 Routinen
#include "timer.h"              // systick and PWM value

und den *.c dateien gemeint hat.
Und nun bin ich mir mit nichts mehr sicher.

Also den Decoder werden wir nur in abgespckter form für den UNO hinkriegen.
es wäre aber eine Herausforderung für sehr kleine Fahrzeuge.
mfG
Seb

was versteht man beim Arduino mit *.ino?

Arduino ist eigentlich c++, allerdings erzeugt man in der Regel die "Sketche" nicht direkt als .cpp Dateien und schreibt auch die Funktion main() nicht selber.
Dies nimmt einem zur Vereinfachung die Arduino-Programmierumgebung ab.
Auch das Äquivalent einer make-Datei wird automatisch erzeugt.

Ich denke, mehr Details, wie aus diesen .ino Dateien etwas für den passenden (in der Regel avr-gcc)-Compiler erzeugt wird, führt hier und jetzt zu weit, ebenso eine Diskussion der Möglichkeiten und Fallstricke bei der Kombination von C und C++.

Alte Basic-Weisheit: Umgebungen, die das Einfache noch einfacher machen, sind dafür bei Problemen problematischer.

michael_x:
Umgebungen, die das Einfache noch einfacher machen, sind dafür bei Problemen problematischer.

Der ist gut.

Gruß Tommy

michael_x:
Umgebungen, die das Einfache noch einfacher machen, sind dafür bei Problemen problematischer.

Wirklich gut!! :slight_smile: