Salve a tutti, ho sviluppotato sul MEGA2560 un sketch piuttosto complesso che utilizza un display TFT da 3,2" con Touch e SD Card e comunicazione su porta seriale.
Ora voglio trasferire il tutto su un ATmega1284P (con gli I/O dovrei rientrarci pelo pelo) ma ho un problema con la libreria UTFT che non supporta questo MCU.
Ho gia' incluso il supporto per il 1284P nell' IDE di arduino (grazie alla guida sul sito di Leo72 che ringrazio pubblicamente), ma ora devo aggiungere le informazioni di questa mcu nella libreria UTFT, presumo che io debba modificare il file UTFT.ccp e creare un file .h per la mappatura del 1284P....ecco...non ho idea di come fare...ho cercato in giro ma non ho trovato nulla.
Potreste darmi una mano?
Grazie e di nuovo buon Anno.
Se una lib è basata su una semplice mappatura dei pin non ci sono grossi problemi, ma se la libreria va a pilotare in maniera diretta risorse specifiche di un microcontrollore agendo su registri e indirizzi hardware dei pin, allora la cosa diventa più complessa.
Di che lib parliamo, hai un link?
--> GitHub - stanleyhuangyc/ArduinoTFT
Devi seguire gli esempi degli altri micro e crearti il file "HW_ATmega1284.h".
E poi aggiungere nel file "UTFT.cpp" il codice per richiamarlo
// Include hardware-specific functions for the correct MCU
#if defined(__AVR__)
#include <avr/pgmspace.h>
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#include "HW_ATmega1280.h"
#elif defined(__AVR_ATmega328P__)
#include "HW_ATmega328P.h"
#elif defined(__AVR_ATmega32U4__)
#include "HW_ATmega32U4.h"
#elif defined(__AVR_ATmega168__)
#error "ATmega168 MCUs are not supported because they have too little flash memory!"
#else
#error "Unsupported AVR MCU!"
#endif
#elif defined(__PIC32MX__)
#if defined(__32MX320F128H__)
#pragma message("Compiling for chipKIT UNO32 (__32MX320F128H__)")
#include "HW_PIC32MX320F128H.h"
#elif defined(__32MX340F512H__)
#error "chipKIT uC32 (__32MX340F512H__) is not supported."
#elif defined(__32MX795F512L__)
#pragma message("Compiling for chipKIT MAX32 (__32MX795F512L__)")
#include "HW_PIC32MX795F512L.h"
#else
#error "Unsupported PIC32 MCU!"
#endif
#elif defined(__arm__)
#if defined(__SAM3X8E__)
#pragma message("Compiling for Arduino Due (AT91SAM3X8E)...")
#include "HW_SAM3X8E.h"
#else
#error "Unsupported ARM MCU!"
#endif
#endif
la libreria e' questa: Electronics - Henning Karlsen
ci sono anche le altre associate che uso, ma tutte dovrebbero comunque fare riferimento a questa.
Ti ringrazio.
PaoloP:
--> GitHub - stanleyhuangyc/ArduinoTFTDevi seguire gli esempi degli altri micro e crearti il file "HW_ATmega1284.h".
E poi aggiungere nel file "UTFT.cpp" il codice per richiamarlo// Include hardware-specific functions for the correct MCU
#if defined(AVR)
#include <avr/pgmspace.h>
#if defined(AVR_ATmega1280) || defined(AVR_ATmega2560)
#include "HW_ATmega1280.h"
#elif defined(AVR_ATmega328P)
#include "HW_ATmega328P.h"
#elif defined(AVR_ATmega32U4)
#include "HW_ATmega32U4.h"
#elif defined(AVR_ATmega168)
#error "ATmega168 MCUs are not supported because they have too little flash memory!"
#else
#error "Unsupported AVR MCU!"
#endif
#elif defined(PIC32MX)
#if defined(32MX320F128H)
#pragma message("Compiling for chipKIT UNO32 (32MX320F128H)")
#include "HW_PIC32MX320F128H.h"
#elif defined(32MX340F512H)
#error "chipKIT uC32 (32MX340F512H) is not supported."
#elif defined(32MX795F512L)
#pragma message("Compiling for chipKIT MAX32 (32MX795F512L)")
#include "HW_PIC32MX795F512L.h"
#else
#error "Unsupported PIC32 MCU!"
#endif
#elif defined(arm)
#if defined(SAM3X8E)
#pragma message("Compiling for Arduino Due (AT91SAM3X8E)...")
#include "HW_SAM3X8E.h"
#else
#error "Unsupported ARM MCU!"
#endif
#endif
Si esatto, pero' il problema per me, come detto sopra, e' proprio creare il file "HW_ATmega1284.h".
Dovrebbe già funzionare.
Nel changelog c'è
v2.7 03 Nov 2013 • added support Bobuino (ATmega1284P)
PaoloP:
Dovrebbe già funzionare.
Nel changelog c'èv2.7 03 Nov 2013 • added support Bobuino (ATmega1284P)
Hai ragione, non avevo visto, la mia versione e' un po' piu' vecchia, controllo subito.
]
Scarica la versione più recente.
PaoloP:
]
Scarica la versione più recente.
Grazie mille, come uno stupido non avevo controllato gli aggiornamenti, io avevo la 2.60, proprio la versione prima dell' aggiornamento che mi interessava, arrrgggggggg
ho provato a compliare e ora non mi da problemi, devo solo verificare la corrispondenza degli I/O....