last version of the raven lcd user interface
This commit is contained in:
parent
3428e17cea
commit
acfe78a51a
@ -39,6 +39,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <avr/eeprom.h>
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
@ -131,6 +132,27 @@ uint8_t
|
|||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief This will check for DEBUG mode after power up.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
eeprom_init(void)
|
||||||
|
{
|
||||||
|
uint8_t val;
|
||||||
|
if(0xFF == eeprom_read_byte(EEPROM_DEBUG_ADDR)){
|
||||||
|
/* Disable - Reverse logic. */
|
||||||
|
val = 1;
|
||||||
|
menu_debug_mode(&val);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
/* Enable - Reverse logic. */
|
||||||
|
val = 0;
|
||||||
|
menu_debug_mode(&val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief This will start a sleep operation.
|
* \brief This will start a sleep operation.
|
||||||
*
|
*
|
||||||
@ -252,16 +274,20 @@ menu_debug_mode(uint8_t *val)
|
|||||||
uint8_t sreg = SREG;
|
uint8_t sreg = SREG;
|
||||||
cli();
|
cli();
|
||||||
if(*val){
|
if(*val){
|
||||||
/* Could use inline ASM to meet timing requirements. */
|
/* Disable - Could use inline ASM to meet timing requirements. */
|
||||||
MCUCR |= (1 << JTD);
|
MCUCR |= (1 << JTD);
|
||||||
MCUCR |= (1 << JTD);
|
MCUCR |= (1 << JTD);
|
||||||
/* Needed for timing critical JTD disable. */
|
/* Needed for timing critical JTD disable. */
|
||||||
temp_init();
|
temp_init();
|
||||||
|
/* Store setting in EEPROM. */
|
||||||
|
eeprom_write_byte(EEPROM_DEBUG_ADDR, 0xFF);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
/* Could use inline ASM to meet timing requirements. */
|
/* Enable - Could use inline ASM to meet timing requirements. */
|
||||||
MCUCR &= ~(1 << JTD);
|
MCUCR &= ~(1 << JTD);
|
||||||
MCUCR &= ~(1 << JTD);
|
MCUCR &= ~(1 << JTD);
|
||||||
|
/* Store setting in EEPROM. */
|
||||||
|
eeprom_write_byte(EEPROM_DEBUG_ADDR, 0x01);
|
||||||
}
|
}
|
||||||
SREG = sreg;
|
SREG = sreg;
|
||||||
}
|
}
|
||||||
|
@ -66,9 +66,12 @@ extern bool temp_flag;
|
|||||||
extern bool auto_temp;
|
extern bool auto_temp;
|
||||||
extern const PROGMEM tmenu_item menu_items[];
|
extern const PROGMEM tmenu_item menu_items[];
|
||||||
|
|
||||||
|
#define EEPROM_DEBUG_ADDR 0
|
||||||
|
|
||||||
void menu_run_sleep(uint8_t *val);
|
void menu_run_sleep(uint8_t *val);
|
||||||
void dectoascii(uint8_t val, char *str);
|
void dectoascii(uint8_t val, char *str);
|
||||||
uint8_t *signed_dectoascii(int16_t n, uint8_t *str);
|
uint8_t *signed_dectoascii(int16_t n, uint8_t *str);
|
||||||
|
void eeprom_init(void);
|
||||||
void menu_ping_request(uint8_t * val);
|
void menu_ping_request(uint8_t * val);
|
||||||
uint8_t menu_send_ping(void);
|
uint8_t menu_send_ping(void);
|
||||||
void menu_stop_ping(void);
|
void menu_stop_ping(void);
|
||||||
|
@ -1,15 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* \mainpage ATmega3290p LCD Driver Software for Raven
|
||||||
|
*/
|
||||||
/**
|
/**
|
||||||
* \section ATmega3290p LCD Driver Software for Raven
|
* \image html raven.png
|
||||||
|
* \ingroup platform
|
||||||
|
* \defgroup lcdraven RZRAVEN LCD 3290p
|
||||||
*
|
*
|
||||||
*
|
* \section intro_lcd LCD Introduction
|
||||||
* \subsection intro_lcd LCD Introduction
|
|
||||||
*
|
*
|
||||||
* This Raven LCD Driver application software was designed for a user interface
|
* This Raven LCD Driver application software was designed for a user interface
|
||||||
* to the Contiki 6LoWPAN collaboration on board the ATmega3290p. The
|
* to the Contiki 6LoWPAN collaboration on board the ATmega3290p. The
|
||||||
* LCD functionality uses the binary command set described in the release notes.
|
* LCD functionality uses the binary command set described in the release notes.
|
||||||
* These binary commands can also be found in a list of main.h.
|
* These binary commands can also be found in a list of main.h.
|
||||||
*
|
*
|
||||||
* \subsection compile_lcd Compiling Raven LCD Driver
|
* \section compile_lcd Compiling Raven LCD Driver
|
||||||
*
|
*
|
||||||
* Raven LCD Driver can be compiled on the following platforms:
|
* Raven LCD Driver can be compiled on the following platforms:
|
||||||
*
|
*
|
||||||
@ -22,9 +26,8 @@
|
|||||||
* required for GCC/avr-libc to recognize new devices. The avr-libc
|
* required for GCC/avr-libc to recognize new devices. The avr-libc
|
||||||
* webpage includes a concise guide on how to patch and build the AVR
|
* webpage includes a concise guide on how to patch and build the AVR
|
||||||
* toolchain.
|
* toolchain.
|
||||||
* -# <b>IAR EWB-AVR.</b> is currently not supported.
|
|
||||||
*
|
*
|
||||||
* \subsection fuses Board fuse settings
|
* \section fuses_lcd Board fuse settings
|
||||||
*
|
*
|
||||||
* The Raven LCD (3290p device) requires the proper fuse settings to function
|
* The Raven LCD (3290p device) requires the proper fuse settings to function
|
||||||
* properly. These settings have been summarized below:
|
* properly. These settings have been summarized below:
|
||||||
@ -33,7 +36,7 @@
|
|||||||
* -# High: <b>0x99</b> (JTAG and ISP enabled, No OCDEN or EEPROM saving required)
|
* -# High: <b>0x99</b> (JTAG and ISP enabled, No OCDEN or EEPROM saving required)
|
||||||
* -# Low: <b>0xE2</b> (Use Int RC OSC - Start-up Time:6CK + 65ms)
|
* -# Low: <b>0xE2</b> (Use Int RC OSC - Start-up Time:6CK + 65ms)
|
||||||
*
|
*
|
||||||
* \subsection notes Operation Release Notes
|
* \section notes_lcd Operation Release Notes
|
||||||
*
|
*
|
||||||
* After programming the Raven LCD 3290p with the proper image, you will be introduced to
|
* After programming the Raven LCD 3290p with the proper image, you will be introduced to
|
||||||
* the menu in the picture below:
|
* the menu in the picture below:
|
||||||
@ -56,7 +59,13 @@
|
|||||||
* to the webserver for Sensor Reading Data (<b>Once</b> or <b>Auto</b>). The webserver will
|
* to the webserver for Sensor Reading Data (<b>Once</b> or <b>Auto</b>). The webserver will
|
||||||
* only update the html data when <b>refreshed</b>.
|
* only update the html data when <b>refreshed</b>.
|
||||||
*
|
*
|
||||||
* \subsection binary Binary Command Description
|
* More information about the operation of the Contiki 6LoWPAN system can be found
|
||||||
|
* at the \ref tutorialraven.
|
||||||
|
*
|
||||||
|
* More information about the 802.15.4 MAC designed for the Contiki 6LoWPAN system
|
||||||
|
* can be found at the \ref macdoc.
|
||||||
|
*
|
||||||
|
* \section binary_lcd Binary Command Description
|
||||||
*
|
*
|
||||||
* Using the binary commmand list described in main.h, the 3290p will contruct a binary
|
* Using the binary commmand list described in main.h, the 3290p will contruct a binary
|
||||||
* command serial frame to control the 1284p. An example command frame is contructed below:
|
* command serial frame to control the 1284p. An example command frame is contructed below:
|
||||||
@ -124,7 +133,18 @@
|
|||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "temp.h"
|
#include "temp.h"
|
||||||
|
|
||||||
/** \defgroup lcd LCD Functions and data
|
#include <avr/io.h>
|
||||||
|
#include <avr/fuse.h>
|
||||||
|
FUSES =
|
||||||
|
{
|
||||||
|
.low = 0xe2,
|
||||||
|
.high = 0x99,
|
||||||
|
.extended = 0xff,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** \ingroup lcdraven
|
||||||
|
\defgroup lcd LCD Functions and data
|
||||||
* \{
|
* \{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -277,6 +297,8 @@ main(void)
|
|||||||
|
|
||||||
uart_init();
|
uart_init();
|
||||||
|
|
||||||
|
eeprom_init();
|
||||||
|
|
||||||
temp_init();
|
temp_init();
|
||||||
|
|
||||||
timer_init();
|
timer_init();
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
#include "key.h"
|
#include "key.h"
|
||||||
#include "temp.h"
|
#include "temp.h"
|
||||||
#include <avr/pgmspace.h>
|
#include "lcd.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \addtogroup lcd
|
* \addtogroup lcd
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
#define PROGMEM_DECLARE(x) x __attribute__((__progmem__))
|
#define PROGMEM_DECLARE(x) x __attribute__((__progmem__))
|
||||||
|
|
||||||
/** \addtogroup grNTC */
|
/** \addtogroup lcd */
|
||||||
/** \{ */
|
/** \{ */
|
||||||
/** Type used with \ref temp_get() to select temperature unit */
|
/** Type used with \ref temp_get() to select temperature unit */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
Loading…
Reference in New Issue
Block a user