Fix warning about possible string truncation in the TempDataLogger project.
[pub/USBasp.git] / Projects / TempDataLogger / TempDataLogger.c
index 4aaff1f..816c326 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -44,7 +44,7 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
        {
                .Config =
                        {
-                               .InterfaceNumber           = 0,
+                               .InterfaceNumber           = INTERFACE_ID_MassStorage,
                                .DataINEndpoint            =
                                        {
                                                .Address           = MASS_STORAGE_IN_EPADDR,
@@ -72,7 +72,7 @@ USB_ClassInfo_HID_Device_t Generic_HID_Interface =
        {
                .Config =
                        {
-                               .InterfaceNumber              = 1,
+                               .InterfaceNumber              = INTERFACE_ID_HID,
                                .ReportINEndpoint             =
                                        {
                                                .Address              = GENERIC_IN_EPADDR,
@@ -103,7 +103,8 @@ static FIL TempLogFile;
 /** ISR to handle the 500ms ticks for sampling and data logging */
 ISR(TIMER1_COMPA_vect, ISR_BLOCK)
 {
-       uint8_t LEDMask = LEDs_GetLEDs();
+       /* Signal a 500ms tick has elapsed to the RTC */
+       RTC_Tick500ms();
 
        /* Check to see if the logging interval has expired */
        if (++CurrentLoggingTicks < LoggingInterval500MS_SRAM)
@@ -112,18 +113,19 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK)
        /* Reset log tick counter to prepare for next logging interval */
        CurrentLoggingTicks = 0;
 
+       uint8_t LEDMask = LEDs_GetLEDs();
        LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
 
        /* Only log when not connected to a USB host */
        if (USB_DeviceState == DEVICE_STATE_Unattached)
        {
                TimeDate_t CurrentTimeDate;
-               DS1307_GetTimeDate(&CurrentTimeDate);
+               RTC_GetTimeDate(&CurrentTimeDate);
 
                char     LineBuffer[100];
                uint16_t BytesWritten;
 
-               BytesWritten = sprintf(LineBuffer, "%02d/%02d/20%02d, %02d:%02d:%02d, %d Degrees\r\n",
+               BytesWritten = snprintf(LineBuffer, sizeof(LineBuffer), "%02d/%02d/20%02d, %02d:%02d:%02d, %d Degrees\r\n",
                                       CurrentTimeDate.Day, CurrentTimeDate.Month, CurrentTimeDate.Year,
                                       CurrentTimeDate.Hour, CurrentTimeDate.Minute, CurrentTimeDate.Second,
                                       Temperature_GetTemperature());
@@ -166,12 +168,12 @@ int main(void)
 /** Opens the log file on the Dataflash's FAT formatted partition according to the current date */
 void OpenLogFile(void)
 {
-       char LogFileName[12];
+       char LogFileName[16];
 
        /* Get the current date for the filename as "DDMMYY.csv" */
        TimeDate_t CurrentTimeDate;
-       DS1307_GetTimeDate(&CurrentTimeDate);
-       sprintf(LogFileName, "%02d%02d%02d.csv", CurrentTimeDate.Day, CurrentTimeDate.Month, CurrentTimeDate.Year);
+       RTC_GetTimeDate(&CurrentTimeDate);
+       snprintf(LogFileName, sizeof(LogFileName), "%02d%02d%02d.csv", CurrentTimeDate.Day, CurrentTimeDate.Month, CurrentTimeDate.Year);
 
        /* Mount the storage device, open the file */
        f_mount(0, &DiskFATState);
@@ -190,25 +192,27 @@ void CloseLogFile(void)
 /** Configures the board hardware and chip peripherals for the demo's functionality. */
 void SetupHardware(void)
 {
+#if (ARCH == ARCH_AVR8)
        /* Disable watchdog if enabled by bootloader/fuses */
        MCUSR &= ~(1 << WDRF);
        wdt_disable();
 
        /* Disable clock division */
        clock_prescale_set(clock_div_1);
+#endif
 
        /* Hardware Initialization */
        LEDs_Init();
-       SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
        ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128);
        Temperature_Init();
        Dataflash_Init();
        USB_Init();
        TWI_Init(TWI_BIT_PRESCALE_4, TWI_BITLENGTH_FROM_FREQ(4, 50000));
+       RTC_Init();
 
        /* 500ms logging interval timer configuration */
-       OCR1A   = (((F_CPU / 1024) / 2) - 1);
-       TCCR1B  = (1 << WGM12) | (1 << CS12) | (1 << CS10);
+       OCR1A   = (((F_CPU / 256) / 2) - 1);
+       TCCR1B  = (1 << WGM12) | (1 << CS12);
        TIMSK1  = (1 << OCIE1A);
 
        /* Check if the Dataflash is working, abort if not */
@@ -281,7 +285,7 @@ bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSI
  *  \param[out]    ReportData  Pointer to a buffer where the created report should be stored
  *  \param[out]    ReportSize  Number of bytes written in the report (or zero if no report is to be sent)
  *
- *  \return Boolean true to force the sending of the report, false to let the library determine if it needs to be sent
+ *  \return Boolean \c true to force the sending of the report, \c false to let the library determine if it needs to be sent
  */
 bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
                                          uint8_t* const ReportID,
@@ -291,7 +295,7 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
 {
        Device_Report_t* ReportParams = (Device_Report_t*)ReportData;
 
-       DS1307_GetTimeDate(&ReportParams->TimeDate);
+       RTC_GetTimeDate(&ReportParams->TimeDate);
 
        ReportParams->LogInterval500MS = LoggingInterval500MS_SRAM;
 
@@ -315,7 +319,7 @@ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDI
 {
        Device_Report_t* ReportParams = (Device_Report_t*)ReportData;
 
-       DS1307_SetTimeDate(&ReportParams->TimeDate);
+       RTC_SetTimeDate(&ReportParams->TimeDate);
 
        /* If the logging interval has changed from its current value, write it to EEPROM */
        if (LoggingInterval500MS_SRAM != ReportParams->LogInterval500MS)