#include "api/Common.h" // Input, Output, Serial Definition GEVINO automotive 1.0 // ATTENTION, gevino_io_setup () is called after Serial2/3.begin() #include // required before wiring_private.h #include "wiring_private.h" // pinPeripheral() function #define res_RS485_1_TxEn digitalWrite(2, LOW); #define set_RS485_1_TxEn digitalWrite(2, HIGH); #define res_RS485_TxEn digitalWrite(10, LOW); #define set_RS485_TxEn digitalWrite(10, HIGH); // Uart Serial2 (&sercom1, 11, 10, SERCOM_RX_PAD_0, UART_TX_PAD_2); // void SERCOM1_Handler() { Serial2.IrqHandler(); } Uart Serial3 (&sercom2, 3, 4, SERCOM_RX_PAD_1, UART_TX_PAD_0); void SERCOM2_Handler() { Serial3.IrqHandler(); } #define RS485 Serial #define RS485_1 Serial1 #define In1 digitalRead(A0) #define In2 digitalRead(A1) #define In3 digitalRead(A2) #define In4 digitalRead(A3) #define In5 digitalRead(A4) #define In6 digitalRead(A5) #define In7 digitalRead(8) #define In8 digitalRead(9) #define In9 digitalRead(45) #define K1 26 #define K2 25 #define Buzz LED_BUILTIN #define Out1 38 #define Out2 42 #define Out3 7 #define Out4 6 #define SD_CS 12 #define CAN_CS 27 #define setK1 digitalWrite(K1, HIGH) #define resK1 digitalWrite(K1, LOW) #define setK2 digitalWrite(K2, HIGH) #define resK2 digitalWrite(K2, LOW) #define setOut1 digitalWrite(Out1, HIGH) #define resOut1 digitalWrite(Out1, LOW) #define setOut2 digitalWrite(Out2, HIGH) #define resOut2 digitalWrite(Out2, LOW) #define setOut3 digitalWrite(Out3, HIGH) #define resOut3 digitalWrite(Out3, LOW) #define setOut4 digitalWrite(Out4, HIGH) #define resOut4 digitalWrite(Out4, LOW) #define setBuzz digitalWrite(Buzz, HIGH) #define resBuzz digitalWrite(Buzz, LOW) void gevino_automotive_setup( void ){ // Assign pins 10 & 11 SERCOM functionality pinPeripheral(10, PIO_SERCOM); pinPeripheral(11, PIO_SERCOM); // Assign pins 3 & 4 SERCOM functionality pinPeripheral(3, PIO_SERCOM_ALT); pinPeripheral(4, PIO_SERCOM_ALT); pinMode(2, OUTPUT); // TxEnable RS485 pinMode(10, OUTPUT); // TxEnable RS485 res_RS485_1_TxEn; res_RS485_TxEn; pinMode(A0, INPUT); // In01 pinMode(A1, INPUT); // In02 pinMode(A2, INPUT); // In03 pinMode(A3, INPUT); // In04 pinMode(A4, INPUT); // In05 pinMode(A5, INPUT); // In06 pinMode(8, INPUT); // In07 pinMode(9, INPUT); // In08 pinMode(45, INPUT); // In09 // Define Output pinMode(K1, OUTPUT); // Set K1 digital pin as Output pinMode(K2, OUTPUT); pinMode(Out1, OUTPUT); pinMode(Out2, OUTPUT); pinMode(Out3, OUTPUT); pinMode(Out4, OUTPUT); pinMode(Buzz, OUTPUT); pinMode(SD_CS, OUTPUT); // pinMode(CAN_CS, OUTPUT); // digitalWrite(CAN_CS, LOW); // digitalWrite(CAN_CS, HIGH); resK1; resK2; resOut1; resOut2; resOut3; resOut4; } void testIO( void ){ // Accende la maggior parte dei led per il collaudo setBuzz; delay(200); resBuzz; setK1; delay(200); resK1; setK2; delay(200); resK2; setOut1; delay(200); resOut1; setOut2; delay(200); resOut2; setOut3; delay(200); resOut3; setOut4; delay(200); resOut4; }