parent
45dee77092
commit
a952a96b6e
19 changed files with 200 additions and 168 deletions
|
@ -34,13 +34,13 @@
|
|||
* \brief This module contains code to interface a Contiki-based
|
||||
* project on the AVR Raven platform's ATMega1284P chip to the LCD
|
||||
* driver chip (ATMega3290P) on the Raven.
|
||||
*
|
||||
*
|
||||
* \author Blake Leverett <bleverett@gmail.com>
|
||||
*
|
||||
*/
|
||||
|
||||
/** \addtogroup raven
|
||||
* @{
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -121,7 +121,7 @@ seqno++;
|
|||
} else {
|
||||
// uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x5FFF,0x007D,0x02D0,0xB7FF,0xFE23,0xE6DB); //?.cisco.com
|
||||
uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x0000,0x0010,0x0250,0x8bff,0xfee8,0xf800); //six.cisco.com
|
||||
}
|
||||
}
|
||||
#else
|
||||
uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, uip_ds6_defrt_choose()); //the default router
|
||||
#endif
|
||||
|
@ -134,16 +134,16 @@ seqno++;
|
|||
/* put one byte of data */
|
||||
memset((void *)UIP_ICMP_BUF + UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN,
|
||||
count, PING6_DATALEN);
|
||||
|
||||
|
||||
|
||||
|
||||
uip_len = UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN + UIP_IPH_LEN + PING6_DATALEN;
|
||||
UIP_IP_BUF->len[0] = (uint8_t)((uip_len - 40) >> 8);
|
||||
UIP_IP_BUF->len[1] = (uint8_t)((uip_len - 40) & 0x00FF);
|
||||
|
||||
|
||||
UIP_ICMP_BUF->icmpchksum = 0;
|
||||
UIP_ICMP_BUF->icmpchksum = ~uip_icmp6chksum();
|
||||
|
||||
|
||||
|
||||
|
||||
tcpip_ipv6_output();
|
||||
}
|
||||
#if defined(__AVR_ATmega128RFA1__)
|
||||
|
@ -178,7 +178,7 @@ char serial_char_received;
|
|||
*
|
||||
* Until someone figures out how to get UART to wake from powerdown,
|
||||
* a three second powersave cycle is used with exit based on any character received.
|
||||
|
||||
|
||||
* The system clock is adjusted to reflect the sleep time.
|
||||
*/
|
||||
|
||||
|
@ -205,7 +205,7 @@ void micro_sleep(uint8_t howlong)
|
|||
SREG = saved_sreg; // Restore interrupt state.
|
||||
// UCSR(USART,B)&= ~(1<<RXCIE(USART)) // Disable the RX Complete interrupt;
|
||||
// UCSR0B|=(1<<RXCIE0); // Enable UART0 RX complete interrupt
|
||||
// UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt
|
||||
// UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt
|
||||
// TCNT2 = 0; // Reset TIMER2 timer counter value.
|
||||
// while(ASSR & (1 << TCN2UB)); // Wait for TCNT2 write to finish before entering sleep.
|
||||
// TIMSK2 |= (1 << OCIE2A); // Enable TIMER2 output compare interrupt.
|
||||
|
@ -263,7 +263,7 @@ ISR(TIMER2_COMPA_vect)
|
|||
#if DEBUGSERIAL
|
||||
uint8_t serialcount;
|
||||
char dbuf[30];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
extern uint16_t ledtimer;
|
||||
|
@ -271,7 +271,7 @@ static uint8_t
|
|||
raven_gui_loop(process_event_t ev, process_data_t data)
|
||||
{
|
||||
uint8_t i,activeconnections,radio_state;
|
||||
|
||||
|
||||
// PRINTF("\nevent %d ",ev);
|
||||
#if DEBUGSERIAL
|
||||
printf_P(PSTR("Buffer [%d]="),serialcount);
|
||||
|
@ -304,7 +304,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
|
|||
break;
|
||||
|
||||
} else switch (ev) {
|
||||
case SERIAL_CMD:
|
||||
case SERIAL_CMD:
|
||||
/* Check for command from serial port, execute it. */
|
||||
/* Note cmd frame is written in an interrupt - delays here can cause overwriting by next command */
|
||||
PRINTF("\nCommand %d length %d done %d",cmd.cmd,cmd.len,cmd.done);
|
||||
|
@ -373,7 +373,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
|
|||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Process an input character from serial port.
|
||||
/* Process an input character from serial port.
|
||||
* ** This is called from an ISR!!
|
||||
*/
|
||||
|
||||
|
@ -388,7 +388,7 @@ int raven_lcd_serial_input(unsigned char ch)
|
|||
#endif
|
||||
/* Don't overwrite an unprocessed command */
|
||||
// if (cmd.done) return 0;
|
||||
|
||||
|
||||
/* Parse frame, */
|
||||
switch (cmd.ndx){
|
||||
case 0:
|
||||
|
@ -402,7 +402,7 @@ int raven_lcd_serial_input(unsigned char ch)
|
|||
return 0;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
/* Second byte, length of payload */
|
||||
cmd.len = ch;
|
||||
break;
|
||||
|
@ -441,7 +441,7 @@ int raven_lcd_serial_input(unsigned char ch)
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
cmd.ndx++;
|
||||
return 0;
|
||||
}
|
||||
|
@ -458,7 +458,7 @@ raven_lcd_show_text(char *text) {
|
|||
static void
|
||||
lcd_show_servername(void) {
|
||||
|
||||
//extern uint8_t mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h
|
||||
//extern uint8_t mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h
|
||||
extern uint8_t server_name[16];
|
||||
//extern uint8_t domain_name[30];
|
||||
char buf[sizeof(server_name)+1];
|
||||
|
@ -480,14 +480,15 @@ PROCESS_THREAD(raven_lcd_process, ev, data)
|
|||
|
||||
/* Get ICMP6 callbacks from uip6 stack, perform 3290p action on pings, responses, etc. */
|
||||
if(icmp6_new(NULL) == 0) {
|
||||
|
||||
|
||||
while(1) {
|
||||
PROCESS_YIELD();
|
||||
// if (ev != ?) //trap frequent strobes?
|
||||
raven_gui_loop(ev, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
PROCESS_END();
|
||||
}
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue