project atmel
This commit is contained in:
parent
2870d4685e
commit
2ad07a39c5
BIN
.vs/hdlc_screen/v14/.atsuo
Normal file
BIN
.vs/hdlc_screen/v14/.atsuo
Normal file
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
#ifndef Lsd_print_h
|
||||
#define Lsd_print_h
|
||||
#include "protocol.h"
|
||||
|
||||
void Lcd_inciliation();
|
||||
void printLcd(struct message* decode_message);
|
||||
|
||||
#endif
|
@ -1,22 +0,0 @@
|
||||
|
||||
#ifndef MYLCD_H_
|
||||
#define MYLCD_H_
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <compat/twi.h>
|
||||
#include <inttypes.h>
|
||||
#include <avr/pgmspace.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdio.h>
|
||||
#include "lcdpcf8574.h"
|
||||
#include "pcf8574.h"
|
||||
#include "i2cmaster.h"
|
||||
|
||||
|
||||
#endif
|
@ -1,316 +0,0 @@
|
||||
#include "MyLCD.h"
|
||||
|
||||
// задержеки через асемблер
|
||||
#define lcd_e_delay() __asm__ __volatile__( "rjmp 1f\n 1:" );
|
||||
#define lcd_e_toggle() toggle_e()
|
||||
|
||||
|
||||
volatile uint8_t dataport = 0;
|
||||
|
||||
static void toggle_e(void);
|
||||
|
||||
// сама реализация задержек
|
||||
static inline void _delayFourCycles(unsigned int __count)
|
||||
{
|
||||
if ( __count == 0 )
|
||||
__asm__ __volatile__( "rjmp 1f\n 1:" );
|
||||
else
|
||||
__asm__ __volatile__ (
|
||||
"1: sbiw %0,1" "\n\t"
|
||||
"brne 1b"
|
||||
: "=w" (__count)
|
||||
: "0" (__count)
|
||||
);
|
||||
}
|
||||
|
||||
// тупа оборачиваем функцию в макрос
|
||||
#define delay(us) _delayFourCycles( ( ( 1*(F_CPU/4000) )*us)/1000 )
|
||||
|
||||
// переключение пина для начала записи команды
|
||||
static void toggle_e(void)
|
||||
{
|
||||
pcf8574_setoutputpinhigh(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
lcd_e_delay();
|
||||
pcf8574_setoutputpinlow(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
}
|
||||
|
||||
|
||||
// отправка байта для контроллера LCD
|
||||
static void lcd_write(uint8_t data,uint8_t rs)
|
||||
{
|
||||
if (rs) //отправка данных (RS=1, RW=0)
|
||||
dataport |= _BV(LCD_RS_PIN);
|
||||
else // отпрака инструкций(RS=0, RW=0)
|
||||
dataport &= ~_BV(LCD_RS_PIN);
|
||||
dataport &= ~_BV(LCD_RW_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
|
||||
// отправка старшего полубайта
|
||||
dataport &= ~_BV(LCD_DATA3_PIN);
|
||||
dataport &= ~_BV(LCD_DATA2_PIN);
|
||||
dataport &= ~_BV(LCD_DATA1_PIN);
|
||||
dataport &= ~_BV(LCD_DATA0_PIN);
|
||||
if(data & 0x80) dataport |= _BV(LCD_DATA3_PIN);
|
||||
if(data & 0x40) dataport |= _BV(LCD_DATA2_PIN);
|
||||
if(data & 0x20) dataport |= _BV(LCD_DATA1_PIN);
|
||||
if(data & 0x10) dataport |= _BV(LCD_DATA0_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
lcd_e_toggle();
|
||||
|
||||
// отправка младшего полубайта
|
||||
dataport &= ~_BV(LCD_DATA3_PIN);
|
||||
dataport &= ~_BV(LCD_DATA2_PIN);
|
||||
dataport &= ~_BV(LCD_DATA1_PIN);
|
||||
dataport &= ~_BV(LCD_DATA0_PIN);
|
||||
if(data & 0x08) dataport |= _BV(LCD_DATA3_PIN);
|
||||
if(data & 0x04) dataport |= _BV(LCD_DATA2_PIN);
|
||||
if(data & 0x02) dataport |= _BV(LCD_DATA1_PIN);
|
||||
if(data & 0x01) dataport |= _BV(LCD_DATA0_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
lcd_e_toggle();
|
||||
|
||||
// завершаем передачу
|
||||
dataport |= _BV(LCD_DATA0_PIN);
|
||||
dataport |= _BV(LCD_DATA1_PIN);
|
||||
dataport |= _BV(LCD_DATA2_PIN);
|
||||
dataport |= _BV(LCD_DATA3_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
}
|
||||
|
||||
// чтение байта
|
||||
static uint8_t lcd_read(uint8_t rs)
|
||||
{
|
||||
uint8_t data;
|
||||
|
||||
if (rs) // запись данных (RS=1, RW=0)
|
||||
dataport |= _BV(LCD_RS_PIN);
|
||||
else // запись инструкций (RS=0, RW=0)
|
||||
dataport &= ~_BV(LCD_RS_PIN);
|
||||
dataport |= _BV(LCD_RW_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
|
||||
pcf8574_setoutputpinhigh(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
lcd_e_delay();
|
||||
// чтение страшего полубайта
|
||||
data = pcf8574_getoutputpin(LCD_PCF8574_DEVICEID, LCD_DATA0_PIN) << 4;
|
||||
pcf8574_setoutputpinlow(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
|
||||
lcd_e_delay();
|
||||
|
||||
pcf8574_setoutputpinhigh(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
lcd_e_delay();
|
||||
// чтение младшего полубайта
|
||||
data |= pcf8574_getoutputpin(LCD_PCF8574_DEVICEID, LCD_DATA0_PIN) &0x0F;
|
||||
pcf8574_setoutputpinlow(LCD_PCF8574_DEVICEID, LCD_E_PIN);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
// ждем пока ЖК освободится
|
||||
static uint8_t lcd_waitbusy(void)
|
||||
|
||||
{
|
||||
register uint8_t c;
|
||||
|
||||
// ждем
|
||||
while ( (c=lcd_read(0)) & (1<<LCD_BUSY)) {}
|
||||
// задержка
|
||||
delay(2);
|
||||
// получаем адрес
|
||||
return (lcd_read(0));
|
||||
}
|
||||
|
||||
|
||||
// перемещение курсора по строкам
|
||||
static inline void lcd_newline(uint8_t pos)
|
||||
{
|
||||
register uint8_t addressCounter;
|
||||
|
||||
|
||||
#if LCD_LINES==1
|
||||
addressCounter = 0;
|
||||
#endif
|
||||
#if LCD_LINES==2
|
||||
if ( pos < (LCD_START_LINE2) )
|
||||
addressCounter = LCD_START_LINE2;
|
||||
else
|
||||
addressCounter = LCD_START_LINE1;
|
||||
#endif
|
||||
#if LCD_LINES==4
|
||||
if ( pos < LCD_START_LINE3 )
|
||||
addressCounter = LCD_START_LINE2;
|
||||
else if ( (pos >= LCD_START_LINE2) && (pos < LCD_START_LINE4) )
|
||||
addressCounter = LCD_START_LINE3;
|
||||
else if ( (pos >= LCD_START_LINE3) && (pos < LCD_START_LINE2) )
|
||||
addressCounter = LCD_START_LINE4;
|
||||
else
|
||||
addressCounter = LCD_START_LINE1;
|
||||
#endif
|
||||
lcd_command((1<<LCD_DDRAM)+addressCounter);
|
||||
}
|
||||
|
||||
// служебная функция для отправки команд дисплею
|
||||
void lcd_command(uint8_t cmd)
|
||||
{
|
||||
lcd_waitbusy();
|
||||
lcd_write(cmd,0);
|
||||
}
|
||||
|
||||
// отправка байта на дисплей
|
||||
void lcd_data(uint8_t data)
|
||||
{
|
||||
lcd_waitbusy();
|
||||
lcd_write(data,1);
|
||||
}
|
||||
|
||||
// перемещение курсора по координатам
|
||||
void lcd_gotoxy(uint8_t x, uint8_t y)
|
||||
{
|
||||
#if LCD_LINES==1
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE1+x);
|
||||
#endif
|
||||
#if LCD_LINES==2
|
||||
if ( y==0 )
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE1+x);
|
||||
else
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE2+x);
|
||||
#endif
|
||||
#if LCD_LINES==4
|
||||
if ( y==0 )
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE1+x);
|
||||
else if ( y==1)
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE2+x);
|
||||
else if ( y==2)
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE3+x);
|
||||
else
|
||||
lcd_command((1<<LCD_DDRAM)+LCD_START_LINE4+x);
|
||||
#endif
|
||||
}
|
||||
|
||||
// тырим координаты
|
||||
int lcd_getxy(void)
|
||||
{
|
||||
return lcd_waitbusy();
|
||||
}
|
||||
|
||||
// очистка дисплея
|
||||
void lcd_clrscr(void)
|
||||
{
|
||||
lcd_command(1<<LCD_CLR);
|
||||
}
|
||||
|
||||
// вкл и откл подсветки
|
||||
void lcd_led(uint8_t onoff)
|
||||
{
|
||||
if(onoff)
|
||||
dataport &= ~_BV(LCD_LED_PIN);
|
||||
else
|
||||
dataport |= _BV(LCD_LED_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
}
|
||||
|
||||
// курсов в начало координат
|
||||
void lcd_home(void)
|
||||
{
|
||||
lcd_command(1<<LCD_HOME);
|
||||
}
|
||||
|
||||
// отображение символа в текущей позиции курсора
|
||||
void lcd_putc(char c)
|
||||
{
|
||||
uint8_t pos;
|
||||
|
||||
pos = lcd_waitbusy();
|
||||
if (c=='\n')
|
||||
{
|
||||
lcd_newline(pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
#if LCD_WRAP_LINES==1
|
||||
#if LCD_LINES==1
|
||||
if ( pos == LCD_START_LINE1+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE1,0);
|
||||
}
|
||||
#elif LCD_LINES==2
|
||||
if ( pos == LCD_START_LINE1+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE2,0);
|
||||
}else if ( pos == LCD_START_LINE2+LCD_DISP_LENGTH ){
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE1,0);
|
||||
}
|
||||
#elif LCD_LINES==4
|
||||
if ( pos == LCD_START_LINE1+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE2,0);
|
||||
}else if ( pos == LCD_START_LINE2+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE3,0);
|
||||
}else if ( pos == LCD_START_LINE3+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE4,0);
|
||||
}else if ( pos == LCD_START_LINE4+LCD_DISP_LENGTH ) {
|
||||
lcd_write((1<<LCD_DDRAM)+LCD_START_LINE1,0);
|
||||
}
|
||||
#endif
|
||||
lcd_waitbusy();
|
||||
#endif
|
||||
lcd_write(c, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// вывод строки на дисплей
|
||||
void lcd_puts(const char *s)
|
||||
{
|
||||
register char c;
|
||||
|
||||
while ( (c = *s++) ) {
|
||||
lcd_putc(c);
|
||||
}
|
||||
}
|
||||
|
||||
// вывод строки из памяти
|
||||
void lcd_puts_p(const char *progmem_s)
|
||||
{
|
||||
register char c;
|
||||
|
||||
while ( (c = pgm_read_byte(progmem_s++)) ) {
|
||||
lcd_putc(c);
|
||||
}
|
||||
}
|
||||
|
||||
// инициализация дисплея
|
||||
void lcd_init(uint8_t dispAttr)
|
||||
{
|
||||
#if LCD_PCF8574_INIT == 1
|
||||
//инициализация pcf
|
||||
pcf8574_init();
|
||||
#endif
|
||||
|
||||
dataport = 0;
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
|
||||
delay(16000);
|
||||
|
||||
// первоначальная запись на ЖК-дисплей — 8 бит
|
||||
dataport |= _BV(LCD_DATA1_PIN); // _BV(LCD_FUNCTION)>>4;
|
||||
dataport |= _BV(LCD_DATA0_PIN); // _BV(LCD_FUNCTION_8BIT)>>4;
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
|
||||
// дрючим дисплей чтобы он начал работать
|
||||
lcd_e_toggle();
|
||||
delay(4992);
|
||||
lcd_e_toggle();
|
||||
delay(64);
|
||||
lcd_e_toggle();
|
||||
delay(64);
|
||||
|
||||
// переходим в 4 битный режим
|
||||
dataport &= ~_BV(LCD_DATA0_PIN);
|
||||
pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport);
|
||||
lcd_e_toggle();
|
||||
delay(64);
|
||||
|
||||
|
||||
lcd_command(LCD_FUNCTION_DEFAULT); // настраиваем кол-во строк
|
||||
lcd_command(LCD_DISP_OFF); // вырубаем дисплей
|
||||
lcd_clrscr(); // чистим экран
|
||||
lcd_command(LCD_MODE_DEFAULT); // запускаемся в стандартном режиме
|
||||
lcd_command(dispAttr); // отправляем настройки
|
||||
}
|
@ -1,115 +0,0 @@
|
||||
#include "MyLCD.h"
|
||||
uint8_t pcf8574_pinstatus[PCF8574_MAXDEVICES];
|
||||
|
||||
// инициализация pcf
|
||||
void pcf8574_init() {
|
||||
#if PCF8574_I2CINIT == 1
|
||||
// инитим i2c
|
||||
i2c_init();
|
||||
_delay_us(10);
|
||||
#endif
|
||||
uint8_t i = 0;
|
||||
for(i=0; i<PCF8574_MAXDEVICES; i++)
|
||||
pcf8574_pinstatus[i] = 0;
|
||||
|
||||
}
|
||||
|
||||
// получаем статус вывода
|
||||
int8_t pcf8574_getoutput(uint8_t deviceid) {
|
||||
int8_t data = -1;
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) {
|
||||
data = pcf8574_pinstatus[deviceid];
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
// получаем статус пинов вывода
|
||||
int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) {
|
||||
int8_t data = -1;
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) {
|
||||
data = pcf8574_pinstatus[deviceid];
|
||||
data = (data >> pin) & 0b00000001;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
// настройка вывода
|
||||
int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) {
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) {
|
||||
pcf8574_pinstatus[deviceid] = data;
|
||||
i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE);
|
||||
i2c_write(data);
|
||||
i2c_stop();
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// установить выходные контакты, заменить фактический статус устройства из pinstart для i2c
|
||||
int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t pinlength, int8_t data) {
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pinstart - pinlength + 1 >= 0 && pinstart - pinlength + 1 >= 0 && pinstart < PCF8574_MAXPINS && pinstart > 0 && pinlength > 0)) {
|
||||
uint8_t b = 0;
|
||||
b = pcf8574_pinstatus[deviceid];
|
||||
uint8_t mask = ((1 << pinlength) - 1) << (pinstart - pinlength + 1);
|
||||
data <<= (pinstart - pinlength + 1);
|
||||
data &= mask;
|
||||
b &= ~(mask);
|
||||
b |= data;
|
||||
pcf8574_pinstatus[deviceid] = b;
|
||||
//рестартим
|
||||
i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE);
|
||||
i2c_write(b);
|
||||
i2c_stop();
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// настройка пинов вывода
|
||||
int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) {
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) {
|
||||
uint8_t b = 0;
|
||||
b = pcf8574_pinstatus[deviceid];
|
||||
b = (data != 0) ? (b | (1 << pin)) : (b & ~(1 << pin));
|
||||
pcf8574_pinstatus[deviceid] = b;
|
||||
//рестартим
|
||||
i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE);
|
||||
i2c_write(b);
|
||||
i2c_stop();
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// установка высокого уровня на выходных пинах
|
||||
int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) {
|
||||
return pcf8574_setoutputpin(deviceid, pin, 1);
|
||||
}
|
||||
|
||||
// установка низкого уровня на выходных пинах
|
||||
int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) {
|
||||
return pcf8574_setoutputpin(deviceid, pin, 0);
|
||||
}
|
||||
|
||||
// получение входных данных
|
||||
int8_t pcf8574_getinput(uint8_t deviceid) {
|
||||
int8_t data = -1;
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) {
|
||||
i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_READ);
|
||||
data = ~i2c_readNak();
|
||||
i2c_stop();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
// получение входного контакта (высокий или низкий)
|
||||
int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) {
|
||||
int8_t data = -1;
|
||||
if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) {
|
||||
data = pcf8574_getinput(deviceid);
|
||||
if(data != -1) {
|
||||
data = (data >> pin) & 0b00000001;
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
#include "MyLCD.h"
|
||||
|
||||
// инициализация интерфейса i2c
|
||||
void i2c_init(void)
|
||||
{
|
||||
// предделитель тактовой частоты равен 1
|
||||
TWSR = 0;
|
||||
// рассчет скорости передачи данных
|
||||
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
|
||||
}
|
||||
|
||||
// передача условия СТАРТ на шину
|
||||
unsigned char i2c_start(unsigned char address)
|
||||
{
|
||||
uint8_t twst;
|
||||
|
||||
// отправка условия СТАРТ
|
||||
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
|
||||
// ожидание завершения передачи условия СТАРТ
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
// проверка значений регистра
|
||||
twst = TW_STATUS & 0xF8;
|
||||
if ( (twst != TW_START) && (twst != TW_REP_START)) return 1;
|
||||
// отправка адреса устрой-ва
|
||||
TWDR = address;
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
// ожидание ответа от ведомого уст-ва
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
// проверка полученных значений
|
||||
twst = TW_STATUS & 0xF8;
|
||||
if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
// ждем, если устрой-во занято, а потом передаем условие СТАРТ на шину
|
||||
void i2c_start_wait(unsigned char address)
|
||||
{
|
||||
uint8_t twst;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
// отправка условия СТАРТ
|
||||
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
|
||||
// ожидание завершения передачи условия СТАРТ
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
// проверка значений регистра
|
||||
twst = TW_STATUS & 0xF8;
|
||||
if ( (twst != TW_START) && (twst != TW_REP_START)) continue;
|
||||
// отправка адреса устрой-ва
|
||||
TWDR = address;
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
// ожидание ответа от ведомого уст-ва
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
// проверка занято ли ведомое уст-во
|
||||
twst = TW_STATUS & 0xF8;
|
||||
if ( (twst == TW_MT_SLA_NACK )||(twst ==TW_MR_DATA_NACK) )
|
||||
{
|
||||
// устройство занято, отправьте условие остановки для прекращения операции записи
|
||||
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
|
||||
// ждем освобождения шины
|
||||
while(TWCR & (1<<TWSTO));
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// тупа повторяем условие СТАРТ
|
||||
unsigned char i2c_rep_start(unsigned char address)
|
||||
{
|
||||
return i2c_start(address);
|
||||
}
|
||||
|
||||
// передача условия СТОП на шину
|
||||
void i2c_stop(void)
|
||||
{
|
||||
// отправка условия СТОП
|
||||
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
|
||||
// ждем выполнения условия остановки
|
||||
while(TWCR & (1<<TWSTO));
|
||||
}
|
||||
|
||||
// отправка данных, если функция вернет 0, то все успешно, иначе нет
|
||||
unsigned char i2c_write( unsigned char data )
|
||||
{
|
||||
uint8_t twst;
|
||||
|
||||
// отправляем данные на уст-во
|
||||
TWDR = data;
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
// ждем завершения передачи
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
// записываем ответ от ведомого уст-ва
|
||||
twst = TW_STATUS & 0xF8;
|
||||
if( twst != TW_MT_DATA_ACK) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// читаем данные и продолжаем вещание
|
||||
unsigned char i2c_readAck(void)
|
||||
{
|
||||
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
|
||||
return TWDR;
|
||||
}
|
||||
|
||||
// читаем данные и после их получения передаем услови СТОП
|
||||
unsigned char i2c_readNak(void)
|
||||
{
|
||||
TWCR = (1<<TWINT) | (1<<TWEN);
|
||||
while(!(TWCR & (1<<TWINT)));
|
||||
|
||||
return TWDR;
|
||||
}
|
61
UART/uart.c
61
UART/uart.c
@ -1,61 +0,0 @@
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "circular_buf.h"
|
||||
#include "uart.h"
|
||||
|
||||
struct circular_buffer uartRxBuffer;
|
||||
struct circular_buffer uartTxBuffer;
|
||||
|
||||
void UART_init(void) {
|
||||
UCSR0B = (1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0) | (1<<TXCIE0) | (1 << UDRIE0); // прерывание по приему и передаче
|
||||
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
|
||||
UBRR0H = 0;
|
||||
UBRR0L = 103;
|
||||
}
|
||||
|
||||
void UART_send(uint8_t* data, size_t length) {
|
||||
for (size_t i = 0; i < length; i++) {
|
||||
if (!buffer_full(&uartTxBuffer)) {
|
||||
write_buffer(&uartTxBuffer, data[i]);
|
||||
} else {
|
||||
break; // если буфер передачи заполнен, то отправка прерывается
|
||||
}
|
||||
}
|
||||
UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи
|
||||
}
|
||||
|
||||
// Получение данных из буфера
|
||||
int UART_receive(uint8_t* data, size_t length) {
|
||||
char overflow = 0; // Флаг переполнения, который устанавливается, если превышен размер массива
|
||||
uint32_t byteCount = 0; // Счетчик байтов, принятых из буфера приема
|
||||
// Пока буфер приема не пуст и не превышен лимит длины массива,
|
||||
// функция продолжает читать байты из буфера и сохранять их в массив data.
|
||||
while (!buffer_empty(&uartRxBuffer) && byteCount < length) {
|
||||
int reader = read_buffer(&uartRxBuffer); // Прием и запись символа в переменную
|
||||
data[byteCount] = reader; // Запись в массив с индексом byteCount
|
||||
byteCount++;
|
||||
}
|
||||
// Проверка переполнения
|
||||
if (byteCount > length) {
|
||||
overflow = 1;
|
||||
}
|
||||
return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения
|
||||
}
|
||||
|
||||
// прерывание по завершению приема
|
||||
ISR(USART_RX_vect) {
|
||||
uint8_t data = UDR0; // читаем из регистра UDR0
|
||||
if (!buffer_full(&uartRxBuffer)) {
|
||||
write_buffer(&uartRxBuffer, data);// записываем символ в буфер приема
|
||||
}
|
||||
}
|
||||
|
||||
ISR(USART_TX_vect) {
|
||||
if (!buffer_empty(&uartTxBuffer)) {
|
||||
UDR0 = read_buffer(&uartTxBuffer);
|
||||
} else {
|
||||
UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены
|
||||
}
|
||||
}
|
13
UART/uart.h
13
UART/uart.h
@ -1,13 +0,0 @@
|
||||
#ifndef UART_H
|
||||
#define UART_H
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#define F_CPU 16000000
|
||||
|
||||
void UART_init(void);
|
||||
void UART_send(uint8_t* data, size_t length);
|
||||
int UART_receive(uint8_t* data, size_t length);
|
||||
|
||||
|
||||
#endif /* UART_H */
|
181
hdlc/main.c
181
hdlc/main.c
@ -1,181 +0,0 @@
|
||||
//#include "hdlc.h"
|
||||
#include "stdio.h"
|
||||
#include "client.h"
|
||||
|
||||
int main(){
|
||||
struct Client hdlc;
|
||||
init_hdlc_client(&hdlc, 200);
|
||||
hdlc_connect(&hdlc);
|
||||
uint8_t buffer_for_ex[20];
|
||||
uint8_t fake_buffer;
|
||||
hdlc_get_raw_frame(&hdlc, buffer_for_ex, sizeof(buffer_for_ex));
|
||||
|
||||
for (int i = 0; i < 200; i++){
|
||||
int z = hdlc_timeout_handler(&hdlc, 1);
|
||||
hdlc_decode_recived_raw_data(&hdlc, &fake_buffer, sizeof(fake_buffer), 0, 0);
|
||||
}
|
||||
|
||||
hdlc_get_raw_frame(&hdlc, buffer_for_ex, sizeof(buffer_for_ex));
|
||||
int i = hdlc_decode_recived_raw_data(&hdlc, buffer_for_ex, sizeof(buffer_for_ex), 0, 0);
|
||||
if (i < 0){
|
||||
printf("err connect: %d\n", i);
|
||||
}
|
||||
|
||||
uint8_t data[] = {32, 233, 132, 102, 12, 12, 44, 121, 34};
|
||||
hdlc_send_data(&hdlc, data, sizeof(data));
|
||||
uint8_t buffer_for_ex_data[20];
|
||||
|
||||
hdlc_get_raw_frame(&hdlc, buffer_for_ex_data, 20);
|
||||
|
||||
//printf("first_ex:%d\n", buffer_for_ex_data[0]);
|
||||
uint8_t recivedData[] = {};
|
||||
size_t len_recived_data = 0;
|
||||
int x = hdlc_decode_recived_raw_data(&hdlc, buffer_for_ex_data, 20, recivedData, &len_recived_data);
|
||||
if (x < 0){
|
||||
printf("err send: %d\n", x);
|
||||
}
|
||||
printf("recived data: %d\n", recivedData[1]);
|
||||
|
||||
|
||||
|
||||
|
||||
// uint8_t send[64];
|
||||
// uint8_t buffer[134];
|
||||
// for (int i = 0; i < sizeof(send); i++) {
|
||||
// send[i] = (uint8_t) (rand() % 0x70);
|
||||
// }
|
||||
// send_data(&hdlc, send, sizeof(send_data));
|
||||
// //get_frame(&hdlc, buffer, sizeof(buffer), send_data, sizeof(send_data));
|
||||
//
|
||||
// hdlc_get_raw_data(&hdlc, buffer, sizeof(buffer));
|
||||
|
||||
// test 1
|
||||
|
||||
// int ret;
|
||||
// uint8_t frame_data[8], recv_data[8];
|
||||
// size_t i, frame_length = 0, recv_length = 0;
|
||||
// hdlc_control_t control_send, control_recv;
|
||||
|
||||
// // Run through the supported sequence numbers (3-bit)
|
||||
// for (i = 0; i <= 7; i++) {
|
||||
// // Initialize the control field structure with frame type and sequence number
|
||||
// control_send.frame = HDLC_FRAME_ACK;
|
||||
// control_send.seq_no = i;
|
||||
//
|
||||
// // Create an empty frame with the control field information
|
||||
// ret = hdlc_frame_data(&control_send, NULL, 0, frame_data, &frame_length);
|
||||
//
|
||||
// // Get the data from the frame
|
||||
// ret = hdlc_get_data(&control_recv, frame_data, frame_length, recv_data,
|
||||
// &recv_length);
|
||||
//
|
||||
// // Result should be frame_length minus start flag to be discarded and no bytes received
|
||||
// if(ret != (int )frame_length - 1){
|
||||
// printf("err");
|
||||
// }
|
||||
// }
|
||||
// if (recv_length != 0){
|
||||
// printf("err2");
|
||||
// }
|
||||
//
|
||||
// if (control_send.frame != control_recv.frame){
|
||||
// printf("err3");
|
||||
// }
|
||||
//
|
||||
// if (control_send.seq_no != control_recv.seq_no){
|
||||
// printf("err4");
|
||||
// }
|
||||
|
||||
// test 2
|
||||
|
||||
// Run through the supported sequence numbers (3-bit)
|
||||
// for (i = 0; i <= 7; i++) {
|
||||
// // Initialize the control field structure with frame type and sequence number
|
||||
// control_send.frame = HDLC_FRAME_DATA;
|
||||
// control_send.seq_no = i;
|
||||
//
|
||||
// char* input = "311";
|
||||
// uint8_t data = (uint8_t)atoi(input);
|
||||
//
|
||||
// // Create an empty frame with the control field information
|
||||
// ret = hdlc_frame_data(&control_send, &data, 3, frame_data, &frame_length);
|
||||
// if (ret != 0){
|
||||
// printf("err123\n");
|
||||
// }
|
||||
//
|
||||
// // Get the data from the frame
|
||||
// ret = hdlc_get_data(&control_recv, frame_data, frame_length, recv_data,
|
||||
// &recv_length);
|
||||
//
|
||||
// // Result should be frame_length minus start flag to be discarded and no bytes received
|
||||
// if(ret != (int )frame_length - 1){
|
||||
// printf("err333\n");
|
||||
// }
|
||||
// if (recv_length != 0){
|
||||
// printf("err2\n");
|
||||
// }
|
||||
//
|
||||
// // Verify the control field information
|
||||
// if (control_send.frame != control_recv.frame){
|
||||
// printf("err3\n");
|
||||
// }
|
||||
//
|
||||
// if (control_send.seq_no != control_recv.seq_no){
|
||||
// printf("err4\n");
|
||||
// }
|
||||
// }
|
||||
|
||||
// int ret;
|
||||
// hdlc_control_t control;
|
||||
// uint8_t send_data[512], frame_data[530], recv_data[530];
|
||||
// size_t i, frame_length = 0, recv_length = 0, buf_length = 16;
|
||||
//
|
||||
// // Initialize data to be send with random values (up to 0x70 to keep below the values to be escaped)
|
||||
// for (i = 0; i < sizeof(send_data); i++) {
|
||||
// send_data[i] = (uint8_t) (rand() % 0x70);
|
||||
// }
|
||||
//
|
||||
// // Initialize control field structure and create frame
|
||||
// control.frame = HDLC_FRAME_DATA;
|
||||
// ret = hdlc_frame_data(&control, send_data, sizeof(send_data), frame_data,
|
||||
// &frame_length);
|
||||
//
|
||||
// // Check that frame length is maximum 2 bytes larger than data due to escape of FCS value
|
||||
// if(frame_length >= ((sizeof(send_data) + 6) + 2)){
|
||||
// printf("1");
|
||||
// }
|
||||
// if(ret != 0){
|
||||
// printf("2");
|
||||
// }
|
||||
//
|
||||
// // Run though the different buffers (simulating decode of buffers from UART)
|
||||
// for (i = 0; i <= sizeof(send_data); i += buf_length) {
|
||||
// // Decode the data
|
||||
// ret = hdlc_get_data(&control, &frame_data[i], buf_length, recv_data,
|
||||
// &recv_length);
|
||||
//
|
||||
// printf("%zu: %s\n", i, recv_data);
|
||||
//
|
||||
// if (i < sizeof(send_data)) {
|
||||
// // All chunks until the last should return no message and zero length
|
||||
// if (ret != -ENOMSG){
|
||||
// printf("3");
|
||||
// }
|
||||
// if (recv_length != 0){
|
||||
// printf("1231");
|
||||
// }
|
||||
// } else {
|
||||
// if (ret > 7){
|
||||
// printf("332");
|
||||
// }
|
||||
// if (recv_length != sizeof(send_data)){
|
||||
// printf("88888");
|
||||
// }
|
||||
// // The last chunk should return max 6 frame bytes - 1 start flag sequence byte + 2 byte for the possible
|
||||
// // escaped FCS = 7 bytes
|
||||
//// BOOST_CHECK(ret <= 7);
|
||||
//// BOOST_CHECK_EQUAL(recv_length, sizeof(send_data));
|
||||
// //printf("5");
|
||||
// }
|
||||
// }
|
||||
}
|
22
hdlc_screen.atsln
Normal file
22
hdlc_screen.atsln
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "hdlc_screen", "hdlc_screen\hdlc_screen.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
14
hdlc_screen/.gitignore
vendored
Normal file
14
hdlc_screen/.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
hdlc1.c
|
||||
hdlc1.h
|
||||
hdlc_frame.c
|
||||
hdlc_frame.h
|
||||
main1.c
|
||||
uart.c
|
||||
uart.h
|
||||
|
||||
!./hdlc
|
||||
/.idea/Display_Avr_3.iml
|
||||
/.idea/.gitignore
|
||||
/.idea/vcs.xml
|
||||
/.idea/modules.xml
|
||||
/CMakeLists.txt
|
81
hdlc_screen/Debug/LCD/Lcd_print.d
Normal file
81
hdlc_screen/Debug/LCD/Lcd_print.d
Normal file
@ -0,0 +1,81 @@
|
||||
LCD/Lcd_print.d LCD/Lcd_print.o: ../LCD/Lcd_print.c ../LCD/lcd_headers.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
|
||||
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h ../LCD/lcd.h
|
||||
|
||||
../LCD/lcd_headers.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
||||
|
||||
../LCD/lcdpcf8574.h:
|
||||
|
||||
../LCD/pcf8574.h:
|
||||
|
||||
../LCD/i2cmaster.h:
|
||||
|
||||
../LCD/lcd.h:
|
BIN
hdlc_screen/Debug/LCD/Lcd_print.o
Normal file
BIN
hdlc_screen/Debug/LCD/Lcd_print.o
Normal file
Binary file not shown.
80
hdlc_screen/Debug/LCD/lcdpcf8574.d
Normal file
80
hdlc_screen/Debug/LCD/lcdpcf8574.d
Normal file
@ -0,0 +1,80 @@
|
||||
LCD/lcdpcf8574.d LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c \
|
||||
../LCD/lcd_headers.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
|
||||
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
|
||||
|
||||
../LCD/lcd_headers.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
||||
|
||||
../LCD/lcdpcf8574.h:
|
||||
|
||||
../LCD/pcf8574.h:
|
||||
|
||||
../LCD/i2cmaster.h:
|
BIN
hdlc_screen/Debug/LCD/lcdpcf8574.o
Normal file
BIN
hdlc_screen/Debug/LCD/lcdpcf8574.o
Normal file
Binary file not shown.
79
hdlc_screen/Debug/LCD/pcf8574.d
Normal file
79
hdlc_screen/Debug/LCD/pcf8574.d
Normal file
@ -0,0 +1,79 @@
|
||||
LCD/pcf8574.d LCD/pcf8574.o: ../LCD/pcf8574.c ../LCD/lcd_headers.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
|
||||
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
|
||||
|
||||
../LCD/lcd_headers.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
||||
|
||||
../LCD/lcdpcf8574.h:
|
||||
|
||||
../LCD/pcf8574.h:
|
||||
|
||||
../LCD/i2cmaster.h:
|
BIN
hdlc_screen/Debug/LCD/pcf8574.o
Normal file
BIN
hdlc_screen/Debug/LCD/pcf8574.o
Normal file
Binary file not shown.
79
hdlc_screen/Debug/LCD/twimaster.d
Normal file
79
hdlc_screen/Debug/LCD/twimaster.d
Normal file
@ -0,0 +1,79 @@
|
||||
LCD/twimaster.d LCD/twimaster.o: ../LCD/twimaster.c ../LCD/lcd_headers.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
|
||||
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
|
||||
|
||||
../LCD/lcd_headers.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
||||
|
||||
../LCD/lcdpcf8574.h:
|
||||
|
||||
../LCD/pcf8574.h:
|
||||
|
||||
../LCD/i2cmaster.h:
|
BIN
hdlc_screen/Debug/LCD/twimaster.o
Normal file
BIN
hdlc_screen/Debug/LCD/twimaster.o
Normal file
Binary file not shown.
251
hdlc_screen/Debug/Makefile
Normal file
251
hdlc_screen/Debug/Makefile
Normal file
@ -0,0 +1,251 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit!
|
||||
################################################################################
|
||||
|
||||
SHELL := cmd.exe
|
||||
RM := rm -rf
|
||||
|
||||
USER_OBJS :=
|
||||
|
||||
LIBS :=
|
||||
PROJ :=
|
||||
|
||||
O_SRCS :=
|
||||
C_SRCS :=
|
||||
S_SRCS :=
|
||||
S_UPPER_SRCS :=
|
||||
OBJ_SRCS :=
|
||||
ASM_SRCS :=
|
||||
PREPROCESSING_SRCS :=
|
||||
OBJS :=
|
||||
OBJS_AS_ARGS :=
|
||||
C_DEPS :=
|
||||
C_DEPS_AS_ARGS :=
|
||||
EXECUTABLES :=
|
||||
OUTPUT_FILE_PATH :=
|
||||
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||
QUOTE := "
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
OUTPUT_FILE_DEP:=
|
||||
LIB_DEP:=
|
||||
LINKER_SCRIPT_DEP:=
|
||||
|
||||
# Every subdirectory with source files must be described here
|
||||
SUBDIRS := \
|
||||
../hdlc \
|
||||
../LCD \
|
||||
../UART \
|
||||
../protocol
|
||||
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../hdlc/client.c \
|
||||
../hdlc/fcs.c \
|
||||
../hdlc/hdlc.c \
|
||||
../LCD/lcdpcf8574.c \
|
||||
../LCD/Lcd_print.c \
|
||||
../LCD/pcf8574.c \
|
||||
../LCD/twimaster.c \
|
||||
../main.c \
|
||||
../protocol/protocol.c \
|
||||
../UART/circular_buf.c \
|
||||
../UART/uart.c
|
||||
|
||||
|
||||
PREPROCESSING_SRCS +=
|
||||
|
||||
|
||||
ASM_SRCS +=
|
||||
|
||||
|
||||
OBJS += \
|
||||
hdlc/client.o \
|
||||
hdlc/fcs.o \
|
||||
hdlc/hdlc.o \
|
||||
LCD/lcdpcf8574.o \
|
||||
LCD/Lcd_print.o \
|
||||
LCD/pcf8574.o \
|
||||
LCD/twimaster.o \
|
||||
main.o \
|
||||
protocol/protocol.o \
|
||||
UART/circular_buf.o \
|
||||
UART/uart.o
|
||||
|
||||
OBJS_AS_ARGS += \
|
||||
hdlc/client.o \
|
||||
hdlc/fcs.o \
|
||||
hdlc/hdlc.o \
|
||||
LCD/lcdpcf8574.o \
|
||||
LCD/Lcd_print.o \
|
||||
LCD/pcf8574.o \
|
||||
LCD/twimaster.o \
|
||||
main.o \
|
||||
protocol/protocol.o \
|
||||
UART/circular_buf.o \
|
||||
UART/uart.o
|
||||
|
||||
C_DEPS += \
|
||||
hdlc/client.d \
|
||||
hdlc/fcs.d \
|
||||
hdlc/hdlc.d \
|
||||
LCD/lcdpcf8574.d \
|
||||
LCD/Lcd_print.d \
|
||||
LCD/pcf8574.d \
|
||||
LCD/twimaster.d \
|
||||
main.d \
|
||||
protocol/protocol.d \
|
||||
UART/circular_buf.d \
|
||||
UART/uart.d
|
||||
|
||||
C_DEPS_AS_ARGS += \
|
||||
hdlc/client.d \
|
||||
hdlc/fcs.d \
|
||||
hdlc/hdlc.d \
|
||||
LCD/lcdpcf8574.d \
|
||||
LCD/Lcd_print.d \
|
||||
LCD/pcf8574.d \
|
||||
LCD/twimaster.d \
|
||||
main.d \
|
||||
protocol/protocol.d \
|
||||
UART/circular_buf.d \
|
||||
UART/uart.d
|
||||
|
||||
OUTPUT_FILE_PATH +=hdlc_screen.elf
|
||||
|
||||
OUTPUT_FILE_PATH_AS_ARGS +=hdlc_screen.elf
|
||||
|
||||
ADDITIONAL_DEPENDENCIES:=
|
||||
|
||||
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||
|
||||
LIB_DEP+=
|
||||
|
||||
LINKER_SCRIPT_DEP+=
|
||||
|
||||
|
||||
# AVR32/GNU C Compiler
|
||||
hdlc/client.o: ../hdlc/client.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
hdlc/fcs.o: ../hdlc/fcs.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
hdlc/hdlc.o: ../hdlc/hdlc.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
LCD/Lcd_print.o: ../LCD/Lcd_print.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
LCD/pcf8574.o: ../LCD/pcf8574.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
LCD/twimaster.o: ../LCD/twimaster.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
./main.o: .././main.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
protocol/protocol.o: ../protocol/protocol.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
UART/circular_buf.o: ../UART/circular_buf.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
UART/uart.o: ../UART/uart.c
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR/GNU C Compiler : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||
@echo Finished building: $<
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Preprocessing Assembler
|
||||
|
||||
|
||||
|
||||
# AVR32/GNU Assembler
|
||||
|
||||
|
||||
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(strip $(C_DEPS)),)
|
||||
-include $(C_DEPS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
|
||||
# All Target
|
||||
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||
|
||||
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
|
||||
@echo Building target: $@
|
||||
@echo Invoking: AVR/GNU Linker : 5.4.0
|
||||
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="hdlc_screen.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"
|
||||
@echo Finished building target: $@
|
||||
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.hex"
|
||||
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "hdlc_screen.elf" "hdlc_screen.eep" || exit 0
|
||||
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "hdlc_screen.elf" > "hdlc_screen.lss"
|
||||
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.srec"
|
||||
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "hdlc_screen.elf"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Other Targets
|
||||
clean:
|
||||
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||
-$(RM) $(C_DEPS_AS_ARGS)
|
||||
rm -rf "hdlc_screen.elf" "hdlc_screen.a" "hdlc_screen.hex" "hdlc_screen.lss" "hdlc_screen.eep" "hdlc_screen.map" "hdlc_screen.srec" "hdlc_screen.usersignatures"
|
||||
|
25
hdlc_screen/Debug/UART/circular_buf.d
Normal file
25
hdlc_screen/Debug/UART/circular_buf.d
Normal file
@ -0,0 +1,25 @@
|
||||
UART/circular_buf.d UART/circular_buf.o: ../UART/circular_buf.c \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
../UART/circular_buf.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
../UART/circular_buf.h:
|
BIN
hdlc_screen/Debug/UART/circular_buf.o
Normal file
BIN
hdlc_screen/Debug/UART/circular_buf.o
Normal file
Binary file not shown.
48
hdlc_screen/Debug/UART/uart.d
Normal file
48
hdlc_screen/Debug/UART/uart.d
Normal file
@ -0,0 +1,48 @@
|
||||
UART/uart.d UART/uart.o: ../UART/uart.c \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
../UART/circular_buf.h ../UART/uart.h
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
../UART/circular_buf.h:
|
||||
|
||||
../UART/uart.h:
|
BIN
hdlc_screen/Debug/UART/uart.o
Normal file
BIN
hdlc_screen/Debug/UART/uart.o
Normal file
Binary file not shown.
32
hdlc_screen/Debug/hdlc/client.d
Normal file
32
hdlc_screen/Debug/hdlc/client.d
Normal file
@ -0,0 +1,32 @@
|
||||
hdlc/client.d hdlc/client.o: ../hdlc/client.c ../hdlc/client.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
|
||||
../hdlc/hdlc.h ../hdlc/fcs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
|
||||
|
||||
../hdlc/client.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h:
|
||||
|
||||
../hdlc/hdlc.h:
|
||||
|
||||
../hdlc/fcs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
BIN
hdlc_screen/Debug/hdlc/client.o
Normal file
BIN
hdlc_screen/Debug/hdlc/client.o
Normal file
Binary file not shown.
3
hdlc_screen/Debug/hdlc/fcs.d
Normal file
3
hdlc_screen/Debug/hdlc/fcs.d
Normal file
@ -0,0 +1,3 @@
|
||||
hdlc/fcs.d hdlc/fcs.o: ../hdlc/fcs.c ../hdlc/fcs.h
|
||||
|
||||
../hdlc/fcs.h:
|
BIN
hdlc_screen/Debug/hdlc/fcs.o
Normal file
BIN
hdlc_screen/Debug/hdlc/fcs.o
Normal file
Binary file not shown.
17
hdlc_screen/Debug/hdlc/hdlc.d
Normal file
17
hdlc_screen/Debug/hdlc/hdlc.d
Normal file
@ -0,0 +1,17 @@
|
||||
hdlc/hdlc.d hdlc/hdlc.o: ../hdlc/hdlc.c ../hdlc/hdlc.h ../hdlc/fcs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h
|
||||
|
||||
../hdlc/hdlc.h:
|
||||
|
||||
../hdlc/fcs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
BIN
hdlc_screen/Debug/hdlc/hdlc.o
Normal file
BIN
hdlc_screen/Debug/hdlc/hdlc.o
Normal file
Binary file not shown.
1
hdlc_screen/Debug/hdlc_screen.eep
Normal file
1
hdlc_screen/Debug/hdlc_screen.eep
Normal file
@ -0,0 +1 @@
|
||||
:00000001FF
|
BIN
hdlc_screen/Debug/hdlc_screen.elf
Normal file
BIN
hdlc_screen/Debug/hdlc_screen.elf
Normal file
Binary file not shown.
508
hdlc_screen/Debug/hdlc_screen.hex
Normal file
508
hdlc_screen/Debug/hdlc_screen.hex
Normal file
@ -0,0 +1,508 @@
|
||||
:100000000C9434000C9451000C9451000C94510049
|
||||
:100010000C9451000C9451000C9451000C9451001C
|
||||
:100020000C9451000C9451000C9451000C9451000C
|
||||
:100030000C9451000C9451000C9451000C945100FC
|
||||
:100040000C9451000C9451000C94100B0C94510022
|
||||
:100050000C94420B0C9451000C9451000C945100E0
|
||||
:100060000C9451000C94510011241FBECFEFD8E026
|
||||
:10007000DEBFCDBF13E0A0E0B1E0E2E5FDE102C0EC
|
||||
:1000800005900D92A234B107D9F723E0A2E4B3E0C2
|
||||
:1000900001C01D92A639B207E1F70E9426070C9411
|
||||
:1000A000A70E0C940000FC0181E0808372836183C1
|
||||
:1000B000709344036093430384E1838314828FEF3E
|
||||
:1000C0009FEF9683858390878783928781871486A5
|
||||
:1000D0001386168615860895FC0183E08083808947
|
||||
:1000E000887F808B81E0878713820895FC0180815F
|
||||
:1000F000823089F485E080834134510578F4828927
|
||||
:10010000887F828B118A748B638B568B458B13820D
|
||||
:1001100080E090E008958CEF9FEF08958FEF9FEFC0
|
||||
:100120000895CF92DF92EF92FF920F931F93CF9398
|
||||
:10013000DF9300D0CDB7DEB77C016B015A834983D2
|
||||
:10014000FC0180818530D1F44589568963897489A1
|
||||
:100150008E010F5F1F4F9601C70141960E94480311
|
||||
:10016000992364F49F938F9380E091E09F938F9302
|
||||
:100170000E94990B0F900F900F900F90F7018081C4
|
||||
:100180008330D1F48E010F5F1F4F960140E050E0A5
|
||||
:1001900060E070E0C7010F960E944803992364F461
|
||||
:1001A0009F938F9380E091E09F938F930E94990B90
|
||||
:1001B0000F900F900F900F90F70180818430D1F451
|
||||
:1001C0008E010F5F1F4F960140E050E060E070E04D
|
||||
:1001D000C70147960E944803992364F49F938F9325
|
||||
:1001E00080E091E09F938F930E94990B0F900F9066
|
||||
:1001F0000F900F9080E090E00F900F90DF91CF91E3
|
||||
:100200001F910F91FF90EF90DF90CF9008952F9264
|
||||
:100210003F924F925F926F927F928F929F92AF9296
|
||||
:10022000BF92CF92DF92EF92FF920F931F93CF93E3
|
||||
:10023000DF9300D000D0CDB7DEB75C015C834B8389
|
||||
:10024000222E332E38018DB69EB6C42ED52E8DB7F4
|
||||
:100250009EB78C199D090FB6F8949EBF0FBE8DBF37
|
||||
:10026000EDB7FEB731962F01CE0103967C018F01C9
|
||||
:100270009601AB01BE016F5F7F4FC50104960E94DE
|
||||
:10028000220299230CF448C08A81877090E0F5011E
|
||||
:10029000238130E08217930751F084E08083808DC2
|
||||
:1002A000887F808F82E0878B8AEF9FEF35C08981BE
|
||||
:1002B000813049F018F08230D9F025C0F2E0CF1A31
|
||||
:1002C000D10829F40EC082E0F50180831CC0F20140
|
||||
:1002D000A22DB32D4C0C5D1C81918D93E415F50579
|
||||
:1002E000D9F7F301D182C08286E0F50180830BC08B
|
||||
:1002F00084E0F5018083808D887F808F82E0878B0A
|
||||
:100300008AEF9FEF09C08091430390914403F50168
|
||||
:100310009283818380E090E00FB6F8949EBE0FBE7A
|
||||
:100320008DBE0F900F900F900F90DF91CF911F9186
|
||||
:100330000F91FF90EF90DF90CF90BF90AF909F9084
|
||||
:100340008F907F906F905F904F903F902F90089587
|
||||
:10035000FC0121813281261B370B32832183121647
|
||||
:1003600013061CF480E090E008958BEF9FEF089552
|
||||
:10037000FC01E627FF27EE0FFF1FEA5EFE4F892FE5
|
||||
:10038000992720813181822793270895FA0193E8E4
|
||||
:10039000980F923070F420813181A9014F5F5F4F37
|
||||
:1003A00051834083DB01A20FB31F9DE79C9390E232
|
||||
:1003B000892720813181A9014F5F5F4F518340839D
|
||||
:1003C000FB01E20FF31F80830895982F80FF0BC07D
|
||||
:1003D00086958695837011F082E001C081E0929548
|
||||
:1003E0009695977003C09695977080E097700895E2
|
||||
:1003F000FC019081913049F018F0923061F011C009
|
||||
:1004000081818770880F8061089581818295880F2E
|
||||
:10041000807E8160089581818295880F807E8960C9
|
||||
:10042000089580E00895FC018FEF9FEF9283818310
|
||||
:100430009683858394838383128611861086178220
|
||||
:10044000108208953F924F925F926F927F928F92A7
|
||||
:100450009F92AF92BF92CF92DF92EF92FF920F9353
|
||||
:100460001F93CF93DF9300D000D0CDB7DEB70097B6
|
||||
:1004700009F4EAC06115710509F4E9C04115510597
|
||||
:1004800009F4E8C00115110509F4E7C0E114F1040D
|
||||
:1004900009F4E6C0380149017A8369839C838B8320
|
||||
:1004A0002115310509F499C08A01C12CD12C689419
|
||||
:1004B000442445F833243394590121E0A21AB108A9
|
||||
:1004C000AB81BC8113968D919C91149799239CF4D8
|
||||
:1004D000F80180818E3709F070C0CA14DB0420F463
|
||||
:1004E00081818E3709F470C0EB81FC818781908512
|
||||
:1004F0009483838362C0F80150802EE7521219C0A2
|
||||
:10050000CA14DB0420F421812E3709F45DC0AB81CD
|
||||
:10051000BC8117962D913C911897AC014F5F5F4FAE
|
||||
:100520004217530709F450C016963C932E93159723
|
||||
:100530005DC0BDE75B1204C0EB81FC8130823DC031
|
||||
:10054000AB81BC818C91882319F01C92508054247B
|
||||
:10055000652DEB81FC81818192810E94B801AB8184
|
||||
:10056000BC8112969C938E93119717962D913C9176
|
||||
:10057000189713968D919C91149702962817390716
|
||||
:1005800041F4852D0E94E501E981FA819183808300
|
||||
:1005900014C0821793078CF4AB81BC8119968D919E
|
||||
:1005A0009C911A979C012F5F3F4F1A963C932E9374
|
||||
:1005B0001997F301E80FF91F5082EB81FC818781C5
|
||||
:1005C0009085019690878783FFEFCF1ADF0A0F5F30
|
||||
:1005D0001F4F8C149D0409F073CFAB81BC8113961F
|
||||
:1005E0008D919C91149799233CF06401EB81FC81DF
|
||||
:1005F00025813681332334F4D7011D921C928EE07D
|
||||
:1006000092ED30C00496281739073CF0EB81FC814D
|
||||
:1006100081819281883B904F31F0D701CD92DC925D
|
||||
:100620000EE012ED0AC0EB81FC8181859285029774
|
||||
:10063000D7018D939C930C2D1D2D8B819C810E9445
|
||||
:100640001302802F912F0EC08EE092ED0BC08EE032
|
||||
:1006500092ED08C08EE092ED05C08EE092ED02C0F2
|
||||
:100660008EE092ED0F900F900F900F90DF91CF9151
|
||||
:100670001F910F91FF90EF90DF90CF90BF90AF90C0
|
||||
:100680009F908F907F906F905F904F903F900895D4
|
||||
:100690005F926F927F928F929F92AF92BF92CF9212
|
||||
:1006A000DF92EF92FF920F931F93CF93DF9300D0CF
|
||||
:1006B000CDB7DEB7009709F473C06115710521F459
|
||||
:1006C0004115510509F06FC02115310509F46EC0BF
|
||||
:1006D0000115110509F46DC0380179015A014B016A
|
||||
:1006E0008C0181E090E09A8389838EE7F901808311
|
||||
:1006F0006FEF8FEF9FEF0E94B8016C01AE014F5F6B
|
||||
:100700005F4FB7018FEF0E94C601C8010E94F80138
|
||||
:10071000582E682FC6010E94B8016C01AE014F5FD0
|
||||
:100720005F4FB701852D0E94C601F80180818111BC
|
||||
:1007300019C0A114B104B1F084018A0C9B1C5801AA
|
||||
:10074000F80161918F01C6010E94B8016C01AE01F0
|
||||
:100750004F5F5F4FB701F50180810E94C60180168F
|
||||
:10076000910669F7C094D094AE014F5F5F4FB70117
|
||||
:100770008C2D0E94C601AE014F5F5F4FB7018D2DDA
|
||||
:100780000E94C60189819A81F701E80FF91F2EE7BF
|
||||
:1007900020830196F3019183808380E090E00BC079
|
||||
:1007A0008EE092ED08C08EE092ED05C08EE092EDF5
|
||||
:1007B00002C08EE092ED0F900F90DF91CF911F91CC
|
||||
:1007C0000F91FF90EF90DF90CF90BF90AF909F90F0
|
||||
:1007D0008F907F906F905F900895CF93882331F032
|
||||
:1007E0008091420381608093420305C0809142035F
|
||||
:1007F0008E7F809342038091420382608093420304
|
||||
:100800006091420380E00E94950662E080E00E94D1
|
||||
:10081000D60600C064E080E00E948106C82F62E036
|
||||
:1008200080E00E94DA0600C062E080E00E94D60606
|
||||
:1008300000C064E080E00E948106C295C07F8F7096
|
||||
:10084000C82B62E080E00E94DA068C2FCF910895D9
|
||||
:1008500080E00E94ED038823DCF300C080E00E946A
|
||||
:10086000ED03089562E080E00E94D60600C062E0D9
|
||||
:1008700080E00E94DA060895CF93C82F662331F0F6
|
||||
:100880008091420381608093420305C080914203BE
|
||||
:100890008E7F80934203809142038D7F8093420339
|
||||
:1008A0006091420380E00E949506809142038F7719
|
||||
:1008B00080934203809142038F7B80934203809117
|
||||
:1008C00042038F7D80934203809142038F7E809309
|
||||
:1008D0004203CC232CF4809142038068809342032E
|
||||
:1008E000C6FF05C080914203806480934203C5FF28
|
||||
:1008F00005C080914203806280934203C4FF05C01B
|
||||
:10090000809142038061809342036091420380E0C2
|
||||
:100910000E9495060E943204809142038F77809353
|
||||
:100920004203809142038F7B809342038091420374
|
||||
:100930008F7D80934203809142038F7E8093420398
|
||||
:10094000C3FF05C080914203806880934203C2FFC9
|
||||
:1009500005C080914203806480934203C1FF05C0BB
|
||||
:1009600080914203806280934203C0FF05C0809162
|
||||
:1009700042038061809342036091420380E00E94C1
|
||||
:1009800095060E9432048091420380618093420365
|
||||
:10099000809142038062809342038091420380648D
|
||||
:1009A0008093420380914203806880934203609168
|
||||
:1009B000420380E00E949506CF910895CF93C82FFF
|
||||
:1009C0000E94280460E08C2F0E943C04CF9108957F
|
||||
:1009D000611104C080580E94DE04089580540E9472
|
||||
:1009E000DE04089581E00E94DE040895882331F03A
|
||||
:1009F00080914203877F8093420305C08091420328
|
||||
:100A00008860809342036091420380E00E949506D3
|
||||
:100A1000089582E00E94DE040895CF93C82F0E94BB
|
||||
:100A20002804CA3049F4803410F080E001C080E42A
|
||||
:100A300080580E94DE0413C0803129F460E080EC0D
|
||||
:100A40000E943C0406C0803521F460E080E80E94EA
|
||||
:100A50003C040E94280461E08C2F0E943C04CF914A
|
||||
:100A60000895CF93DF93EC012196FC0180818823C8
|
||||
:100A700029F00E940D0589918111FBCFDF91CF9163
|
||||
:100A800008951F93CF93DF93182F0E94780610923A
|
||||
:100A900042036091420380E00E94950680EA9FE055
|
||||
:100AA0000197F1F780914203806280934203809125
|
||||
:100AB00042038061809342036091420380E00E9480
|
||||
:100AC00095060E94320480EE94E00197F1F70E94AF
|
||||
:100AD0003204C0E1D0E0CE010197F1F70E94320468
|
||||
:100AE000CE010197F1F7809142038F7E80934203FC
|
||||
:100AF0006091420380E00E9495060E943204219793
|
||||
:100B0000F1F788E20E94DE0488E00E94DE040E9481
|
||||
:100B1000F20486E00E94DE04812F0E94DE04DF9151
|
||||
:100B2000CF911F9108958DE00E9441050E94090513
|
||||
:100B300080E00E94F6040895CF92DF92EF92FF9238
|
||||
:100B40000F931F93CF93DF938C017B01C901F801B1
|
||||
:100B500001900020E9F73197BF01601B710B0E94E3
|
||||
:100B6000760B670120E1C20ED11CE7019C012E1912
|
||||
:100B70003F09F80101900020E9F73197BF01601BA0
|
||||
:100B8000710BC9018C0F9D1F0E94760BF801E80FB5
|
||||
:100B9000F91F80818993CC15DD0559F7F701108A7B
|
||||
:100BA000DF91CF911F910F91FF90EF90DF90CF9049
|
||||
:100BB0000895AF92BF92CF92DF92EF92FF920F9380
|
||||
:100BC0001F931F930F93FF92EF925F934F933F9367
|
||||
:100BD0002F939F938F937F936F9386E193E09F93DF
|
||||
:100BE0008F93BF92AF92DF92CF920E94AF0B8DB7DF
|
||||
:100BF0009EB742960FB6F8949EBF0FBE8DBF1F9151
|
||||
:100C00000F91FF90EF90DF90CF90BF90AF9008953D
|
||||
:100C10006F927F92AF92BF92CF92DF92EF92FF924C
|
||||
:100C20000F931F93CF93DF93CDB7DEB7C254D10993
|
||||
:100C30000FB6F894DEBF0FBECDBF3C012091490333
|
||||
:100C400030914A0341E150E0BE016F5F7F4F0E9447
|
||||
:100C50009C05F301E85BFF4FE080F1800281138186
|
||||
:100C60003497208131814281538134976081718131
|
||||
:100C7000828193810F2EF1E1AF2EB12CF02DFE0178
|
||||
:100C800072966F010E94D90540E150E0BE016F5F8E
|
||||
:100C90007F4FCE0183960E948A0B40E150E0B6015F
|
||||
:100CA000CE01C3960E948A0B60E080E00E94E804B7
|
||||
:100CB000CE0183960E94310561E080E00E94E80445
|
||||
:100CC000CE01C3960E943105CE5BDF4F0FB6F8947C
|
||||
:100CD000DEBF0FBECDBFDF91CF911F910F91FF906F
|
||||
:100CE000EF90DF90CF90BF90AF907F906F9008957E
|
||||
:100CF0000E94DE0683E08A95F1F7000010924B0314
|
||||
:100D0000089581110EC0683070F480914B03082E55
|
||||
:100D1000000C990B02C0959587956A95E2F7817052
|
||||
:100D200008958FEF08958FEF0895CF9381110DC02F
|
||||
:100D3000C62F60934B038EE40E94E4068C2F0E9422
|
||||
:100D400014070E940B0780E001C08FEFCF91089538
|
||||
:100D5000CF93DF93811124C0683020F580914B033D
|
||||
:100D6000442349F0C1E0D0E002C0CC0FDD1F6A95FA
|
||||
:100D7000E2F7C82B09C0C1E0D0E002C0CC0FDD1FF4
|
||||
:100D80006A95E2F7C095C823C0934B038EE40E9496
|
||||
:100D9000E4068C2F0E9414070E940B0780E003C01A
|
||||
:100DA0008FEF01C08FEFDF91CF91089541E00E9456
|
||||
:100DB000A806089540E00E94A80608951092B90080
|
||||
:100DC0008DEF8093B800089594EA9093BC00ECEB0B
|
||||
:100DD000F0E090819923ECF79091B900987F9830DA
|
||||
:100DE00011F09031A1F48093BB0084E88093BC00A3
|
||||
:100DF000ECEBF0E080818823ECF79091B900987FCC
|
||||
:100E0000983139F081E0903429F480E0089581E050
|
||||
:100E1000089580E0089584E98093BC00ECEBF0E055
|
||||
:100E2000808184FDFDCF08958093BB0084E880938A
|
||||
:100E3000BC00ECEBF0E080818823ECF79091B900E6
|
||||
:100E4000987F81E0983209F480E008954F925F9294
|
||||
:100E50006F927F928F929F92AF92BF92CF92DF92CA
|
||||
:100E6000EF92FF920F931F93CF93DF93CDB7DEB72F
|
||||
:100E7000C350D2400FB6F894DEBF0FBECDBF0E9464
|
||||
:100E800093050E949E0A68EC70E0CE0101960E94D4
|
||||
:100E90005300CE0101960E946C004AE050E0BE0172
|
||||
:100EA000665E7F4FCE0101960E9491006AE070E07D
|
||||
:100EB000CE014A960E94AA0A64E170E0CE018051F8
|
||||
:100EC0009E4F0E94CE0A61E070E0CE0101960E9422
|
||||
:100ED000A801059681F44AE050E0BE01665E7F4FAE
|
||||
:100EE000CE0101960E9491006AE070E0CE014A9620
|
||||
:100EF0000E94AA0AE1CF00E010E020E030E044E1E7
|
||||
:100F000050E0BE0160517E4FCE0101960E94070164
|
||||
:100F10008C019923ACF40A3F8FEF1807B1F444E138
|
||||
:100F200050E0BE01605A7E4FCE0101960E949100B2
|
||||
:100F300064E170E0CE01805A9E4F0E94AA0A05C06B
|
||||
:100F40008981823009F0B8CF03C0802F912FFEC075
|
||||
:100F500084EA90E7ADE9BFE38CA39DA3AEA3BFA352
|
||||
:100F60008DEC9CECA0EBB1E488A799A7AAA7BBA73E
|
||||
:100F700080E090E0A8ECB2E48CA79DA7AEA7BFA745
|
||||
:100F800083E090E099AB88AB85E293E09BAB8AABC2
|
||||
:100F900082E090E09DAB8CAB2E01E6E74E0E511C3B
|
||||
:100FA0005F924F923E01F6E36F0E711C7F926F923B
|
||||
:100FB0008CA09DA0AEA0BFA0C8A4D9A4EAA4FBA405
|
||||
:100FC0000CA51DA52EA53FA548A959A96AA97BA9CD
|
||||
:100FD0008CA99DA90E945C09F20140815181B30155
|
||||
:100FE000CE0101960E94760048E450E0BE016858A8
|
||||
:100FF0007F4FCE0101960E94910068E470E0CE011F
|
||||
:1010000088589F4F0E94AA0A0F900F900F900F9040
|
||||
:1010100060E970E0CE01805A9E4F0E94CE0A61E0E6
|
||||
:1010200070E0CE0101960E94A801059689F448E47B
|
||||
:1010300050E0BE0168587F4FCE0101960E9491009A
|
||||
:1010400068E470E0CE0188589F4F0E94AA0AE0CF62
|
||||
:101050008E0113959E0120543F4F40E950E0BE01A0
|
||||
:10106000605A7E4FCE0101960E9407018C019923A0
|
||||
:101070009CF40696B1F444E150E0BE0160517E4F0D
|
||||
:10108000CE0101960E94910064E170E0CE01805192
|
||||
:101090009E4F0E94AA0A05C08981863009F0B8CF08
|
||||
:1010A00003C0802F912F52C0C050DF4F68817981DB
|
||||
:1010B000C050D140AE014E5F5E4FCE0180549F4F75
|
||||
:1010C0000E94BE08CE5FDE4F88819981AA81BB81D4
|
||||
:1010D000C250D140CC5ADE4F88839983AA83BB8308
|
||||
:1010E000C455D140CA5FDE4F88819981AA81BB81F6
|
||||
:1010F000C650D140C85ADE4F88839983AA83BB83E8
|
||||
:10110000C855D140C65FDE4F88819981AA81BB81D5
|
||||
:10111000CA50D140C45ADE4F88839983AA83BB83C7
|
||||
:10112000CC55D140C05FDE4F68817981C051D1403C
|
||||
:101130004FE350E0CE018C5E9E4F0E948A0BCE01A1
|
||||
:101140008C5E9E4F0E94080680E090E0CD5FDD4FF0
|
||||
:101150000FB6F894DEBF0FBECDBFDF91CF911F91C8
|
||||
:101160000F91FF90EF90DF90CF90BF90AF909F9046
|
||||
:101170008F907F906F905F904F9008958F929F9285
|
||||
:10118000AF92BF92CF92DF92EF92FF920F931F9395
|
||||
:10119000CF93DF93CDB7DEB7C054D1090FB6F89423
|
||||
:1011A000DEBF0FBECDBF4B01672B09F46CC020E042
|
||||
:1011B00030E060E070E0A12CB12C6E01E5E0CE0ED5
|
||||
:1011C000D11CFE0131967F01FC01E20FF31F20814B
|
||||
:1011D000211127C0DB011196A80FB91FFE0131961E
|
||||
:1011E0002D912193EC15FD05D9F76C5F7F4FF5012B
|
||||
:1011F000EE0FFF1FEE0FFF1FE40FF51F09811A818D
|
||||
:101200002B813C810083118322833383FA0124855F
|
||||
:1012100035852F5F3F4F3587248795012F5F3F4FDF
|
||||
:101220005901FC01E60FF71F2081213021F59B01B8
|
||||
:101230002F5F3F4FFC01E20FF31FE081EE2399F097
|
||||
:101240006E5F7F4FDC01A60FB71FF701B9016F5F1B
|
||||
:101250007F4F2D91219330E08F010E191F09021746
|
||||
:101260001307ACF301C0B90129813A81FA0137872C
|
||||
:101270002687118A108A6F5F7F4F9B016815790559
|
||||
:1012800008F4A2CF02C0A12CB12CFA01B586A48625
|
||||
:10129000C05CDF4F0FB6F894DEBF0FBECDBFDF914D
|
||||
:1012A000CF911F910F91FF90EF90DF90CF90BF9063
|
||||
:1012B000AF909F908F9008954F925F926F927F9220
|
||||
:1012C0008F929F92AF92BF92CF92DF92EF92FF9256
|
||||
:1012D0000F931F93CF93DF93CDB7DEB7C255D109DC
|
||||
:1012E0000FB6F894DEBF0FBECDBF22968FAE229709
|
||||
:1012F00023969FAE23972496AFAE24972596BFAE34
|
||||
:1013000025972696CFAE26972796DFAE2797289665
|
||||
:10131000EFAE28972996FFAE29972A960FAF2A9706
|
||||
:101320002B961FAF2B972C962FAF2C972D963FAF58
|
||||
:101330002D972E964FAF2E972F965FAF2F976096D3
|
||||
:101340006FAF609761967FAF619762968FAF62973C
|
||||
:1013500063969FAF6397A7960EAD1FADA7972F9685
|
||||
:10136000CEACDFAC2F9763966EAD7FAD6397C114A3
|
||||
:10137000D10409F466C07801CE018F5B9F4F5601FE
|
||||
:10138000AA0CBB1CAA0CBB1CA80EB91EAE014B5F5D
|
||||
:101390005F4FF7011192DC014D905D906D907D9053
|
||||
:1013A000CD0149825A826B827C82DE0111963D9189
|
||||
:1013B0003193A417B507D9F7B5E0EB0EF11C8A15E8
|
||||
:1013C0009B0539F79601220F331F220F331F2C0D77
|
||||
:1013D0003D1D6115710509F1D801A20FB31F81E010
|
||||
:1013E0008C93D9011196A00FB11F2E5F3F4F6C93C4
|
||||
:1013F00061968EAD9FAD61979A838983DE011196C8
|
||||
:10140000F801E20FF31F80E090E02F5F3F4F4D9116
|
||||
:101410004193019686179707C0F3A996EEADFFADED
|
||||
:10142000A9973183208313C081E0F8018083618311
|
||||
:1014300061968EAD9FAD61979A83898322E030E0FB
|
||||
:10144000DDCF6115710581F720E030E0E6CFCE5A9F
|
||||
:10145000DF4F0FB6F894DEBF0FBECDBFDF91CF9147
|
||||
:101460001F910F91FF90EF90DF90CF90BF90AF90C2
|
||||
:101470009F908F907F906F905F904F900895FC01A8
|
||||
:1014800081E090E030A121A1321711F080E090E0DE
|
||||
:101490000895FC0121A130E02F5F3F4F2F7130787C
|
||||
:1014A000332334F421503109206E3F6F2F5F3F4FBB
|
||||
:1014B000FC0140A150E081E090E02417350711F0D5
|
||||
:1014C00080E090E008951F93CF93DF93EC01162FF7
|
||||
:1014D0000E94490A892B81F489A190E0FE01E80F5E
|
||||
:1014E000F91F108301968F719078992324F4019746
|
||||
:1014F000806E9F6F019689A3DF91CF911F91089510
|
||||
:10150000FC0120A181A12817B1F030E0DF01A20F7A
|
||||
:10151000B31F4C9150E02F5F3F4F2F713078332332
|
||||
:1015200034F421503109206E3F6F2F5F3F4F20A3CD
|
||||
:10153000842F952F08958FEF9FEF089588EF809364
|
||||
:10154000C10086E08093C2001092C50087E68093B8
|
||||
:10155000C40008950F931F93CF93DF936115710516
|
||||
:1015600099F08C01EC01060F171F8EE693E00E94A4
|
||||
:10157000490A892B49F4699170E08EE693E00E9454
|
||||
:10158000630AC017D10789F7E1ECF0E0808180643D
|
||||
:101590008083DF91CF911F910F9108958F929F9239
|
||||
:1015A000AF92BF92CF92DF92EF92FF920F931F9371
|
||||
:1015B000CF93DF938B01EC01C12CD12C76014B0131
|
||||
:1015C000A12CB12C0AC08CE493E00E94800A89937C
|
||||
:1015D0008FEFC81AD80AE80AF80A8CE493E00E9450
|
||||
:1015E0003F0A892B29F4C814D904EA04FB0458F3F0
|
||||
:1015F00020E030E00C151D052E053F0510F0C6015A
|
||||
:1016000002C08FEF9FEFDF91CF911F910F91FF905D
|
||||
:10161000EF90DF90CF90BF90AF909F908F90089504
|
||||
:101620001F920F920FB60F9211242F933F934F9357
|
||||
:101630005F936F937F938F939F93AF93BF93CF935A
|
||||
:10164000EF93FF93C091C6008CE493E00E94490A97
|
||||
:10165000892B31F46C2F70E08CE493E00E94630AD4
|
||||
:10166000FF91EF91CF91BF91AF919F918F917F911A
|
||||
:101670006F915F914F913F912F910F900FBE0F90FF
|
||||
:101680001F9018951F920F920FB60F9211242F934F
|
||||
:101690003F934F935F936F937F938F939F93AF93FA
|
||||
:1016A000BF93EF93FF938EE693E00E943F0A892B4E
|
||||
:1016B00039F48EE693E00E94800A8093C60005C04C
|
||||
:1016C000E1ECF0E080818F7B8083FF91EF91BF910F
|
||||
:1016D000AF919F918F917F916F915F914F913F91CA
|
||||
:1016E0002F910F900FBE0F901F901895AA1BBB1B38
|
||||
:1016F00051E107C0AA1FBB1FA617B70710F0A61B12
|
||||
:10170000B70B881F991F5A95A9F780959095BC0132
|
||||
:10171000CD010895FB01DC014150504048F001909B
|
||||
:101720000D920020C9F701C01D9241505040E0F7D2
|
||||
:101730000895A0E0B0E0EFE9FBE00C94800EAE016C
|
||||
:101740004B5F5F4FFA0161917191AF0180919203FC
|
||||
:10175000909193030E94DF0BE2E00C949C0EAEE0AC
|
||||
:10176000B0E0E5EBFBE00C947E0E0D891E898F89BD
|
||||
:10177000988D26E02C831A83098397FF02C080E0AE
|
||||
:1017800090E801979E838D83AE01455E5F4F698D22
|
||||
:101790007A8DCE0101960E94DF0B4D815E8157FD4F
|
||||
:1017A0000AC02F813885421753070CF49A01F801BB
|
||||
:1017B000E20FF31F10822E96E4E00C949A0EABE039
|
||||
:1017C000B0E0E5EEFBE00C94700E6C017B018A0149
|
||||
:1017D000FC0117821682838181FFCCC1CE01019664
|
||||
:1017E0003C01F6019381F70193FD859193FF81916F
|
||||
:1017F0007F01882309F4BAC1853239F493FD8591BC
|
||||
:1018000093FF81917F01853229F4B60190E00E9417
|
||||
:10181000D60DE7CF912C212C312CFFE1F315D8F018
|
||||
:101820008B3279F038F4803279F08332A1F4232DB1
|
||||
:1018300020611DC08D3261F0803369F4232D216059
|
||||
:1018400016C0832D8260382EE32DE4603E2E2AC020
|
||||
:10185000F32DF8601DC037FC2DC020ED280F2A3075
|
||||
:1018600040F08E32B9F436FC81C1232D2064322E33
|
||||
:1018700019C036FE06C08AE0989E200D1124922ED3
|
||||
:1018800011C0EAE02E9E200D1124222EF32DF062CD
|
||||
:101890003F2E08C08C3621F4832D8068382E02C07C
|
||||
:1018A000883641F4F70193FD859193FF81917F0183
|
||||
:1018B0008111B3CF982F9F7D9554933028F40C5FFE
|
||||
:1018C0001F4F9FE399830DC0833631F0833771F04A
|
||||
:1018D000833509F059C021C0F801808189830E5FEA
|
||||
:1018E0001F4F88248394912C530113C02801F2E0E8
|
||||
:1018F0004F0E511CF801A080B18036FE03C0692D47
|
||||
:1019000070E002C06FEF7FEFC5010E94CB0D4C016C
|
||||
:101910008201F32DFF773F2E16C0280122E0420EF0
|
||||
:10192000511CF801A080B18036FE03C0692D70E023
|
||||
:1019300002C06FEF7FEFC5010E94C00D4C01F32D77
|
||||
:10194000F0683F2E820133FC1BC0822D90E0881688
|
||||
:101950009906B0F4B60180E290E00E94D60D2A9478
|
||||
:10196000F4CFF50137FC859137FE81915F01B60117
|
||||
:1019700090E00E94D60D21102A9421E0821A91084D
|
||||
:101980008114910471F7E8C0843611F0893641F56D
|
||||
:10199000F80137FE07C060817181828193810C5FFD
|
||||
:1019A0001F4F08C060817181072E000C880B990BB6
|
||||
:1019B0000E5F1F4FF32DFF763F2E97FF09C09095C6
|
||||
:1019C0008095709561957F4F8F4F9F4FF0683F2EA8
|
||||
:1019D0002AE030E0A3010E94120E882E861845C02E
|
||||
:1019E000853731F4232D2F7EB22E2AE030E025C03A
|
||||
:1019F000932D997FB92E8F36C1F018F4883579F080
|
||||
:101A0000B5C0803719F0883721F0B0C0E92FE06108
|
||||
:101A1000BE2EB4FE0DC0FB2DF460BF2E09C034FEF7
|
||||
:101A20000AC0292F2660B22E06C028E030E005C08B
|
||||
:101A300020E130E002C020E132E0F801B7FE07C04B
|
||||
:101A400060817181828193810C5F1F4F06C060812C
|
||||
:101A5000718180E090E00E5F1F4FA3010E94120E83
|
||||
:101A6000882E8618FB2DFF773F2E36FE0DC0232DC6
|
||||
:101A70002E7FA22E891458F434FE0BC032FC09C00C
|
||||
:101A8000832D8E7EA82E05C0B82CA32C03C0B82CA5
|
||||
:101A900001C0B92CA4FE0FC0FE01E80DF11D80812C
|
||||
:101AA000803321F49A2D997EA92E09C0A2FE06C08A
|
||||
:101AB000B394B39404C08A2D867809F0B394A3FC40
|
||||
:101AC00011C0A0FE06C0B21488F4280C922C9B18FA
|
||||
:101AD0000EC0B21460F4B60180E290E00E94D60D10
|
||||
:101AE000B394F7CFB21418F42B1802C0982C212C01
|
||||
:101AF000A4FE10C0B60180E390E00E94D60DA2FEC5
|
||||
:101B000017C0A1FC03C088E790E002C088E590E020
|
||||
:101B1000B6010CC08A2D867859F0A1FE02C08BE276
|
||||
:101B200001C080E2A7FC8DE2B60190E00E94D60DD4
|
||||
:101B3000891438F4B60180E390E00E94D60D9A949F
|
||||
:101B4000F7CF8A94F301E80DF11D8081B60190E092
|
||||
:101B50000E94D60D8110F5CF222009F442CEB601A5
|
||||
:101B600080E290E00E94D60D2A94F6CFF60186819D
|
||||
:101B7000978102C08FEF9FEF2B96E2E10C948C0EC1
|
||||
:101B8000FC010590615070400110D8F78095909548
|
||||
:101B90008E0F9F1F0895FC0161507040019001104D
|
||||
:101BA000D8F7809590958E0F9F1F08950F931F93E0
|
||||
:101BB000CF93DF93FB01238121FD03C08FEF9FEFC4
|
||||
:101BC0002CC022FF16C046815781248135814217DF
|
||||
:101BD000530744F4A081B1819D012F5F3F4F3183B2
|
||||
:101BE00020838C93268137812F5F3F4F3783268355
|
||||
:101BF00014C08B01EC01FB010084F185E02D0995F7
|
||||
:101C0000892BE1F6D80116968D919C911797019634
|
||||
:101C100017969C938E931697CE01DF91CF911F91CB
|
||||
:101C20000F910895FA01AA27283051F1203181F14E
|
||||
:101C3000E8946F936E7F6E5F7F4F8F4F9F4FAF4FD4
|
||||
:101C4000B1E03ED0B4E03CD0670F781F891F9A1FE7
|
||||
:101C5000A11D680F791F8A1F911DA11D6A0F711D9B
|
||||
:101C6000811D911DA11D20D009F468943F912AE0A7
|
||||
:101C7000269F11243019305D3193DEF6CF0108958F
|
||||
:101C8000462F4770405D4193B3E00FD0C9F7F6CFC0
|
||||
:101C9000462F4F70405D4A3318F0495D31FD405288
|
||||
:101CA000419302D0A9F7EACFB4E0A695979587951E
|
||||
:101CB00077956795BA95C9F70097610571050895FD
|
||||
:101CC0009B01AC010A2E06945795479537952795A9
|
||||
:101CD000BA95C9F7620F731F841F951FA01D089541
|
||||
:101CE0002F923F924F925F926F927F928F929F922C
|
||||
:101CF000AF92BF92CF92DF92EF92FF920F931F931A
|
||||
:101D0000CF93DF93CDB7DEB7CA1BDB0B0FB6F894CA
|
||||
:101D1000DEBF0FBECDBF09942A88398848885F840A
|
||||
:101D20006E847D848C849B84AA84B984C884DF807B
|
||||
:101D3000EE80FD800C811B81AA81B981CE0FD11D5F
|
||||
:101D40000FB6F894DEBF0FBECDBFED010895F89435
|
||||
:021D5000FFCFC3
|
||||
:101D520065727220696E206765745F6672616D6577
|
||||
:101D62003A2025640A000000891112239B3224467E
|
||||
:101D7200AD573665BF74488CC19D5AAFD3BE6CCA8D
|
||||
:101D8200E5DB7EE9F7F88110080193331A22A556A4
|
||||
:101D92002C47B7753E64C99C408DDBBF52AEEDDA6D
|
||||
:101DA20064CBFFF976E802218B3010029913266783
|
||||
:101DB200AF763444BD554AADC3BC588ED19F6EEB4D
|
||||
:101DC200E7FA7CC8F5D983310A2091121803A77764
|
||||
:101DD2002E66B5543C45CBBD42ACD99E508FEFFB2D
|
||||
:101DE20066EAFDD874C904428D5316619F702004BF
|
||||
:101DF200A9153227BB364CCEC5DF5EEDD7FC68880D
|
||||
:101E0200E1997AABF3BA85520C4397711E60A11423
|
||||
:101E12002805B3373A26CDDE44CFDFFD56ECE998EC
|
||||
:101E22006089FBBB72AA06638F7214409D51222502
|
||||
:101E3200AB343006B9174EEFC7FE5CCCD5DD6AA9CC
|
||||
:101E4200E3B8788AF19B87730E6295501C41A335E3
|
||||
:101E52002A24B1163807CFFF46EEDDDC54CDEBB9AC
|
||||
:101E620062A8F99A708B088481951AA793B62CC23E
|
||||
:101E7200A5D33EE1B7F04008C919522BDB3A644EB4
|
||||
:101E8200ED5F766DFF7C899400859BB712A6ADD27B
|
||||
:101E920024C3BFF136E0C1184809D33B5A2AE55E94
|
||||
:101EA2006C4FF77D7E6C0AA583B4188691972EE35A
|
||||
:101EB200A7F23CC0B5D14229CB38500AD91B666F74
|
||||
:101EC200EF7E744CFD5D8BB502A499961087AFF33B
|
||||
:101ED20026E2BDD034C1C3394A28D11A580BE77F54
|
||||
:101EE2006E6EF55C7C4D0CC685D71EE597F4288096
|
||||
:101EF200A1913AA3B3B2444ACD5B5669DF78600C34
|
||||
:101F0200E91D722FFB3E8DD604C79FF516E4A990FA
|
||||
:101F12002081BBB332A2C55A4C4BD7795E68E11C13
|
||||
:101F2200680DF33F7A2E0EE787F61CC495D52AA1D9
|
||||
:101F3200A3B03882B193466BCF7A5448DD59622DF3
|
||||
:101F4200EB3C700EF91F8FF706E69DD414C5ABB1BA
|
||||
:101F520022A0B9923083C77B4E6AD5585C49E33DD3
|
||||
:101F62006A2CF11E780F252E32662E252E32662E11
|
||||
:101F7200252E326600776F72642077617220696E57
|
||||
:101F8200206E657720776F726C6420696F206578A8
|
||||
:021F920000004D
|
||||
:00000001FF
|
4530
hdlc_screen/Debug/hdlc_screen.lss
Normal file
4530
hdlc_screen/Debug/hdlc_screen.lss
Normal file
File diff suppressed because it is too large
Load Diff
953
hdlc_screen/Debug/hdlc_screen.map
Normal file
953
hdlc_screen/Debug/hdlc_screen.map
Normal file
@ -0,0 +1,953 @@
|
||||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
LCD/Lcd_print.o (__udivmodhi4)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o (exit)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
hdlc/client.o (__do_copy_data)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
hdlc/client.o (__do_clear_bss)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o)
|
||||
LCD/Lcd_print.o (strncpy)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
hdlc/client.o (printf)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
LCD/Lcd_print.o (snprintf)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (vfprintf)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen_P)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (fputc)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__iob)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (__ultoa_invert)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__prologue_saves__)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__epilogue_restores__)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
||||
uartRxBuffer 0x22 UART/uart.o
|
||||
pcf8574_pinstatus 0x1 LCD/pcf8574.o
|
||||
textCounter 0x6 LCD/Lcd_print.o
|
||||
uartTxBuffer 0x22 UART/uart.o
|
||||
__iob 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
connecting_frame_timeout_bf
|
||||
0x2 hdlc/client.o
|
||||
|
||||
Discarded input sections
|
||||
|
||||
.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.text 0x00000000 0x0 hdlc/client.o
|
||||
.data 0x00000000 0x0 hdlc/client.o
|
||||
.bss 0x00000000 0x0 hdlc/client.o
|
||||
.text 0x00000000 0x0 hdlc/fcs.o
|
||||
.data 0x00000000 0x0 hdlc/fcs.o
|
||||
.bss 0x00000000 0x0 hdlc/fcs.o
|
||||
.text 0x00000000 0x0 hdlc/hdlc.o
|
||||
.data 0x00000000 0x0 hdlc/hdlc.o
|
||||
.bss 0x00000000 0x0 hdlc/hdlc.o
|
||||
.text.hdlc_set_state
|
||||
0x00000000 0x20 hdlc/hdlc.o
|
||||
.text.hdlc_get_state
|
||||
0x00000000 0x20 hdlc/hdlc.o
|
||||
.text.hdlc_get_data_reset
|
||||
0x00000000 0xa hdlc/hdlc.o
|
||||
.text.hdlc_get_data
|
||||
0x00000000 0x24 hdlc/hdlc.o
|
||||
.data.hdlc_state
|
||||
0x00000000 0xb hdlc/hdlc.o
|
||||
.text 0x00000000 0x0 LCD/lcdpcf8574.o
|
||||
.data 0x00000000 0x0 LCD/lcdpcf8574.o
|
||||
.bss 0x00000000 0x0 LCD/lcdpcf8574.o
|
||||
.text.lcd_data
|
||||
0x00000000 0x14 LCD/lcdpcf8574.o
|
||||
.text.lcd_getxy
|
||||
0x00000000 0x8 LCD/lcdpcf8574.o
|
||||
.text.lcd_puts_p
|
||||
0x00000000 0x24 LCD/lcdpcf8574.o
|
||||
.text 0x00000000 0x0 LCD/Lcd_print.o
|
||||
.data 0x00000000 0x0 LCD/Lcd_print.o
|
||||
.bss 0x00000000 0x0 LCD/Lcd_print.o
|
||||
.text 0x00000000 0x0 LCD/pcf8574.o
|
||||
.data 0x00000000 0x0 LCD/pcf8574.o
|
||||
.bss 0x00000000 0x0 LCD/pcf8574.o
|
||||
.text.pcf8574_getoutput
|
||||
0x00000000 0xe LCD/pcf8574.o
|
||||
.text.pcf8574_setoutputpins
|
||||
0x00000000 0x80 LCD/pcf8574.o
|
||||
.text.pcf8574_getinput
|
||||
0x00000000 0x22 LCD/pcf8574.o
|
||||
.text.pcf8574_getinputpin
|
||||
0x00000000 0x32 LCD/pcf8574.o
|
||||
.text 0x00000000 0x0 LCD/twimaster.o
|
||||
.data 0x00000000 0x0 LCD/twimaster.o
|
||||
.bss 0x00000000 0x0 LCD/twimaster.o
|
||||
.text.i2c_start_wait
|
||||
0x00000000 0x50 LCD/twimaster.o
|
||||
.text.i2c_rep_start
|
||||
0x00000000 0x6 LCD/twimaster.o
|
||||
.text.i2c_readAck
|
||||
0x00000000 0x16 LCD/twimaster.o
|
||||
.text.i2c_readNak
|
||||
0x00000000 0x16 LCD/twimaster.o
|
||||
.text 0x00000000 0x0 main.o
|
||||
.data 0x00000000 0x0 main.o
|
||||
.bss 0x00000000 0x0 main.o
|
||||
.text 0x00000000 0x0 protocol/protocol.o
|
||||
.data 0x00000000 0x0 protocol/protocol.o
|
||||
.bss 0x00000000 0x0 protocol/protocol.o
|
||||
.text 0x00000000 0x0 UART/circular_buf.o
|
||||
.data 0x00000000 0x0 UART/circular_buf.o
|
||||
.bss 0x00000000 0x0 UART/circular_buf.o
|
||||
.text.initialize_buffer
|
||||
0x00000000 0x8 UART/circular_buf.o
|
||||
.text 0x00000000 0x0 UART/uart.o
|
||||
.data 0x00000000 0x0 UART/uart.o
|
||||
.bss 0x00000000 0x0 UART/uart.o
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
.text.libgcc.fixed
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
text 0x00000000 0x00020000 xr
|
||||
data 0x00800060 0x0000ffa0 rw !x
|
||||
eeprom 0x00810000 0x00010000 rw !x
|
||||
fuse 0x00820000 0x00000003 rw !x
|
||||
lock 0x00830000 0x00000400 rw !x
|
||||
signature 0x00840000 0x00000400 rw !x
|
||||
user_signatures 0x00850000 0x00000400 rw !x
|
||||
*default* 0x00000000 0xffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
Address of section .data set to 0x800100
|
||||
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
LOAD hdlc/client.o
|
||||
LOAD hdlc/fcs.o
|
||||
LOAD hdlc/hdlc.o
|
||||
LOAD LCD/lcdpcf8574.o
|
||||
LOAD LCD/Lcd_print.o
|
||||
LOAD LCD/pcf8574.o
|
||||
LOAD LCD/twimaster.o
|
||||
LOAD main.o
|
||||
LOAD protocol/protocol.o
|
||||
LOAD UART/circular_buf.o
|
||||
LOAD UART/uart.o
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a
|
||||
END GROUP
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a
|
||||
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a
|
||||
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a
|
||||
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5\libatmega328p.a
|
||||
END GROUP
|
||||
0x00000000 __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
|
||||
0x00800060 __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800060
|
||||
0x00020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
|
||||
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
|
||||
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
|
||||
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
|
||||
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
|
||||
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
|
||||
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
|
||||
|
||||
.hash
|
||||
*(.hash)
|
||||
|
||||
.dynsym
|
||||
*(.dynsym)
|
||||
|
||||
.dynstr
|
||||
*(.dynstr)
|
||||
|
||||
.gnu.version
|
||||
*(.gnu.version)
|
||||
|
||||
.gnu.version_d
|
||||
*(.gnu.version_d)
|
||||
|
||||
.gnu.version_r
|
||||
*(.gnu.version_r)
|
||||
|
||||
.rel.init
|
||||
*(.rel.init)
|
||||
|
||||
.rela.init
|
||||
*(.rela.init)
|
||||
|
||||
.rel.text
|
||||
*(.rel.text)
|
||||
*(.rel.text.*)
|
||||
*(.rel.gnu.linkonce.t*)
|
||||
|
||||
.rela.text
|
||||
*(.rela.text)
|
||||
*(.rela.text.*)
|
||||
*(.rela.gnu.linkonce.t*)
|
||||
|
||||
.rel.fini
|
||||
*(.rel.fini)
|
||||
|
||||
.rela.fini
|
||||
*(.rela.fini)
|
||||
|
||||
.rel.rodata
|
||||
*(.rel.rodata)
|
||||
*(.rel.rodata.*)
|
||||
*(.rel.gnu.linkonce.r*)
|
||||
|
||||
.rela.rodata
|
||||
*(.rela.rodata)
|
||||
*(.rela.rodata.*)
|
||||
*(.rela.gnu.linkonce.r*)
|
||||
|
||||
.rel.data
|
||||
*(.rel.data)
|
||||
*(.rel.data.*)
|
||||
*(.rel.gnu.linkonce.d*)
|
||||
|
||||
.rela.data
|
||||
*(.rela.data)
|
||||
*(.rela.data.*)
|
||||
*(.rela.gnu.linkonce.d*)
|
||||
|
||||
.rel.ctors
|
||||
*(.rel.ctors)
|
||||
|
||||
.rela.ctors
|
||||
*(.rela.ctors)
|
||||
|
||||
.rel.dtors
|
||||
*(.rel.dtors)
|
||||
|
||||
.rela.dtors
|
||||
*(.rela.dtors)
|
||||
|
||||
.rel.got
|
||||
*(.rel.got)
|
||||
|
||||
.rela.got
|
||||
*(.rela.got)
|
||||
|
||||
.rel.bss
|
||||
*(.rel.bss)
|
||||
|
||||
.rela.bss
|
||||
*(.rela.bss)
|
||||
|
||||
.rel.plt
|
||||
*(.rel.plt)
|
||||
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.text 0x00000000 0x1d52
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x68 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
0x00000000 __vector_default
|
||||
0x00000000 __vectors
|
||||
*(.vectors)
|
||||
*(.progmem.gcc*)
|
||||
0x00000068 . = ALIGN (0x2)
|
||||
0x00000068 __trampolines_start = .
|
||||
*(.trampolines)
|
||||
.trampolines 0x00000068 0x0 linker stubs
|
||||
*(.trampolines*)
|
||||
0x00000068 __trampolines_end = .
|
||||
*libprintf_flt.a:*(.progmem.data)
|
||||
*libc.a:*(.progmem.data)
|
||||
*(.progmem*)
|
||||
0x00000068 . = ALIGN (0x2)
|
||||
*(.jumptables)
|
||||
*(.jumptables*)
|
||||
*(.lowtext)
|
||||
*(.lowtext*)
|
||||
0x00000068 __ctors_start = .
|
||||
*(.ctors)
|
||||
0x00000068 __ctors_end = .
|
||||
0x00000068 __dtors_start = .
|
||||
*(.dtors)
|
||||
0x00000068 __dtors_end = .
|
||||
SORT(*)(.ctors)
|
||||
SORT(*)(.dtors)
|
||||
*(.init0)
|
||||
.init0 0x00000068 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
0x00000068 __init
|
||||
*(.init0)
|
||||
*(.init1)
|
||||
*(.init1)
|
||||
*(.init2)
|
||||
.init2 0x00000068 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
*(.init2)
|
||||
*(.init3)
|
||||
*(.init3)
|
||||
*(.init4)
|
||||
.init4 0x00000074 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
|
||||
0x00000074 __do_copy_data
|
||||
.init4 0x0000008a 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
|
||||
0x0000008a __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
*(.init6)
|
||||
*(.init6)
|
||||
*(.init7)
|
||||
*(.init7)
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x0000009a 0x8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x000000a2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
0x000000a2 __vector_22
|
||||
0x000000a2 __vector_1
|
||||
0x000000a2 __vector_24
|
||||
0x000000a2 __vector_12
|
||||
0x000000a2 __bad_interrupt
|
||||
0x000000a2 __vector_6
|
||||
0x000000a2 __vector_3
|
||||
0x000000a2 __vector_23
|
||||
0x000000a2 __vector_25
|
||||
0x000000a2 __vector_11
|
||||
0x000000a2 __vector_13
|
||||
0x000000a2 __vector_17
|
||||
0x000000a2 __vector_19
|
||||
0x000000a2 __vector_7
|
||||
0x000000a2 __vector_5
|
||||
0x000000a2 __vector_4
|
||||
0x000000a2 __vector_9
|
||||
0x000000a2 __vector_2
|
||||
0x000000a2 __vector_21
|
||||
0x000000a2 __vector_15
|
||||
0x000000a2 __vector_8
|
||||
0x000000a2 __vector_14
|
||||
0x000000a2 __vector_10
|
||||
0x000000a2 __vector_16
|
||||
0x000000a6 . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text.init_hdlc_client
|
||||
0x000000a6 0x32 hdlc/client.o
|
||||
0x000000a6 init_hdlc_client
|
||||
.text.hdlc_connect
|
||||
0x000000d8 0x14 hdlc/client.o
|
||||
0x000000d8 hdlc_connect
|
||||
.text.hdlc_send_data
|
||||
0x000000ec 0x36 hdlc/client.o
|
||||
0x000000ec hdlc_send_data
|
||||
.text.hdlc_get_raw_frame
|
||||
0x00000122 0xec hdlc/client.o
|
||||
0x00000122 hdlc_get_raw_frame
|
||||
.text.hdlc_decode_recived_raw_data
|
||||
0x0000020e 0x142 hdlc/client.o
|
||||
0x0000020e hdlc_decode_recived_raw_data
|
||||
.text.hdlc_timeout_handler
|
||||
0x00000350 0x20 hdlc/client.o
|
||||
0x00000350 hdlc_timeout_handler
|
||||
.text.calc_fcs
|
||||
0x00000370 0x1c hdlc/fcs.o
|
||||
0x00000370 calc_fcs
|
||||
.text.hdlc_escape_value
|
||||
0x0000038c 0x3e hdlc/hdlc.o
|
||||
0x0000038c hdlc_escape_value
|
||||
.text.hdlc_get_control_type
|
||||
0x000003ca 0x26 hdlc/hdlc.o
|
||||
0x000003ca hdlc_get_control_type
|
||||
.text.hdlc_frame_control_type
|
||||
0x000003f0 0x36 hdlc/hdlc.o
|
||||
0x000003f0 hdlc_frame_control_type
|
||||
.text.hdlc_get_data_reset_with_state
|
||||
0x00000426 0x1e hdlc/hdlc.o
|
||||
0x00000426 hdlc_get_data_reset_with_state
|
||||
.text.hdlc_get_data_with_state
|
||||
0x00000444 0x24c hdlc/hdlc.o
|
||||
0x00000444 hdlc_get_data_with_state
|
||||
.text.hdlc_frame_data
|
||||
0x00000690 0x14a hdlc/hdlc.o
|
||||
0x00000690 hdlc_frame_data
|
||||
.text.lcd_read
|
||||
0x000007da 0x76 LCD/lcdpcf8574.o
|
||||
.text.lcd_waitbusy
|
||||
0x00000850 0x14 LCD/lcdpcf8574.o
|
||||
.text.toggle_e
|
||||
0x00000864 0x14 LCD/lcdpcf8574.o
|
||||
.text.lcd_write
|
||||
0x00000878 0x144 LCD/lcdpcf8574.o
|
||||
.text.lcd_command
|
||||
0x000009bc 0x14 LCD/lcdpcf8574.o
|
||||
0x000009bc lcd_command
|
||||
.text.lcd_gotoxy
|
||||
0x000009d0 0x14 LCD/lcdpcf8574.o
|
||||
0x000009d0 lcd_gotoxy
|
||||
.text.lcd_clrscr
|
||||
0x000009e4 0x8 LCD/lcdpcf8574.o
|
||||
0x000009e4 lcd_clrscr
|
||||
.text.lcd_led 0x000009ec 0x26 LCD/lcdpcf8574.o
|
||||
0x000009ec lcd_led
|
||||
.text.lcd_home
|
||||
0x00000a12 0x8 LCD/lcdpcf8574.o
|
||||
0x00000a12 lcd_home
|
||||
.text.lcd_putc
|
||||
0x00000a1a 0x48 LCD/lcdpcf8574.o
|
||||
0x00000a1a lcd_putc
|
||||
.text.lcd_puts
|
||||
0x00000a62 0x20 LCD/lcdpcf8574.o
|
||||
0x00000a62 lcd_puts
|
||||
.text.lcd_init
|
||||
0x00000a82 0xa4 LCD/lcdpcf8574.o
|
||||
0x00000a82 lcd_init
|
||||
.text.Lcd_inciliation
|
||||
0x00000b26 0x12 LCD/Lcd_print.o
|
||||
0x00000b26 Lcd_inciliation
|
||||
.text.fillBuffer1
|
||||
0x00000b38 0x7a LCD/Lcd_print.o
|
||||
0x00000b38 fillBuffer1
|
||||
.text.fillBuffer2
|
||||
0x00000bb2 0x5e LCD/Lcd_print.o
|
||||
0x00000bb2 fillBuffer2
|
||||
.text.printLcd
|
||||
0x00000c10 0xe0 LCD/Lcd_print.o
|
||||
0x00000c10 printLcd
|
||||
.text.pcf8574_init
|
||||
0x00000cf0 0x12 LCD/pcf8574.o
|
||||
0x00000cf0 pcf8574_init
|
||||
.text.pcf8574_getoutputpin
|
||||
0x00000d02 0x28 LCD/pcf8574.o
|
||||
0x00000d02 pcf8574_getoutputpin
|
||||
.text.pcf8574_setoutput
|
||||
0x00000d2a 0x26 LCD/pcf8574.o
|
||||
0x00000d2a pcf8574_setoutput
|
||||
.text.pcf8574_setoutputpin
|
||||
0x00000d50 0x5c LCD/pcf8574.o
|
||||
0x00000d50 pcf8574_setoutputpin
|
||||
.text.pcf8574_setoutputpinhigh
|
||||
0x00000dac 0x8 LCD/pcf8574.o
|
||||
0x00000dac pcf8574_setoutputpinhigh
|
||||
.text.pcf8574_setoutputpinlow
|
||||
0x00000db4 0x8 LCD/pcf8574.o
|
||||
0x00000db4 pcf8574_setoutputpinlow
|
||||
.text.i2c_init
|
||||
0x00000dbc 0xc LCD/twimaster.o
|
||||
0x00000dbc i2c_init
|
||||
.text.i2c_start
|
||||
0x00000dc8 0x4e LCD/twimaster.o
|
||||
0x00000dc8 i2c_start
|
||||
.text.i2c_stop
|
||||
0x00000e16 0x12 LCD/twimaster.o
|
||||
0x00000e16 i2c_stop
|
||||
.text.i2c_write
|
||||
0x00000e28 0x24 LCD/twimaster.o
|
||||
0x00000e28 i2c_write
|
||||
.text.main 0x00000e4c 0x330 main.o
|
||||
0x00000e4c main
|
||||
.text.protocol_decode
|
||||
0x0000117c 0x13c protocol/protocol.o
|
||||
0x0000117c protocol_decode
|
||||
.text.protocol_encode
|
||||
0x000012b8 0x1c6 protocol/protocol.o
|
||||
0x000012b8 protocol_encode
|
||||
.text.buffer_empty
|
||||
0x0000147e 0x14 UART/circular_buf.o
|
||||
0x0000147e buffer_empty
|
||||
.text.buffer_full
|
||||
0x00001492 0x34 UART/circular_buf.o
|
||||
0x00001492 buffer_full
|
||||
.text.write_buffer
|
||||
0x000014c6 0x3a UART/circular_buf.o
|
||||
0x000014c6 write_buffer
|
||||
.text.read_buffer
|
||||
0x00001500 0x3c UART/circular_buf.o
|
||||
0x00001500 read_buffer
|
||||
.text.UART_init
|
||||
0x0000153c 0x18 UART/uart.o
|
||||
0x0000153c UART_init
|
||||
.text.UART_send
|
||||
0x00001554 0x48 UART/uart.o
|
||||
0x00001554 UART_send
|
||||
.text.UART_receive
|
||||
0x0000159c 0x84 UART/uart.o
|
||||
0x0000159c UART_receive
|
||||
.text.__vector_18
|
||||
0x00001620 0x64 UART/uart.o
|
||||
0x00001620 __vector_18
|
||||
.text.__vector_20
|
||||
0x00001684 0x68 UART/uart.o
|
||||
0x00001684 __vector_20
|
||||
.text.libgcc.div
|
||||
0x000016ec 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o)
|
||||
0x000016ec __udivmodhi4
|
||||
.text.avr-libc
|
||||
0x00001714 0x1e c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o)
|
||||
0x00001714 strncpy
|
||||
.text.avr-libc
|
||||
0x00001732 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
0x00001732 printf
|
||||
.text.avr-libc
|
||||
0x0000175e 0x60 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
0x0000175e snprintf
|
||||
.text.avr-libc
|
||||
0x000017be 0x3c2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
0x000017be vfprintf
|
||||
.text.avr-libc
|
||||
0x00001b80 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||
0x00001b80 strnlen_P
|
||||
.text.avr-libc
|
||||
0x00001b96 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||
0x00001b96 strnlen
|
||||
.text.avr-libc
|
||||
0x00001bac 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
0x00001bac fputc
|
||||
.text.avr-libc
|
||||
0x00001c24 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||
0x00001c24 __ultoa_invert
|
||||
.text.libgcc.prologue
|
||||
0x00001ce0 0x38 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o)
|
||||
0x00001ce0 __prologue_saves__
|
||||
.text.libgcc.prologue
|
||||
0x00001d18 0x36 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o)
|
||||
0x00001d18 __epilogue_restores__
|
||||
0x00001d4e . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x00001d4e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
0x00001d4e _exit
|
||||
0x00001d4e exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
*(.fini7)
|
||||
*(.fini7)
|
||||
*(.fini6)
|
||||
*(.fini6)
|
||||
*(.fini5)
|
||||
*(.fini5)
|
||||
*(.fini4)
|
||||
*(.fini4)
|
||||
*(.fini3)
|
||||
*(.fini3)
|
||||
*(.fini2)
|
||||
*(.fini2)
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x00001d4e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x00001d52 _etext = .
|
||||
|
||||
.data 0x00800100 0x242 load address 0x00001d52
|
||||
0x00800100 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
*(.data*)
|
||||
*(.gnu.linkonce.d*)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
.rodata.str1.1
|
||||
0x00800100 0x16 hdlc/client.o
|
||||
.rodata.fcstab
|
||||
0x00800116 0x200 hdlc/fcs.o
|
||||
.rodata.str1.1
|
||||
0x00800316 0xf LCD/Lcd_print.o
|
||||
.rodata.str1.1
|
||||
0x00800325 0x1c main.o
|
||||
*(.gnu.linkonce.r*)
|
||||
0x00800342 . = ALIGN (0x2)
|
||||
*fill* 0x00800341 0x1
|
||||
0x00800342 _edata = .
|
||||
0x00800342 PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x00800342 0x54
|
||||
0x00800342 PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
*(.bss*)
|
||||
.bss.dataport 0x00800342 0x1 LCD/lcdpcf8574.o
|
||||
0x00800342 dataport
|
||||
*(COMMON)
|
||||
COMMON 0x00800343 0x2 hdlc/client.o
|
||||
0x00800343 connecting_frame_timeout_bf
|
||||
COMMON 0x00800345 0x6 LCD/Lcd_print.o
|
||||
0x00800345 textCounter
|
||||
COMMON 0x0080034b 0x1 LCD/pcf8574.o
|
||||
0x0080034b pcf8574_pinstatus
|
||||
COMMON 0x0080034c 0x44 UART/uart.o
|
||||
0x0080034c uartRxBuffer
|
||||
0x0080036e uartTxBuffer
|
||||
COMMON 0x00800390 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
0x00800390 __iob
|
||||
0x00800396 PROVIDE (__bss_end, .)
|
||||
0x00001d52 __data_load_start = LOADADDR (.data)
|
||||
0x00001f94 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x00800396 0x0
|
||||
[!provide] PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
[!provide] PROVIDE (__noinit_end, .)
|
||||
0x00800396 _end = .
|
||||
[!provide] PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x00810000 0x0
|
||||
*(.eeprom*)
|
||||
0x00810000 __eeprom_end = .
|
||||
|
||||
.fuse
|
||||
*(.fuse)
|
||||
*(.lfuse)
|
||||
*(.hfuse)
|
||||
*(.efuse)
|
||||
|
||||
.lock
|
||||
*(.lock*)
|
||||
|
||||
.signature
|
||||
*(.signature*)
|
||||
|
||||
.user_signatures
|
||||
*(.user_signatures*)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
.stabstr
|
||||
*(.stabstr)
|
||||
|
||||
.stab.excl
|
||||
*(.stab.excl)
|
||||
|
||||
.stab.exclstr
|
||||
*(.stab.exclstr)
|
||||
|
||||
.stab.index
|
||||
*(.stab.index)
|
||||
|
||||
.stab.indexstr
|
||||
*(.stab.indexstr)
|
||||
|
||||
.comment 0x00000000 0x8c
|
||||
*(.comment)
|
||||
.comment 0x00000000 0x30 hdlc/client.o
|
||||
0x31 (size before relaxing)
|
||||
.comment 0x00000030 0x30 hdlc/fcs.o
|
||||
0x31 (size before relaxing)
|
||||
.comment 0x00000060 0x31 hdlc/hdlc.o
|
||||
.comment 0x00000060 0x31 LCD/lcdpcf8574.o
|
||||
.comment 0x00000060 0x31 LCD/Lcd_print.o
|
||||
.comment 0x00000060 0x31 LCD/pcf8574.o
|
||||
.comment 0x00000060 0x31 LCD/twimaster.o
|
||||
.comment 0x00000060 0x31 main.o
|
||||
.comment 0x00000060 0x31 protocol/protocol.o
|
||||
.comment 0x00000060 0x31 UART/circular_buf.o
|
||||
.comment 0x00000060 0x31 UART/uart.o
|
||||
.comment 0x00000060 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o)
|
||||
.comment 0x00000060 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o)
|
||||
.comment 0x00000060 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||
0x2d (size before relaxing)
|
||||
.comment 0x0000008c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||
.comment 0x0000008c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o)
|
||||
|
||||
.note.gnu.avr.deviceinfo
|
||||
0x00000000 0x40
|
||||
.note.gnu.avr.deviceinfo
|
||||
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
|
||||
.note.gnu.build-id
|
||||
*(.note.gnu.build-id)
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0x320
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x48 hdlc/client.o
|
||||
.debug_aranges
|
||||
0x00000048 0x20 hdlc/fcs.o
|
||||
.debug_aranges
|
||||
0x00000068 0x68 hdlc/hdlc.o
|
||||
.debug_aranges
|
||||
0x000000d0 0x90 LCD/lcdpcf8574.o
|
||||
.debug_aranges
|
||||
0x00000160 0x38 LCD/Lcd_print.o
|
||||
.debug_aranges
|
||||
0x00000198 0x68 LCD/pcf8574.o
|
||||
.debug_aranges
|
||||
0x00000200 0x58 LCD/twimaster.o
|
||||
.debug_aranges
|
||||
0x00000258 0x20 main.o
|
||||
.debug_aranges
|
||||
0x00000278 0x28 protocol/protocol.o
|
||||
.debug_aranges
|
||||
0x000002a0 0x40 UART/circular_buf.o
|
||||
.debug_aranges
|
||||
0x000002e0 0x40 UART/uart.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0x378f
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
.debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.debug_info 0x000005f4 0x5e7 hdlc/client.o
|
||||
.debug_info 0x00000bdb 0xa5 hdlc/fcs.o
|
||||
.debug_info 0x00000c80 0x685 hdlc/hdlc.o
|
||||
.debug_info 0x00001305 0x7d2 LCD/lcdpcf8574.o
|
||||
.debug_info 0x00001ad7 0x45c LCD/Lcd_print.o
|
||||
.debug_info 0x00001f33 0x54c LCD/pcf8574.o
|
||||
.debug_info 0x0000247f 0x1c4 LCD/twimaster.o
|
||||
.debug_info 0x00002643 0x91f main.o
|
||||
.debug_info 0x00002f62 0x30c protocol/protocol.o
|
||||
.debug_info 0x0000326e 0x1fc UART/circular_buf.o
|
||||
.debug_info 0x0000346a 0x325 UART/uart.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x1589
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.debug_abbrev 0x000005a2 0x1fc hdlc/client.o
|
||||
.debug_abbrev 0x0000079e 0x83 hdlc/fcs.o
|
||||
.debug_abbrev 0x00000821 0x194 hdlc/hdlc.o
|
||||
.debug_abbrev 0x000009b5 0x266 LCD/lcdpcf8574.o
|
||||
.debug_abbrev 0x00000c1b 0x163 LCD/Lcd_print.o
|
||||
.debug_abbrev 0x00000d7e 0x1b6 LCD/pcf8574.o
|
||||
.debug_abbrev 0x00000f34 0xe5 LCD/twimaster.o
|
||||
.debug_abbrev 0x00001019 0x17c main.o
|
||||
.debug_abbrev 0x00001195 0x137 protocol/protocol.o
|
||||
.debug_abbrev 0x000012cc 0x175 UART/circular_buf.o
|
||||
.debug_abbrev 0x00001441 0x148 UART/uart.o
|
||||
|
||||
.debug_line 0x00000000 0x1e37
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
.debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.debug_line 0x00000133 0x32b hdlc/client.o
|
||||
.debug_line 0x0000045e 0x47 hdlc/fcs.o
|
||||
.debug_line 0x000004a5 0x497 hdlc/hdlc.o
|
||||
.debug_line 0x0000093c 0x4bb LCD/lcdpcf8574.o
|
||||
.debug_line 0x00000df7 0x1e8 LCD/Lcd_print.o
|
||||
.debug_line 0x00000fdf 0x36c LCD/pcf8574.o
|
||||
.debug_line 0x0000134b 0x2bf LCD/twimaster.o
|
||||
.debug_line 0x0000160a 0x2af main.o
|
||||
.debug_line 0x000018b9 0x25e protocol/protocol.o
|
||||
.debug_line 0x00001b17 0xfa UART/circular_buf.o
|
||||
.debug_line 0x00001c11 0x226 UART/uart.o
|
||||
|
||||
.debug_frame 0x00000000 0x9a0
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x104 hdlc/client.o
|
||||
.debug_frame 0x00000104 0x24 hdlc/fcs.o
|
||||
.debug_frame 0x00000128 0x178 hdlc/hdlc.o
|
||||
.debug_frame 0x000002a0 0x154 LCD/lcdpcf8574.o
|
||||
.debug_frame 0x000003f4 0x124 LCD/Lcd_print.o
|
||||
.debug_frame 0x00000518 0xe0 LCD/pcf8574.o
|
||||
.debug_frame 0x000005f8 0xa0 LCD/twimaster.o
|
||||
.debug_frame 0x00000698 0x7c main.o
|
||||
.debug_frame 0x00000714 0xd0 protocol/protocol.o
|
||||
.debug_frame 0x000007e4 0x74 UART/circular_buf.o
|
||||
.debug_frame 0x00000858 0x148 UART/uart.o
|
||||
|
||||
.debug_str 0x00000000 0xcc5
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o
|
||||
.debug_str 0x00000208 0x387 hdlc/client.o
|
||||
0x412 (size before relaxing)
|
||||
.debug_str 0x0000058f 0x41 hdlc/fcs.o
|
||||
0x11c (size before relaxing)
|
||||
.debug_str 0x000005d0 0xcf hdlc/hdlc.o
|
||||
0x302 (size before relaxing)
|
||||
.debug_str 0x0000069f 0x17f LCD/lcdpcf8574.o
|
||||
0x2ca (size before relaxing)
|
||||
.debug_str 0x0000081e 0xfe LCD/Lcd_print.o
|
||||
0x287 (size before relaxing)
|
||||
.debug_str 0x0000091c 0x123 LCD/pcf8574.o
|
||||
0x2e3 (size before relaxing)
|
||||
.debug_str 0x00000a3f 0x49 LCD/twimaster.o
|
||||
0x1c6 (size before relaxing)
|
||||
.debug_str 0x00000a88 0xe8 main.o
|
||||
0x4ac (size before relaxing)
|
||||
.debug_str 0x00000b70 0x7d protocol/protocol.o
|
||||
0x232 (size before relaxing)
|
||||
.debug_str 0x00000bed 0x7d UART/circular_buf.o
|
||||
0x1d1 (size before relaxing)
|
||||
.debug_str 0x00000c6a 0x5b UART/uart.o
|
||||
0x242 (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0x2fe7
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x534 hdlc/client.o
|
||||
.debug_loc 0x00000534 0x26 hdlc/fcs.o
|
||||
.debug_loc 0x0000055a 0xb7e hdlc/hdlc.o
|
||||
.debug_loc 0x000010d8 0x5b5 LCD/lcdpcf8574.o
|
||||
.debug_loc 0x0000168d 0x4ac LCD/Lcd_print.o
|
||||
.debug_loc 0x00001b39 0x69d LCD/pcf8574.o
|
||||
.debug_loc 0x000021d6 0x12d LCD/twimaster.o
|
||||
.debug_loc 0x00002303 0x21a main.o
|
||||
.debug_loc 0x0000251d 0x578 protocol/protocol.o
|
||||
.debug_loc 0x00002a95 0x140 UART/circular_buf.o
|
||||
.debug_loc 0x00002bd5 0x412 UART/uart.o
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
|
||||
.debug_weaknames
|
||||
*(.debug_weaknames)
|
||||
|
||||
.debug_funcnames
|
||||
*(.debug_funcnames)
|
||||
|
||||
.debug_typenames
|
||||
*(.debug_typenames)
|
||||
|
||||
.debug_varnames
|
||||
*(.debug_varnames)
|
||||
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges 0x00000000 0x2e8
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x50 hdlc/client.o
|
||||
.debug_ranges 0x00000050 0x10 hdlc/fcs.o
|
||||
.debug_ranges 0x00000060 0x58 hdlc/hdlc.o
|
||||
.debug_ranges 0x000000b8 0x98 LCD/lcdpcf8574.o
|
||||
.debug_ranges 0x00000150 0x28 LCD/Lcd_print.o
|
||||
.debug_ranges 0x00000178 0x58 LCD/pcf8574.o
|
||||
.debug_ranges 0x000001d0 0x48 LCD/twimaster.o
|
||||
.debug_ranges 0x00000218 0x40 main.o
|
||||
.debug_ranges 0x00000258 0x30 protocol/protocol.o
|
||||
.debug_ranges 0x00000288 0x30 UART/circular_buf.o
|
||||
.debug_ranges 0x000002b8 0x30 UART/uart.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
OUTPUT(hdlc_screen.elf elf32-avr)
|
||||
LOAD linker stubs
|
509
hdlc_screen/Debug/hdlc_screen.srec
Normal file
509
hdlc_screen/Debug/hdlc_screen.srec
Normal file
@ -0,0 +1,509 @@
|
||||
S013000068646C635F73637265656E2E7372656397
|
||||
S11300000C9434000C9451000C9451000C94510045
|
||||
S11300100C9451000C9451000C9451000C94510018
|
||||
S11300200C9451000C9451000C9451000C94510008
|
||||
S11300300C9451000C9451000C9451000C945100F8
|
||||
S11300400C9451000C9451000C94100B0C9451001E
|
||||
S11300500C94420B0C9451000C9451000C945100DC
|
||||
S11300600C9451000C94510011241FBECFEFD8E022
|
||||
S1130070DEBFCDBF13E0A0E0B1E0E2E5FDE102C0E8
|
||||
S113008005900D92A234B107D9F723E0A2E4B3E0BE
|
||||
S113009001C01D92A639B207E1F70E9426070C940D
|
||||
S11300A0A70E0C940000FC0181E0808372836183BD
|
||||
S11300B0709344036093430384E1838314828FEF3A
|
||||
S11300C09FEF9683858390878783928781871486A1
|
||||
S11300D01386168615860895FC0183E08083808943
|
||||
S11300E0887F808B81E0878713820895FC0180815B
|
||||
S11300F0823089F485E080834134510578F4828923
|
||||
S1130100887F828B118A748B638B568B458B138209
|
||||
S113011080E090E008958CEF9FEF08958FEF9FEFBC
|
||||
S11301200895CF92DF92EF92FF920F931F93CF9394
|
||||
S1130130DF9300D0CDB7DEB77C016B015A834983CE
|
||||
S1130140FC0180818530D1F445895689638974899D
|
||||
S11301508E010F5F1F4F9601C70141960E9448030D
|
||||
S1130160992364F49F938F9380E091E09F938F93FE
|
||||
S11301700E94990B0F900F900F900F90F7018081C0
|
||||
S11301808330D1F48E010F5F1F4F960140E050E0A1
|
||||
S113019060E070E0C7010F960E944803992364F45D
|
||||
S11301A09F938F9380E091E09F938F930E94990B8C
|
||||
S11301B00F900F900F900F90F70180818430D1F44D
|
||||
S11301C08E010F5F1F4F960140E050E060E070E049
|
||||
S11301D0C70147960E944803992364F49F938F9321
|
||||
S11301E080E091E09F938F930E94990B0F900F9062
|
||||
S11301F00F900F9080E090E00F900F90DF91CF91DF
|
||||
S11302001F910F91FF90EF90DF90CF9008952F9260
|
||||
S11302103F924F925F926F927F928F929F92AF9292
|
||||
S1130220BF92CF92DF92EF92FF920F931F93CF93DF
|
||||
S1130230DF9300D000D0CDB7DEB75C015C834B8385
|
||||
S1130240222E332E38018DB69EB6C42ED52E8DB7F0
|
||||
S11302509EB78C199D090FB6F8949EBF0FBE8DBF33
|
||||
S1130260EDB7FEB731962F01CE0103967C018F01C5
|
||||
S11302709601AB01BE016F5F7F4FC50104960E94DA
|
||||
S1130280220299230CF448C08A81877090E0F5011A
|
||||
S1130290238130E08217930751F084E08083808DBE
|
||||
S11302A0887F808F82E0878B8AEF9FEF35C08981BA
|
||||
S11302B0813049F018F08230D9F025C0F2E0CF1A2D
|
||||
S11302C0D10829F40EC082E0F50180831CC0F2013C
|
||||
S11302D0A22DB32D4C0C5D1C81918D93E415F50575
|
||||
S11302E0D9F7F301D182C08286E0F50180830BC087
|
||||
S11302F084E0F5018083808D887F808F82E0878B06
|
||||
S11303008AEF9FEF09C08091430390914403F50164
|
||||
S11303109283818380E090E00FB6F8949EBE0FBE76
|
||||
S11303208DBE0F900F900F900F90DF91CF911F9182
|
||||
S11303300F91FF90EF90DF90CF90BF90AF909F9080
|
||||
S11303408F907F906F905F904F903F902F90089583
|
||||
S1130350FC0121813281261B370B32832183121643
|
||||
S113036013061CF480E090E008958BEF9FEF08954E
|
||||
S1130370FC01E627FF27EE0FFF1FEA5EFE4F892FE1
|
||||
S1130380992720813181822793270895FA0193E8E0
|
||||
S1130390980F923070F420813181A9014F5F5F4F33
|
||||
S11303A051834083DB01A20FB31F9DE79C9390E22E
|
||||
S11303B0892720813181A9014F5F5F4F5183408399
|
||||
S11303C0FB01E20FF31F80830895982F80FF0BC079
|
||||
S11303D086958695837011F082E001C081E0929544
|
||||
S11303E09695977003C09695977080E097700895DE
|
||||
S11303F0FC019081913049F018F0923061F011C005
|
||||
S113040081818770880F8061089581818295880F2A
|
||||
S1130410807E8160089581818295880F807E8960C5
|
||||
S1130420089580E00895FC018FEF9FEF928381830C
|
||||
S1130430968385839483838312861186108617821C
|
||||
S1130440108208953F924F925F926F927F928F92A3
|
||||
S11304509F92AF92BF92CF92DF92EF92FF920F934F
|
||||
S11304601F93CF93DF9300D000D0CDB7DEB70097B2
|
||||
S113047009F4EAC06115710509F4E9C04115510593
|
||||
S113048009F4E8C00115110509F4E7C0E114F10409
|
||||
S113049009F4E6C0380149017A8369839C838B831C
|
||||
S11304A02115310509F499C08A01C12CD12C689415
|
||||
S11304B0442445F833243394590121E0A21AB108A5
|
||||
S11304C0AB81BC8113968D919C91149799239CF4D4
|
||||
S11304D0F80180818E3709F070C0CA14DB0420F45F
|
||||
S11304E081818E3709F470C0EB81FC81878190850E
|
||||
S11304F09483838362C0F80150802EE7521219C09E
|
||||
S1130500CA14DB0420F421812E3709F45DC0AB81C9
|
||||
S1130510BC8117962D913C911897AC014F5F5F4FAA
|
||||
S11305204217530709F450C016963C932E9315971F
|
||||
S11305305DC0BDE75B1204C0EB81FC8130823DC02D
|
||||
S1130540AB81BC818C91882319F01C925080542477
|
||||
S1130550652DEB81FC81818192810E94B801AB8180
|
||||
S1130560BC8112969C938E93119717962D913C9172
|
||||
S1130570189713968D919C91149702962817390712
|
||||
S113058041F4852D0E94E501E981FA8191838083FC
|
||||
S113059014C0821793078CF4AB81BC8119968D919A
|
||||
S11305A09C911A979C012F5F3F4F1A963C932E9370
|
||||
S11305B01997F301E80FF91F5082EB81FC818781C1
|
||||
S11305C09085019690878783FFEFCF1ADF0A0F5F2C
|
||||
S11305D01F4F8C149D0409F073CFAB81BC8113961B
|
||||
S11305E08D919C91149799233CF06401EB81FC81DB
|
||||
S11305F025813681332334F4D7011D921C928EE079
|
||||
S113060092ED30C00496281739073CF0EB81FC8149
|
||||
S113061081819281883B904F31F0D701CD92DC9259
|
||||
S11306200EE012ED0AC0EB81FC8181859285029770
|
||||
S1130630D7018D939C930C2D1D2D8B819C810E9441
|
||||
S11306401302802F912F0EC08EE092ED0BC08EE02E
|
||||
S113065092ED08C08EE092ED05C08EE092ED02C0EE
|
||||
S11306608EE092ED0F900F900F900F90DF91CF914D
|
||||
S11306701F910F91FF90EF90DF90CF90BF90AF90BC
|
||||
S11306809F908F907F906F905F904F903F900895D0
|
||||
S11306905F926F927F928F929F92AF92BF92CF920E
|
||||
S11306A0DF92EF92FF920F931F93CF93DF9300D0CB
|
||||
S11306B0CDB7DEB7009709F473C06115710521F455
|
||||
S11306C04115510509F06FC02115310509F46EC0BB
|
||||
S11306D00115110509F46DC0380179015A014B0166
|
||||
S11306E08C0181E090E09A8389838EE7F90180830D
|
||||
S11306F06FEF8FEF9FEF0E94B8016C01AE014F5F67
|
||||
S11307005F4FB7018FEF0E94C601C8010E94F80134
|
||||
S1130710582E682FC6010E94B8016C01AE014F5FCC
|
||||
S11307205F4FB701852D0E94C601F80180818111B8
|
||||
S113073019C0A114B104B1F084018A0C9B1C5801A6
|
||||
S1130740F80161918F01C6010E94B8016C01AE01EC
|
||||
S11307504F5F5F4FB701F50180810E94C60180168B
|
||||
S1130760910669F7C094D094AE014F5F5F4FB70113
|
||||
S11307708C2D0E94C601AE014F5F5F4FB7018D2DD6
|
||||
S11307800E94C60189819A81F701E80FF91F2EE7BB
|
||||
S113079020830196F3019183808380E090E00BC075
|
||||
S11307A08EE092ED08C08EE092ED05C08EE092EDF1
|
||||
S11307B002C08EE092ED0F900F90DF91CF911F91C8
|
||||
S11307C00F91FF90EF90DF90CF90BF90AF909F90EC
|
||||
S11307D08F907F906F905F900895CF93882331F02E
|
||||
S11307E08091420381608093420305C0809142035B
|
||||
S11307F08E7F809342038091420382608093420300
|
||||
S11308006091420380E00E94950662E080E00E94CD
|
||||
S1130810D60600C064E080E00E948106C82F62E032
|
||||
S113082080E00E94DA0600C062E080E00E94D60602
|
||||
S113083000C064E080E00E948106C295C07F8F7092
|
||||
S1130840C82B62E080E00E94DA068C2FCF910895D5
|
||||
S113085080E00E94ED038823DCF300C080E00E9466
|
||||
S1130860ED03089562E080E00E94D60600C062E0D5
|
||||
S113087080E00E94DA060895CF93C82F662331F0F2
|
||||
S11308808091420381608093420305C080914203BA
|
||||
S11308908E7F80934203809142038D7F8093420335
|
||||
S11308A06091420380E00E949506809142038F7715
|
||||
S11308B080934203809142038F7B80934203809113
|
||||
S11308C042038F7D80934203809142038F7E809305
|
||||
S11308D04203CC232CF4809142038068809342032A
|
||||
S11308E0C6FF05C080914203806480934203C5FF24
|
||||
S11308F005C080914203806280934203C4FF05C017
|
||||
S1130900809142038061809342036091420380E0BE
|
||||
S11309100E9495060E943204809142038F7780934F
|
||||
S11309204203809142038F7B809342038091420370
|
||||
S11309308F7D80934203809142038F7E8093420394
|
||||
S1130940C3FF05C080914203806880934203C2FFC5
|
||||
S113095005C080914203806480934203C1FF05C0B7
|
||||
S113096080914203806280934203C0FF05C080915E
|
||||
S113097042038061809342036091420380E00E94BD
|
||||
S113098095060E9432048091420380618093420361
|
||||
S11309908091420380628093420380914203806489
|
||||
S11309A08093420380914203806880934203609164
|
||||
S11309B0420380E00E949506CF910895CF93C82FFB
|
||||
S11309C00E94280460E08C2F0E943C04CF9108957B
|
||||
S11309D0611104C080580E94DE04089580540E946E
|
||||
S11309E0DE04089581E00E94DE040895882331F036
|
||||
S11309F080914203877F8093420305C08091420324
|
||||
S1130A008860809342036091420380E00E949506CF
|
||||
S1130A10089582E00E94DE040895CF93C82F0E94B7
|
||||
S1130A202804CA3049F4803410F080E001C080E426
|
||||
S1130A3080580E94DE0413C0803129F460E080EC09
|
||||
S1130A400E943C0406C0803521F460E080E80E94E6
|
||||
S1130A503C040E94280461E08C2F0E943C04CF9146
|
||||
S1130A600895CF93DF93EC012196FC0180818823C4
|
||||
S1130A7029F00E940D0589918111FBCFDF91CF915F
|
||||
S1130A8008951F93CF93DF93182F0E947806109236
|
||||
S1130A9042036091420380E00E94950680EA9FE051
|
||||
S1130AA00197F1F780914203806280934203809121
|
||||
S1130AB042038061809342036091420380E00E947C
|
||||
S1130AC095060E94320480EE94E00197F1F70E94AB
|
||||
S1130AD03204C0E1D0E0CE010197F1F70E94320464
|
||||
S1130AE0CE010197F1F7809142038F7E80934203F8
|
||||
S1130AF06091420380E00E9495060E94320421978F
|
||||
S1130B00F1F788E20E94DE0488E00E94DE040E947D
|
||||
S1130B10F20486E00E94DE04812F0E94DE04DF914D
|
||||
S1130B20CF911F9108958DE00E9441050E9409050F
|
||||
S1130B3080E00E94F6040895CF92DF92EF92FF9234
|
||||
S1130B400F931F93CF93DF938C017B01C901F801AD
|
||||
S1130B5001900020E9F73197BF01601B710B0E94DF
|
||||
S1130B60760B670120E1C20ED11CE7019C012E190E
|
||||
S1130B703F09F80101900020E9F73197BF01601B9C
|
||||
S1130B80710BC9018C0F9D1F0E94760BF801E80FB1
|
||||
S1130B90F91F80818993CC15DD0559F7F701108A77
|
||||
S1130BA0DF91CF911F910F91FF90EF90DF90CF9045
|
||||
S1130BB00895AF92BF92CF92DF92EF92FF920F937C
|
||||
S1130BC01F931F930F93FF92EF925F934F933F9363
|
||||
S1130BD02F939F938F937F936F9386E193E09F93DB
|
||||
S1130BE08F93BF92AF92DF92CF920E94AF0B8DB7DB
|
||||
S1130BF09EB742960FB6F8949EBF0FBE8DBF1F914D
|
||||
S1130C000F91FF90EF90DF90CF90BF90AF90089539
|
||||
S1130C106F927F92AF92BF92CF92DF92EF92FF9248
|
||||
S1130C200F931F93CF93DF93CDB7DEB7C254D1098F
|
||||
S1130C300FB6F894DEBF0FBECDBF3C01209149032F
|
||||
S1130C4030914A0341E150E0BE016F5F7F4F0E9443
|
||||
S1130C509C05F301E85BFF4FE080F1800281138182
|
||||
S1130C60349720813181428153813497608171812D
|
||||
S1130C70828193810F2EF1E1AF2EB12CF02DFE0174
|
||||
S1130C8072966F010E94D90540E150E0BE016F5F8A
|
||||
S1130C907F4FCE0183960E948A0B40E150E0B6015B
|
||||
S1130CA0CE01C3960E948A0B60E080E00E94E804B3
|
||||
S1130CB0CE0183960E94310561E080E00E94E80441
|
||||
S1130CC0CE01C3960E943105CE5BDF4F0FB6F89478
|
||||
S1130CD0DEBF0FBECDBFDF91CF911F910F91FF906B
|
||||
S1130CE0EF90DF90CF90BF90AF907F906F9008957A
|
||||
S1130CF00E94DE0683E08A95F1F7000010924B0310
|
||||
S1130D00089581110EC0683070F480914B03082E51
|
||||
S1130D10000C990B02C0959587956A95E2F781704E
|
||||
S1130D2008958FEF08958FEF0895CF9381110DC02B
|
||||
S1130D30C62F60934B038EE40E94E4068C2F0E941E
|
||||
S1130D4014070E940B0780E001C08FEFCF91089534
|
||||
S1130D50CF93DF93811124C0683020F580914B0339
|
||||
S1130D60442349F0C1E0D0E002C0CC0FDD1F6A95F6
|
||||
S1130D70E2F7C82B09C0C1E0D0E002C0CC0FDD1FF0
|
||||
S1130D806A95E2F7C095C823C0934B038EE40E9492
|
||||
S1130D90E4068C2F0E9414070E940B0780E003C016
|
||||
S1130DA08FEF01C08FEFDF91CF91089541E00E9452
|
||||
S1130DB0A806089540E00E94A80608951092B9007C
|
||||
S1130DC08DEF8093B800089594EA9093BC00ECEB07
|
||||
S1130DD0F0E090819923ECF79091B900987F9830D6
|
||||
S1130DE011F09031A1F48093BB0084E88093BC009F
|
||||
S1130DF0ECEBF0E080818823ECF79091B900987FC8
|
||||
S1130E00983139F081E0903429F480E0089581E04C
|
||||
S1130E10089580E0089584E98093BC00ECEBF0E051
|
||||
S1130E20808184FDFDCF08958093BB0084E8809386
|
||||
S1130E30BC00ECEBF0E080818823ECF79091B900E2
|
||||
S1130E40987F81E0983209F480E008954F925F9290
|
||||
S1130E506F927F928F929F92AF92BF92CF92DF92C6
|
||||
S1130E60EF92FF920F931F93CF93DF93CDB7DEB72B
|
||||
S1130E70C350D2400FB6F894DEBF0FBECDBF0E9460
|
||||
S1130E8093050E949E0A68EC70E0CE0101960E94D0
|
||||
S1130E905300CE0101960E946C004AE050E0BE016E
|
||||
S1130EA0665E7F4FCE0101960E9491006AE070E079
|
||||
S1130EB0CE014A960E94AA0A64E170E0CE018051F4
|
||||
S1130EC09E4F0E94CE0A61E070E0CE0101960E941E
|
||||
S1130ED0A801059681F44AE050E0BE01665E7F4FAA
|
||||
S1130EE0CE0101960E9491006AE070E0CE014A961C
|
||||
S1130EF00E94AA0AE1CF00E010E020E030E044E1E3
|
||||
S1130F0050E0BE0160517E4FCE0101960E94070160
|
||||
S1130F108C019923ACF40A3F8FEF1807B1F444E134
|
||||
S1130F2050E0BE01605A7E4FCE0101960E949100AE
|
||||
S1130F3064E170E0CE01805A9E4F0E94AA0A05C067
|
||||
S1130F408981823009F0B8CF03C0802F912FFEC071
|
||||
S1130F5084EA90E7ADE9BFE38CA39DA3AEA3BFA34E
|
||||
S1130F608DEC9CECA0EBB1E488A799A7AAA7BBA73A
|
||||
S1130F7080E090E0A8ECB2E48CA79DA7AEA7BFA741
|
||||
S1130F8083E090E099AB88AB85E293E09BAB8AABBE
|
||||
S1130F9082E090E09DAB8CAB2E01E6E74E0E511C37
|
||||
S1130FA05F924F923E01F6E36F0E711C7F926F9237
|
||||
S1130FB08CA09DA0AEA0BFA0C8A4D9A4EAA4FBA401
|
||||
S1130FC00CA51DA52EA53FA548A959A96AA97BA9C9
|
||||
S1130FD08CA99DA90E945C09F20140815181B30151
|
||||
S1130FE0CE0101960E94760048E450E0BE016858A4
|
||||
S1130FF07F4FCE0101960E94910068E470E0CE011B
|
||||
S113100088589F4F0E94AA0A0F900F900F900F903C
|
||||
S113101060E970E0CE01805A9E4F0E94CE0A61E0E2
|
||||
S113102070E0CE0101960E94A801059689F448E477
|
||||
S113103050E0BE0168587F4FCE0101960E94910096
|
||||
S113104068E470E0CE0188589F4F0E94AA0AE0CF5E
|
||||
S11310508E0113959E0120543F4F40E950E0BE019C
|
||||
S1131060605A7E4FCE0101960E9407018C0199239C
|
||||
S11310709CF40696B1F444E150E0BE0160517E4F09
|
||||
S1131080CE0101960E94910064E170E0CE0180518E
|
||||
S11310909E4F0E94AA0A05C08981863009F0B8CF04
|
||||
S11310A003C0802F912F52C0C050DF4F68817981D7
|
||||
S11310B0C050D140AE014E5F5E4FCE0180549F4F71
|
||||
S11310C00E94BE08CE5FDE4F88819981AA81BB81D0
|
||||
S11310D0C250D140CC5ADE4F88839983AA83BB8304
|
||||
S11310E0C455D140CA5FDE4F88819981AA81BB81F2
|
||||
S11310F0C650D140C85ADE4F88839983AA83BB83E4
|
||||
S1131100C855D140C65FDE4F88819981AA81BB81D1
|
||||
S1131110CA50D140C45ADE4F88839983AA83BB83C3
|
||||
S1131120CC55D140C05FDE4F68817981C051D14038
|
||||
S11311304FE350E0CE018C5E9E4F0E948A0BCE019D
|
||||
S11311408C5E9E4F0E94080680E090E0CD5FDD4FEC
|
||||
S11311500FB6F894DEBF0FBECDBFDF91CF911F91C4
|
||||
S11311600F91FF90EF90DF90CF90BF90AF909F9042
|
||||
S11311708F907F906F905F904F9008958F929F9281
|
||||
S1131180AF92BF92CF92DF92EF92FF920F931F9391
|
||||
S1131190CF93DF93CDB7DEB7C054D1090FB6F8941F
|
||||
S11311A0DEBF0FBECDBF4B01672B09F46CC020E03E
|
||||
S11311B030E060E070E0A12CB12C6E01E5E0CE0ED1
|
||||
S11311C0D11CFE0131967F01FC01E20FF31F208147
|
||||
S11311D0211127C0DB011196A80FB91FFE0131961A
|
||||
S11311E02D912193EC15FD05D9F76C5F7F4FF50127
|
||||
S11311F0EE0FFF1FEE0FFF1FE40FF51F09811A8189
|
||||
S11312002B813C810083118322833383FA0124855B
|
||||
S113121035852F5F3F4F3587248795012F5F3F4FDB
|
||||
S11312205901FC01E60FF71F2081213021F59B01B4
|
||||
S11312302F5F3F4FFC01E20FF31FE081EE2399F093
|
||||
S11312406E5F7F4FDC01A60FB71FF701B9016F5F17
|
||||
S11312507F4F2D91219330E08F010E191F09021742
|
||||
S11312601307ACF301C0B90129813A81FA01378728
|
||||
S11312702687118A108A6F5F7F4F9B016815790555
|
||||
S113128008F4A2CF02C0A12CB12CFA01B586A48621
|
||||
S1131290C05CDF4F0FB6F894DEBF0FBECDBFDF9149
|
||||
S11312A0CF911F910F91FF90EF90DF90CF90BF905F
|
||||
S11312B0AF909F908F9008954F925F926F927F921C
|
||||
S11312C08F929F92AF92BF92CF92DF92EF92FF9252
|
||||
S11312D00F931F93CF93DF93CDB7DEB7C255D109D8
|
||||
S11312E00FB6F894DEBF0FBECDBF22968FAE229705
|
||||
S11312F023969FAE23972496AFAE24972596BFAE30
|
||||
S113130025972696CFAE26972796DFAE2797289661
|
||||
S1131310EFAE28972996FFAE29972A960FAF2A9702
|
||||
S11313202B961FAF2B972C962FAF2C972D963FAF54
|
||||
S11313302D972E964FAF2E972F965FAF2F976096CF
|
||||
S11313406FAF609761967FAF619762968FAF629738
|
||||
S113135063969FAF6397A7960EAD1FADA7972F9681
|
||||
S1131360CEACDFAC2F9763966EAD7FAD6397C1149F
|
||||
S1131370D10409F466C07801CE018F5B9F4F5601FA
|
||||
S1131380AA0CBB1CAA0CBB1CA80EB91EAE014B5F59
|
||||
S11313905F4FF7011192DC014D905D906D907D904F
|
||||
S11313A0CD0149825A826B827C82DE0111963D9185
|
||||
S11313B03193A417B507D9F7B5E0EB0EF11C8A15E4
|
||||
S11313C09B0539F79601220F331F220F331F2C0D73
|
||||
S11313D03D1D6115710509F1D801A20FB31F81E00C
|
||||
S11313E08C93D9011196A00FB11F2E5F3F4F6C93C0
|
||||
S11313F061968EAD9FAD61979A838983DE011196C4
|
||||
S1131400F801E20FF31F80E090E02F5F3F4F4D9112
|
||||
S11314104193019686179707C0F3A996EEADFFADE9
|
||||
S1131420A9973183208313C081E0F801808361830D
|
||||
S113143061968EAD9FAD61979A83898322E030E0F7
|
||||
S1131440DDCF6115710581F720E030E0E6CFCE5A9B
|
||||
S1131450DF4F0FB6F894DEBF0FBECDBFDF91CF9143
|
||||
S11314601F910F91FF90EF90DF90CF90BF90AF90BE
|
||||
S11314709F908F907F906F905F904F900895FC01A4
|
||||
S113148081E090E030A121A1321711F080E090E0DA
|
||||
S11314900895FC0121A130E02F5F3F4F2F71307878
|
||||
S11314A0332334F421503109206E3F6F2F5F3F4FB7
|
||||
S11314B0FC0140A150E081E090E02417350711F0D1
|
||||
S11314C080E090E008951F93CF93DF93EC01162FF3
|
||||
S11314D00E94490A892B81F489A190E0FE01E80F5A
|
||||
S11314E0F91F108301968F719078992324F4019742
|
||||
S11314F0806E9F6F019689A3DF91CF911F9108950C
|
||||
S1131500FC0120A181A12817B1F030E0DF01A20F76
|
||||
S1131510B31F4C9150E02F5F3F4F2F71307833232E
|
||||
S113152034F421503109206E3F6F2F5F3F4F20A3C9
|
||||
S1131530842F952F08958FEF9FEF089588EF809360
|
||||
S1131540C10086E08093C2001092C50087E68093B4
|
||||
S1131550C40008950F931F93CF93DF936115710512
|
||||
S113156099F08C01EC01060F171F8EE693E00E94A0
|
||||
S1131570490A892B49F4699170E08EE693E00E9450
|
||||
S1131580630AC017D10789F7E1ECF0E08081806439
|
||||
S11315908083DF91CF911F910F9108958F929F9235
|
||||
S11315A0AF92BF92CF92DF92EF92FF920F931F936D
|
||||
S11315B0CF93DF938B01EC01C12CD12C76014B012D
|
||||
S11315C0A12CB12C0AC08CE493E00E94800A899378
|
||||
S11315D08FEFC81AD80AE80AF80A8CE493E00E944C
|
||||
S11315E03F0A892B29F4C814D904EA04FB0458F3EC
|
||||
S11315F020E030E00C151D052E053F0510F0C60156
|
||||
S113160002C08FEF9FEFDF91CF911F910F91FF9059
|
||||
S1131610EF90DF90CF90BF90AF909F908F90089500
|
||||
S11316201F920F920FB60F9211242F933F934F9353
|
||||
S11316305F936F937F938F939F93AF93BF93CF9356
|
||||
S1131640EF93FF93C091C6008CE493E00E94490A93
|
||||
S1131650892B31F46C2F70E08CE493E00E94630AD0
|
||||
S1131660FF91EF91CF91BF91AF919F918F917F9116
|
||||
S11316706F915F914F913F912F910F900FBE0F90FB
|
||||
S11316801F9018951F920F920FB60F9211242F934B
|
||||
S11316903F934F935F936F937F938F939F93AF93F6
|
||||
S11316A0BF93EF93FF938EE693E00E943F0A892B4A
|
||||
S11316B039F48EE693E00E94800A8093C60005C048
|
||||
S11316C0E1ECF0E080818F7B8083FF91EF91BF910B
|
||||
S11316D0AF919F918F917F916F915F914F913F91C6
|
||||
S11316E02F910F900FBE0F901F901895AA1BBB1B34
|
||||
S11316F051E107C0AA1FBB1FA617B70710F0A61B0E
|
||||
S1131700B70B881F991F5A95A9F780959095BC012E
|
||||
S1131710CD010895FB01DC014150504048F0019097
|
||||
S11317200D920020C9F701C01D9241505040E0F7CE
|
||||
S11317300895A0E0B0E0EFE9FBE00C94800EAE0168
|
||||
S11317404B5F5F4FFA0161917191AF0180919203F8
|
||||
S1131750909193030E94DF0BE2E00C949C0EAEE0A8
|
||||
S1131760B0E0E5EBFBE00C947E0E0D891E898F89B9
|
||||
S1131770988D26E02C831A83098397FF02C080E0AA
|
||||
S113178090E801979E838D83AE01455E5F4F698D1E
|
||||
S11317907A8DCE0101960E94DF0B4D815E8157FD4B
|
||||
S11317A00AC02F813885421753070CF49A01F801B7
|
||||
S11317B0E20FF31F10822E96E4E00C949A0EABE035
|
||||
S11317C0B0E0E5EEFBE00C94700E6C017B018A0145
|
||||
S11317D0FC0117821682838181FFCCC1CE01019660
|
||||
S11317E03C01F6019381F70193FD859193FF81916B
|
||||
S11317F07F01882309F4BAC1853239F493FD8591B8
|
||||
S113180093FF81917F01853229F4B60190E00E9413
|
||||
S1131810D60DE7CF912C212C312CFFE1F315D8F014
|
||||
S11318208B3279F038F4803279F08332A1F4232DAD
|
||||
S113183020611DC08D3261F0803369F4232D216055
|
||||
S113184016C0832D8260382EE32DE4603E2E2AC01C
|
||||
S1131850F32DF8601DC037FC2DC020ED280F2A3071
|
||||
S113186040F08E32B9F436FC81C1232D2064322E2F
|
||||
S113187019C036FE06C08AE0989E200D1124922ECF
|
||||
S113188011C0EAE02E9E200D1124222EF32DF062C9
|
||||
S11318903F2E08C08C3621F4832D8068382E02C078
|
||||
S11318A0883641F4F70193FD859193FF81917F017F
|
||||
S11318B08111B3CF982F9F7D9554933028F40C5FFA
|
||||
S11318C01F4F9FE399830DC0833631F0833771F046
|
||||
S11318D0833509F059C021C0F801808189830E5FE6
|
||||
S11318E01F4F88248394912C530113C02801F2E0E4
|
||||
S11318F04F0E511CF801A080B18036FE03C0692D43
|
||||
S113190070E002C06FEF7FEFC5010E94CB0D4C0168
|
||||
S11319108201F32DFF773F2E16C0280122E0420EEC
|
||||
S1131920511CF801A080B18036FE03C0692D70E01F
|
||||
S113193002C06FEF7FEFC5010E94C00D4C01F32D73
|
||||
S1131940F0683F2E820133FC1BC0822D90E0881684
|
||||
S11319509906B0F4B60180E290E00E94D60D2A9474
|
||||
S1131960F4CFF50137FC859137FE81915F01B60113
|
||||
S113197090E00E94D60D21102A9421E0821A910849
|
||||
S11319808114910471F7E8C0843611F0893641F569
|
||||
S1131990F80137FE07C060817181828193810C5FF9
|
||||
S11319A01F4F08C060817181072E000C880B990BB2
|
||||
S11319B00E5F1F4FF32DFF763F2E97FF09C09095C2
|
||||
S11319C08095709561957F4F8F4F9F4FF0683F2EA4
|
||||
S11319D02AE030E0A3010E94120E882E861845C02A
|
||||
S11319E0853731F4232D2F7EB22E2AE030E025C036
|
||||
S11319F0932D997FB92E8F36C1F018F4883579F07C
|
||||
S1131A00B5C0803719F0883721F0B0C0E92FE06104
|
||||
S1131A10BE2EB4FE0DC0FB2DF460BF2E09C034FEF3
|
||||
S1131A200AC0292F2660B22E06C028E030E005C087
|
||||
S1131A3020E130E002C020E132E0F801B7FE07C047
|
||||
S1131A4060817181828193810C5F1F4F06C0608128
|
||||
S1131A50718180E090E00E5F1F4FA3010E94120E7F
|
||||
S1131A60882E8618FB2DFF773F2E36FE0DC0232DC2
|
||||
S1131A702E7FA22E891458F434FE0BC032FC09C008
|
||||
S1131A80832D8E7EA82E05C0B82CA32C03C0B82CA1
|
||||
S1131A9001C0B92CA4FE0FC0FE01E80DF11D808128
|
||||
S1131AA0803321F49A2D997EA92E09C0A2FE06C086
|
||||
S1131AB0B394B39404C08A2D867809F0B394A3FC3C
|
||||
S1131AC011C0A0FE06C0B21488F4280C922C9B18F6
|
||||
S1131AD00EC0B21460F4B60180E290E00E94D60D0C
|
||||
S1131AE0B394F7CFB21418F42B1802C0982C212CFD
|
||||
S1131AF0A4FE10C0B60180E390E00E94D60DA2FEC1
|
||||
S1131B0017C0A1FC03C088E790E002C088E590E01C
|
||||
S1131B10B6010CC08A2D867859F0A1FE02C08BE272
|
||||
S1131B2001C080E2A7FC8DE2B60190E00E94D60DD0
|
||||
S1131B30891438F4B60180E390E00E94D60D9A949B
|
||||
S1131B40F7CF8A94F301E80DF11D8081B60190E08E
|
||||
S1131B500E94D60D8110F5CF222009F442CEB601A1
|
||||
S1131B6080E290E00E94D60D2A94F6CFF601868199
|
||||
S1131B70978102C08FEF9FEF2B96E2E10C948C0EBD
|
||||
S1131B80FC010590615070400110D8F78095909544
|
||||
S1131B908E0F9F1F0895FC01615070400190011049
|
||||
S1131BA0D8F7809590958E0F9F1F08950F931F93DC
|
||||
S1131BB0CF93DF93FB01238121FD03C08FEF9FEFC0
|
||||
S1131BC02CC022FF16C046815781248135814217DB
|
||||
S1131BD0530744F4A081B1819D012F5F3F4F3183AE
|
||||
S1131BE020838C93268137812F5F3F4F3783268351
|
||||
S1131BF014C08B01EC01FB010084F185E02D0995F3
|
||||
S1131C00892BE1F6D80116968D919C911797019630
|
||||
S1131C1017969C938E931697CE01DF91CF911F91C7
|
||||
S1131C200F910895FA01AA27283051F1203181F14A
|
||||
S1131C30E8946F936E7F6E5F7F4F8F4F9F4FAF4FD0
|
||||
S1131C40B1E03ED0B4E03CD0670F781F891F9A1FE3
|
||||
S1131C50A11D680F791F8A1F911DA11D6A0F711D97
|
||||
S1131C60811D911DA11D20D009F468943F912AE0A3
|
||||
S1131C70269F11243019305D3193DEF6CF0108958B
|
||||
S1131C80462F4770405D4193B3E00FD0C9F7F6CFBC
|
||||
S1131C90462F4F70405D4A3318F0495D31FD405284
|
||||
S1131CA0419302D0A9F7EACFB4E0A695979587951A
|
||||
S1131CB077956795BA95C9F70097610571050895F9
|
||||
S1131CC09B01AC010A2E06945795479537952795A5
|
||||
S1131CD0BA95C9F7620F731F841F951FA01D08953D
|
||||
S1131CE02F923F924F925F926F927F928F929F9228
|
||||
S1131CF0AF92BF92CF92DF92EF92FF920F931F9316
|
||||
S1131D00CF93DF93CDB7DEB7CA1BDB0B0FB6F894C6
|
||||
S1131D10DEBF0FBECDBF09942A88398848885F8406
|
||||
S1131D206E847D848C849B84AA84B984C884DF8077
|
||||
S1131D30EE80FD800C811B81AA81B981CE0FD11D5B
|
||||
S1131D400FB6F894DEBF0FBECDBFED010895F89431
|
||||
S1051D50FFCFBF
|
||||
S1131D5265727220696E206765745F6672616D6573
|
||||
S1131D623A2025640A000000891112239B3224467A
|
||||
S1131D72AD573665BF74488CC19D5AAFD3BE6CCA89
|
||||
S1131D82E5DB7EE9F7F88110080193331A22A556A0
|
||||
S1131D922C47B7753E64C99C408DDBBF52AEEDDA69
|
||||
S1131DA264CBFFF976E802218B301002991326677F
|
||||
S1131DB2AF763444BD554AADC3BC588ED19F6EEB49
|
||||
S1131DC2E7FA7CC8F5D983310A2091121803A77760
|
||||
S1131DD22E66B5543C45CBBD42ACD99E508FEFFB29
|
||||
S1131DE266EAFDD874C904428D5316619F702004BB
|
||||
S1131DF2A9153227BB364CCEC5DF5EEDD7FC688809
|
||||
S1131E02E1997AABF3BA85520C4397711E60A1141F
|
||||
S1131E122805B3373A26CDDE44CFDFFD56ECE998E8
|
||||
S1131E226089FBBB72AA06638F7214409D512225FE
|
||||
S1131E32AB343006B9174EEFC7FE5CCCD5DD6AA9C8
|
||||
S1131E42E3B8788AF19B87730E6295501C41A335DF
|
||||
S1131E522A24B1163807CFFF46EEDDDC54CDEBB9A8
|
||||
S1131E6262A8F99A708B088481951AA793B62CC23A
|
||||
S1131E72A5D33EE1B7F04008C919522BDB3A644EB0
|
||||
S1131E82ED5F766DFF7C899400859BB712A6ADD277
|
||||
S1131E9224C3BFF136E0C1184809D33B5A2AE55E90
|
||||
S1131EA26C4FF77D7E6C0AA583B4188691972EE356
|
||||
S1131EB2A7F23CC0B5D14229CB38500AD91B666F70
|
||||
S1131EC2EF7E744CFD5D8BB502A499961087AFF337
|
||||
S1131ED226E2BDD034C1C3394A28D11A580BE77F50
|
||||
S1131EE26E6EF55C7C4D0CC685D71EE597F4288092
|
||||
S1131EF2A1913AA3B3B2444ACD5B5669DF78600C30
|
||||
S1131F02E91D722FFB3E8DD604C79FF516E4A990F6
|
||||
S1131F122081BBB332A2C55A4C4BD7795E68E11C0F
|
||||
S1131F22680DF33F7A2E0EE787F61CC495D52AA1D5
|
||||
S1131F32A3B03882B193466BCF7A5448DD59622DEF
|
||||
S1131F42EB3C700EF91F8FF706E69DD414C5ABB1B6
|
||||
S1131F5222A0B9923083C77B4E6AD5585C49E33DCF
|
||||
S1131F626A2CF11E780F252E32662E252E32662E0D
|
||||
S1131F72252E326600776F72642077617220696E53
|
||||
S1131F82206E657720776F726C6420696F206578A4
|
||||
S1051F92000049
|
||||
S9030000FC
|
45
hdlc_screen/Debug/main.d
Normal file
45
hdlc_screen/Debug/main.d
Normal file
@ -0,0 +1,45 @@
|
||||
main.d main.o: .././main.c .././hdlc/client.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
|
||||
.././hdlc/hdlc.h .././hdlc/fcs.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
.././UART/uart.h .././LCD/lcd.h .././Protocol/protocol.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
|
||||
|
||||
.././hdlc/client.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h:
|
||||
|
||||
.././hdlc/hdlc.h:
|
||||
|
||||
.././hdlc/fcs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
.././UART/uart.h:
|
||||
|
||||
.././LCD/lcd.h:
|
||||
|
||||
.././Protocol/protocol.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
BIN
hdlc_screen/Debug/main.o
Normal file
BIN
hdlc_screen/Debug/main.o
Normal file
Binary file not shown.
26
hdlc_screen/Debug/makedep.mk
Normal file
26
hdlc_screen/Debug/makedep.mk
Normal file
@ -0,0 +1,26 @@
|
||||
################################################################################
|
||||
# Automatically-generated file. Do not edit or delete the file
|
||||
################################################################################
|
||||
|
||||
hdlc\client.c
|
||||
|
||||
hdlc\fcs.c
|
||||
|
||||
hdlc\hdlc.c
|
||||
|
||||
LCD\lcdpcf8574.c
|
||||
|
||||
LCD\Lcd_print.c
|
||||
|
||||
LCD\pcf8574.c
|
||||
|
||||
LCD\twimaster.c
|
||||
|
||||
main.c
|
||||
|
||||
protocol\protocol.c
|
||||
|
||||
UART\circular_buf.c
|
||||
|
||||
UART\uart.c
|
||||
|
28
hdlc_screen/Debug/protocol/protocol.d
Normal file
28
hdlc_screen/Debug/protocol/protocol.d
Normal file
@ -0,0 +1,28 @@
|
||||
protocol/protocol.d protocol/protocol.o: ../protocol/protocol.c \
|
||||
../protocol/protocol.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
|
||||
|
||||
../protocol/protocol.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
|
BIN
hdlc_screen/Debug/protocol/protocol.o
Normal file
BIN
hdlc_screen/Debug/protocol/protocol.o
Normal file
Binary file not shown.
@ -1,31 +1,24 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <MyLCD.h>
|
||||
#include <protocol.h>
|
||||
#include <Arduino.h>
|
||||
#include <cstddef>
|
||||
|
||||
struct DisplayData {
|
||||
char topLine[64];
|
||||
float value1;
|
||||
float value2;
|
||||
float value3;
|
||||
};
|
||||
#include "lcd_headers.h"
|
||||
#include "lcd.h"
|
||||
//#include "time.h"
|
||||
// #include <Arduino.h>
|
||||
//#include <cstddef>
|
||||
|
||||
struct TextCounter {
|
||||
unsigned long startTime;
|
||||
int incrementValue;
|
||||
};
|
||||
|
||||
TextCounter textCounter;
|
||||
struct TextCounter textCounter;
|
||||
|
||||
//struct TextCounter textCounter;
|
||||
|
||||
void Lcd_inciliation() {
|
||||
lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея
|
||||
lcd_home(); // домой курсор
|
||||
lcd_led(0); // вкл подсветки
|
||||
textCounter.startTime = millis(); // Запоминаем время запуска программы
|
||||
//textCounter.startTime = millis(); // Запоминаем время запуска программы
|
||||
//Из за строчки выше все ломается
|
||||
}
|
||||
|
||||
void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) {
|
||||
@ -42,30 +35,30 @@ void fillBuffer2(float value1, float value2, float value3, char* buffer, size_t
|
||||
snprintf(buffer, bufferSize, "%.2f.%.2f.%.2f", value1, value2, value3);
|
||||
}
|
||||
|
||||
void printLcd(struct message* decode_message) {
|
||||
unsigned long currentTime = millis(); // Текущее время
|
||||
void printLcd(struct DisplayData* displayData) {
|
||||
//unsigned long currentTime = millis(); // Текущее время
|
||||
// Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue
|
||||
if (currentTime - textCounter.startTime >= 500) {
|
||||
textCounter.incrementValue++; // Увеличиваем incrementValue на 1
|
||||
textCounter.startTime = currentTime; // Обновляем время
|
||||
}
|
||||
//if (currentTime - textCounter.startTime >= 500) {
|
||||
// textCounter.incrementValue++; // Увеличиваем incrementValue на 1
|
||||
// textCounter.startTime = currentTime; // Обновляем время
|
||||
//}
|
||||
|
||||
struct DisplayData displayData;
|
||||
strncpy(displayData.topLine, decode_message->str, sizeof(displayData.topLine) - 1);
|
||||
displayData.topLine[sizeof(displayData.topLine) - 1] = '\0';
|
||||
displayData.value1 = decode_message->numbers[0];
|
||||
displayData.value2 = decode_message->numbers[1];
|
||||
displayData.value3 = decode_message->numbers[2];
|
||||
//struct DisplayData displayData;
|
||||
//strncpy(displayData.topLine, decode_message->str, sizeof(displayData.topLine) - 1);
|
||||
//displayData.topLine[sizeof(displayData.topLine) - 1] = '\0';
|
||||
//displayData.value1 = displayDataResp->value1;
|
||||
//displayData.value2 = displayDataResp->value2;
|
||||
//displayData.value3 = displayDataResp->value3;
|
||||
|
||||
// Буферы для заполнения данных
|
||||
char buffer1[17];
|
||||
char buffer2[17];
|
||||
|
||||
// Заполнение буфера 1
|
||||
fillBuffer1(displayData.topLine, buffer1, sizeof(buffer1), textCounter.incrementValue);
|
||||
fillBuffer1(displayData->topLine, buffer1, sizeof(buffer1), textCounter.incrementValue);
|
||||
|
||||
// Заполнение буфера 2
|
||||
fillBuffer2(displayData.value1, displayData.value2, displayData.value3, buffer2, sizeof(buffer2));
|
||||
fillBuffer2(displayData->value1, displayData->value2, displayData->value3, buffer2, sizeof(buffer2));
|
||||
|
||||
// Создание массива для вывода на дисплей
|
||||
char displayArray[32];
|
||||
@ -80,21 +73,21 @@ void printLcd(struct message* decode_message) {
|
||||
lcd_puts(displayArray + 16); // Вывод второй половины displayArray
|
||||
}
|
||||
|
||||
void dder() {
|
||||
Lcd_inciliation();
|
||||
|
||||
uint8_t encode_message[100];
|
||||
size_t len_encode_message = 0;
|
||||
struct message message;
|
||||
|
||||
|
||||
// Получаем данные из протокола
|
||||
protocol_encode(message, encode_message, &len_encode_message);
|
||||
|
||||
// Декодируем данные из протокола
|
||||
struct message decode_message;
|
||||
protocol_decode(encode_message, len_encode_message, &decode_message);
|
||||
|
||||
// Выводим данные на экран
|
||||
printLcd(&decode_message);
|
||||
}
|
||||
//void dder() {
|
||||
// Lcd_inciliation();
|
||||
//
|
||||
// uint8_t encode_message[100];
|
||||
// size_t len_encode_message = 0;
|
||||
// struct message message;
|
||||
//
|
||||
//
|
||||
// // Получаем данные из протокола
|
||||
// protocol_encode(message, encode_message, &len_encode_message);
|
||||
//
|
||||
// // Декодируем данные из протокола
|
||||
// struct message decode_message;
|
||||
// protocol_decode(encode_message, len_encode_message, &decode_message);
|
||||
//
|
||||
// // Выводим данные на экран
|
||||
// printLcd(&decode_message);
|
||||
//}
|
14
hdlc_screen/LCD/lcd.h
Normal file
14
hdlc_screen/LCD/lcd.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef Lsd_print_h
|
||||
#define Lsd_print_h
|
||||
|
||||
struct DisplayData {
|
||||
char topLine[64];
|
||||
float value1;
|
||||
float value2;
|
||||
float value3;
|
||||
};
|
||||
|
||||
void Lcd_inciliation();
|
||||
void printLcd(struct DisplayData* displayData);
|
||||
|
||||
#endif
|
@ -1,9 +1,14 @@
|
||||
|
||||
#ifndef MYLCD_H_
|
||||
#define MYLCD_H_
|
||||
/*
|
||||
* lcd_headers.h
|
||||
*
|
||||
* Created: 22.02.2024 15:16:19
|
||||
* Author: 79513
|
||||
*/
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#ifndef LCD_HEADERS_H_
|
||||
#define LCD_HEADERS_H_
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdlib.h>
|
||||
@ -18,5 +23,4 @@
|
||||
#include "pcf8574.h"
|
||||
#include "i2cmaster.h"
|
||||
|
||||
|
||||
#endif
|
||||
#endif /* LCD_HEADERS_H_ */
|
@ -1,4 +1,4 @@
|
||||
#include "MyLCD.h"
|
||||
#include "lcd_headers.h"
|
||||
|
||||
// задержеки через асемблер
|
||||
#define lcd_e_delay() __asm__ __volatile__( "rjmp 1f\n 1:" );
|
@ -1,4 +1,4 @@
|
||||
#include "MyLCD.h"
|
||||
#include "lcd_headers.h"
|
||||
uint8_t pcf8574_pinstatus[PCF8574_MAXDEVICES];
|
||||
|
||||
// инициализация pcf
|
@ -1,4 +1,4 @@
|
||||
#include "MyLCD.h"
|
||||
#include "lcd_headers.h"
|
||||
|
||||
// инициализация интерфейса i2c
|
||||
void i2c_init(void)
|
15
hdlc_screen/Readme.md
Normal file
15
hdlc_screen/Readme.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Устройство с дисплеем на AVR
|
||||
* Команда: Лежнин Роман, Куршаков Кирилл, Деркачев Андрей, Чертков Максим
|
||||
|
||||
Лежнин Роман
|
||||
* Главный в группе
|
||||
* Внедрение протокола HDLC и разработка протокола
|
||||
|
||||
Куршаков Кирилл
|
||||
* Внедрение протокола UART
|
||||
|
||||
Чертков Максим
|
||||
* Отрисовка данных на дисплей
|
||||
|
||||
Деркачев Андрей
|
||||
* Соединения и рефактор блоков UART, HDLC и вывода
|
@ -7,7 +7,8 @@
|
||||
|
||||
#include "fcs.h"
|
||||
#include <errno.h>
|
||||
#include "stdint.h"
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
/** HDLC start/end flag sequence */
|
||||
#define HDLC_FLAG_SEQUENCE 0x7E
|
86
hdlc_screen/hdlc_screen.componentinfo.xml
Normal file
86
hdlc_screen/hdlc_screen.componentinfo.xml
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
|
||||
<ProjectComponents>
|
||||
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
|
||||
<CApiVersion></CApiVersion>
|
||||
<CBundle></CBundle>
|
||||
<CClass>Device</CClass>
|
||||
<CGroup>Startup</CGroup>
|
||||
<CSub></CSub>
|
||||
<CVariant></CVariant>
|
||||
<CVendor>Atmel</CVendor>
|
||||
<CVersion>1.2.0</CVersion>
|
||||
<DefaultRepoPath>D:/atmelstudio\7.0\Packs</DefaultRepoPath>
|
||||
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||
<Description></Description>
|
||||
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>include</Category>
|
||||
<Condition>C</Condition>
|
||||
<FileContentHash i:nil="true" />
|
||||
<FileVersion></FileVersion>
|
||||
<Name>include</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include\avr\iom328p.h</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>header</Category>
|
||||
<Condition>C</Condition>
|
||||
<FileContentHash>UMk4QUzkkuShabuoYtNl/Q==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>include/avr/iom328p.h</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.c</AbsolutePath>
|
||||
<Attribute>template</Attribute>
|
||||
<Category>source</Category>
|
||||
<Condition>C Exe</Condition>
|
||||
<FileContentHash>7MqOviI+fX8DsJg4frGlyg==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>templates/main.c</Name>
|
||||
<SelectString>Main file (.c)</SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.cpp</AbsolutePath>
|
||||
<Attribute>template</Attribute>
|
||||
<Category>source</Category>
|
||||
<Condition>C Exe</Condition>
|
||||
<FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>templates/main.cpp</Name>
|
||||
<SelectString>Main file (.cpp)</SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>libraryPrefix</Category>
|
||||
<Condition>GCC</Condition>
|
||||
<FileContentHash i:nil="true" />
|
||||
<FileVersion></FileVersion>
|
||||
<Name>gcc/dev/atmega328p</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
</Files>
|
||||
<PackName>ATmega_DFP</PackName>
|
||||
<PackPath>D:/atmelstudio/7.0/Packs/atmel/ATmega_DFP/1.2.209/Atmel.ATmega_DFP.pdsc</PackPath>
|
||||
<PackVersion>1.2.209</PackVersion>
|
||||
<PresentInProject>true</PresentInProject>
|
||||
<ReferenceConditionId>ATmega328P</ReferenceConditionId>
|
||||
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||
<d4p1:string></d4p1:string>
|
||||
</RteComponents>
|
||||
<Status>Resolved</Status>
|
||||
<VersionMode>Fixed</VersionMode>
|
||||
<IsComponentInAtProject>true</IsComponentInAtProject>
|
||||
</ProjectComponent>
|
||||
</ProjectComponents>
|
||||
</Store>
|
185
hdlc_screen/hdlc_screen.cproj
Normal file
185
hdlc_screen/hdlc_screen.cproj
Normal file
@ -0,0 +1,185 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>7.0</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
|
||||
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
|
||||
<avrdevice>ATmega328P</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>C</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>hdlc_screen</AssemblyName>
|
||||
<Name>hdlc_screen</Name>
|
||||
<RootNamespace>hdlc_screen</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||
<UncachedRange />
|
||||
<preserveEEPROM>true</preserveEEPROM>
|
||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||
<BootSegment>2</BootSegment>
|
||||
<ResetRule>0</ResetRule>
|
||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||
<EraseKey />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="hdlc\client.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="hdlc\client.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="hdlc\fcs.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="hdlc\fcs.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="hdlc\hdlc.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="hdlc\hdlc.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\i2cmaster.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\lcd.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\lcdpcf8574.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\lcdpcf8574.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\lcd_headers.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\Lcd_print.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\pcf8574.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\pcf8574.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LCD\twimaster.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="main.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="protocol\protocol.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="protocol\protocol.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\circular_buf.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\circular_buf.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\uart.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\uart.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="hdlc" />
|
||||
<Folder Include="LCD" />
|
||||
<Folder Include="UART" />
|
||||
<Folder Include="protocol" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
@ -1,12 +1,10 @@
|
||||
//#include "Lсd_print/lcd.h"
|
||||
#include "hdlc/client.h"
|
||||
#include "UART/uart.h"
|
||||
#include "stdbool.h"
|
||||
//#include "stdio.h"
|
||||
#include "Lсd_print/lcd.h"
|
||||
//#include "protocol.h"
|
||||
#include "LCD/lcd.h"
|
||||
#include "Protocol/protocol.h"
|
||||
|
||||
int main() {
|
||||
int main(void) {
|
||||
struct Client hdlc;
|
||||
bool flag_connection = false;
|
||||
|
||||
@ -104,7 +102,14 @@ int main() {
|
||||
struct message resp;
|
||||
protocol_decode(data_recive, len_data_recive, &resp);
|
||||
|
||||
printLcd(&resp);
|
||||
struct DisplayData disp;
|
||||
disp.value1 = resp.numbers[0];
|
||||
disp.value2 = resp.numbers[1];
|
||||
disp.value3 = resp.numbers[2];
|
||||
//disp.topLine = *resp.str;
|
||||
strncpy(disp.topLine, resp.str, sizeof(disp.topLine) - 1);
|
||||
|
||||
printLcd(&disp);
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include "MyLCD.h"
|
||||
#include "protocol.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
struct DisplayData {
|
||||
char topLine[64];
|
||||
float value1;
|
||||
float value2;
|
||||
float value3;
|
||||
};
|
||||
|
||||
struct TextCounter {
|
||||
unsigned long startTime;
|
||||
int incrementValue;
|
||||
};
|
||||
|
||||
TextCounter textCounter;
|
||||
|
||||
void Lcd_inciliation() {
|
||||
lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея
|
||||
lcd_home(); // домой курсор
|
||||
lcd_led(0); // вкл подсветки
|
||||
textCounter.startTime = millis(); // Запоминаем время запуска программы
|
||||
}
|
||||
|
||||
void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) {
|
||||
int startIndex = incrementValue % strlen(source); // Определяем начальный индекс на основе incrementValue
|
||||
int endIndex = startIndex + 16;
|
||||
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
buffer[i] = source[(startIndex + i) % strlen(source)];
|
||||
}
|
||||
buffer[16] = '\0'; // Установка нулевого символа в конце буфера
|
||||
}
|
||||
|
||||
void fillBuffer2(float value1, float value2, float value3, char* buffer, size_t bufferSize) {
|
||||
snprintf(buffer, bufferSize, "%.2f.%.2f.%.2f", value1, value2, value3);
|
||||
}
|
||||
|
||||
void printLcd(struct message* decode_message) {
|
||||
unsigned long currentTime = millis(); // Текущее время
|
||||
// Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue
|
||||
if (currentTime - textCounter.startTime >= 500) {
|
||||
textCounter.incrementValue++; // Увеличиваем incrementValue на 1
|
||||
textCounter.startTime = currentTime; // Обновляем время
|
||||
}
|
||||
|
||||
struct DisplayData displayData;
|
||||
strncpy(displayData.topLine, decode_message->str, sizeof(displayData.topLine) - 1);
|
||||
displayData.topLine[sizeof(displayData.topLine) - 1] = '\0';
|
||||
displayData.value1 = decode_message->numbers[0];
|
||||
displayData.value2 = decode_message->numbers[1];
|
||||
displayData.value3 = decode_message->numbers[2];
|
||||
|
||||
// Буферы для заполнения данных
|
||||
char buffer1[17];
|
||||
char buffer2[17];
|
||||
|
||||
// Заполнение буфера 1
|
||||
fillBuffer1(displayData.topLine, buffer1, sizeof(buffer1), textCounter.incrementValue);
|
||||
|
||||
// Заполнение буфера 2
|
||||
fillBuffer2(displayData.value1, displayData.value2, displayData.value3, buffer2, sizeof(buffer2));
|
||||
|
||||
// Создание массива для вывода на дисплей
|
||||
char displayArray[32];
|
||||
strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray
|
||||
strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16
|
||||
|
||||
// Вывод данных на экран
|
||||
lcd_gotoxy(0, 0);
|
||||
lcd_puts(displayArray);
|
||||
|
||||
lcd_gotoxy(0, 1);
|
||||
lcd_puts(displayArray + 16); // Вывод второй половины displayArray
|
||||
}
|
||||
|
||||
void dder() {
|
||||
Lcd_inciliation();
|
||||
|
||||
uint8_t encode_message[100];
|
||||
size_t len_encode_message = 0;
|
||||
struct message message;
|
||||
|
||||
|
||||
// Получаем данные из протокола
|
||||
protocol_encode(message, encode_message, &len_encode_message);
|
||||
|
||||
// Декодируем данные из протокола
|
||||
struct message decode_message;
|
||||
protocol_decode(encode_message, len_encode_message, &decode_message);
|
||||
|
||||
// Выводим данные на экран
|
||||
printLcd(&decode_message);
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "circular_buf.h"
|
||||
|
||||
|
||||
void initialize_buffer(struct circular_buffer* cb) {
|
||||
cb->buf_head = 0;
|
||||
cb->buf_tail = 0;
|
||||
}
|
||||
// Проверка, пустой ли буфер
|
||||
int buffer_empty(const struct circular_buffer* cb) {
|
||||
return cb->buf_head == cb->buf_tail;
|
||||
}
|
||||
// Проверка, заполнен ли буфер
|
||||
int buffer_full(const struct circular_buffer* cb) {
|
||||
return (cb->buf_tail + 1) % BUFFER_SIZE == cb->buf_head; //проверяем следующее число, если оно будет совпадать с индексом головы то будет false, при совпадении вывод true
|
||||
}
|
||||
// Запись в буфер
|
||||
void write_buffer(struct circular_buffer* cb, int value) {
|
||||
if (buffer_full(cb)) { // проверяем, заполнен ли буфер
|
||||
return;
|
||||
}
|
||||
cb->buffer[cb->buf_tail] = value;// записываем значение в элемент массива в хвост
|
||||
cb->buf_tail = (cb->buf_tail + 1) % BUFFER_SIZE;// присваивается cb->buf_tail, обновляется его значение на следующий индекс в буфере
|
||||
}
|
||||
// Чтение элемента
|
||||
int read_buffer(struct circular_buffer* cb) {
|
||||
if (buffer_empty(cb)) { // проверка на пустоту
|
||||
return -1;// -1 как индикатор в случае ошибки
|
||||
}
|
||||
int value = cb->buffer[cb->buf_head]; // чтение по индексу головы
|
||||
cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -1,18 +0,0 @@
|
||||
#ifndef CIRCULAR_BUFFER_H
|
||||
#define CIRCULAR_BUFFER_H
|
||||
|
||||
#define BUFFER_SIZE 32
|
||||
|
||||
struct circular_buffer{
|
||||
unsigned char buffer[BUFFER_SIZE];
|
||||
unsigned char buf_head;
|
||||
unsigned char buf_tail;
|
||||
};
|
||||
|
||||
void initialize_buffer(struct circular_buffer* cb);
|
||||
int buffer_empty(const struct circular_buffer* cb);
|
||||
int buffer_full(const struct circular_buffer* cb);
|
||||
void write_buffer(struct circular_buffer* cb, int value);
|
||||
int read_buffer(struct circular_buffer* cb);
|
||||
|
||||
#endif /* CIRCULAR_BUFFER_H */
|
@ -1,129 +0,0 @@
|
||||
#include "client.h"
|
||||
#include "hdlc.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#define SIZE_DATA_BUFFERS 64
|
||||
|
||||
int connecting_frame_timeout_bf;
|
||||
|
||||
void init_hdlc_client(struct Client* client, int connecting_frame_timeout){
|
||||
client->state = IDLE_STATE;
|
||||
client->connecting_frame_timeout = connecting_frame_timeout;
|
||||
connecting_frame_timeout_bf = connecting_frame_timeout;
|
||||
client->current_index_frame = 20;
|
||||
|
||||
client->current_state_hdlc.control_escape = 0;
|
||||
client->current_state_hdlc.fcs = FCS_INIT_VALUE;
|
||||
client->current_state_hdlc.start_index = -1;
|
||||
client->current_state_hdlc.end_index = -1;
|
||||
client->current_state_hdlc.src_index = 0;
|
||||
client->current_state_hdlc.dest_index = 0;
|
||||
}
|
||||
|
||||
void hdlc_connect(struct Client* client){
|
||||
client->state = CONNECTING;
|
||||
|
||||
client->frameS.seq_no = 0;
|
||||
client->frameS.frame = S_FRAME;
|
||||
client->current_index_frame = client->frameS.seq_no;
|
||||
}
|
||||
|
||||
int hdlc_send_data(struct Client* client, uint8_t data[], size_t data_len){
|
||||
if (client->state != READY_STATE){
|
||||
return ERR_INVALID_STATE;
|
||||
}
|
||||
|
||||
client->state = RECIVING;
|
||||
|
||||
if (SIZE_DATA_BUFFERS < data_len){
|
||||
return ERR_INVALID_DATA_SIZE;
|
||||
}
|
||||
|
||||
client->frameI.seq_no = 0;
|
||||
client->frameI.frame = I_FRAME;
|
||||
client->data_i_frame = data;
|
||||
client->len_data_i_frame = data_len;
|
||||
client->current_index_frame = client->frameI.seq_no;
|
||||
|
||||
client->state = RECIVING;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hdlc_get_raw_frame(struct Client *client, uint8_t* buffer, size_t lenBuffer) {
|
||||
if(client->state == RECIVING){
|
||||
int ret = hdlc_frame_data(&client->frameI, client->data_i_frame,
|
||||
client->len_data_i_frame, buffer, &lenBuffer);
|
||||
if (ret < 0){
|
||||
printf("err in get_frame: %d\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
if (client->state == CONNECTING){
|
||||
int ret = hdlc_frame_data(&client->frameS, NULL, 0, buffer, &lenBuffer);
|
||||
|
||||
if (ret < 0){
|
||||
printf("err in get_frame: %d\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
if (client->state == DISCONNECTING){
|
||||
int ret = hdlc_frame_data(&client->frame_rej, NULL, 0, buffer, &lenBuffer);
|
||||
|
||||
if (ret < 0){
|
||||
printf("err in get_frame: %d\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hdlc_decode_recived_raw_data(struct Client* client, uint8_t* buffer, size_t len_buffer, uint8_t* recived_data, size_t* len_recived_data){
|
||||
hdlc_control_t recv_control;
|
||||
uint8_t recive[len_buffer];
|
||||
|
||||
int ret = hdlc_get_data_with_state(&client->current_state_hdlc,&recv_control, buffer, len_buffer, recive,
|
||||
&len_buffer);
|
||||
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (recv_control.seq_no != client->current_index_frame){
|
||||
client->state = DISCONNECTING;
|
||||
client->frame_rej.seq_no = 0;
|
||||
client->frame_rej.frame = S_FRAME_NACK;
|
||||
return ERR_INVALID_SEQ_NUMBER_FRAME;
|
||||
}
|
||||
|
||||
switch (recv_control.frame) {
|
||||
case S_FRAME:
|
||||
client->state = READY_STATE;
|
||||
break;
|
||||
case I_FRAME:
|
||||
for (int i = 0; i < sizeof(recive)-2; i++){
|
||||
recived_data[i] = recive[i];
|
||||
}
|
||||
|
||||
*len_recived_data = sizeof(recive)-2;
|
||||
|
||||
client->state = SEND;
|
||||
break;
|
||||
case S_FRAME_NACK:
|
||||
client->state = DISCONNECTING;
|
||||
client->frame_rej.seq_no = 0;
|
||||
client->frame_rej.frame = S_FRAME_NACK;
|
||||
return ERR_INVALID_SEQ_NUMBER_FRAME;
|
||||
}
|
||||
|
||||
client->connecting_frame_timeout = connecting_frame_timeout_bf;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hdlc_timeout_handler(struct Client* client, int delta_time){
|
||||
client->connecting_frame_timeout -= delta_time;
|
||||
|
||||
if (client->connecting_frame_timeout <= 0){
|
||||
return ERR_FRAME_TIME_OUT;
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
#ifndef CLIENT_H
|
||||
#define CLIENT_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "hdlc.h"
|
||||
|
||||
#define ERR_INVALID_DATA_SIZE -1
|
||||
#define ERR_ALL_BUFFERS_FILL -2
|
||||
#define ERR_INVALID_PARAMS -3
|
||||
#define ERR_INVALID_STATE -4
|
||||
#define ERR_FRAME_TIME_OUT -5
|
||||
#define ERR_INVALID_SEQ_NUMBER_FRAME -6
|
||||
#define ERR_TIMEOUT_ANSWER -7
|
||||
|
||||
enum HDLCState {
|
||||
UNINITIALIZED_STATE = 0, // состояние до инцилизации
|
||||
IDLE_STATE, // Состояние ожидания начала
|
||||
READY_STATE, // Состояние принятия
|
||||
CONNECTING, // состояние соединения
|
||||
DISCONNECTING, // состояния отключения
|
||||
RECIVING, // состояние приема и отправки
|
||||
SEND, //данные отправлены
|
||||
};
|
||||
|
||||
struct Client{
|
||||
enum HDLCState state;
|
||||
int connecting_frame_timeout; //-1
|
||||
uint8_t current_index_frame;
|
||||
hdlc_state_t current_state_hdlc;
|
||||
hdlc_control_t frameS;
|
||||
hdlc_control_t frameI;
|
||||
uint8_t* data_i_frame;
|
||||
size_t len_data_i_frame;
|
||||
// hdlc_control_t frame3;
|
||||
// hdlc_control_t frame4;
|
||||
hdlc_control_t frame_rej;
|
||||
};
|
||||
|
||||
//название функций
|
||||
void init_hdlc_client(struct Client* client, int connecting_frame_timeout);
|
||||
void hdlc_connect(struct Client* client);
|
||||
int hdlc_send_data(struct Client* client, uint8_t data[], size_t data_len);
|
||||
int hdlc_get_raw_frame(struct Client *client, uint8_t* buffer, size_t lenBuffer);
|
||||
//принимает буффер с уарта
|
||||
int hdlc_decode_recived_raw_data(struct Client* client, uint8_t* buffer, size_t len_buffer, uint8_t* recived_data, size_t* len_recived_data);
|
||||
int hdlc_timeout_handler(struct Client* client, int delta_time);
|
||||
|
||||
#endif //CLIENT_H
|
@ -1,41 +0,0 @@
|
||||
#include "fcs.h"
|
||||
|
||||
/*
|
||||
* CRC-Type: CRC16 CCIT
|
||||
* Polynomial: 0x1021 (x^16+x^12+x^5+1)
|
||||
* Lookup Table: Reflected
|
||||
*/
|
||||
static const unsigned short fcstab[256] = {
|
||||
0x0000, 0x1189, 0x2312, 0x329b,
|
||||
0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c,
|
||||
0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c,
|
||||
0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff,
|
||||
0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
|
||||
0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183,
|
||||
0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42,
|
||||
0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116,
|
||||
0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7,
|
||||
0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1,
|
||||
0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960,
|
||||
0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630,
|
||||
0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
|
||||
0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf,
|
||||
0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581,
|
||||
0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52,
|
||||
0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612,
|
||||
0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5,
|
||||
0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7,
|
||||
0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74,
|
||||
0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
|
||||
0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c,
|
||||
0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd,
|
||||
0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f,
|
||||
0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e,
|
||||
0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a,
|
||||
0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb,
|
||||
0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9,
|
||||
0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 };
|
||||
|
||||
FCS_SIZE calc_fcs(FCS_SIZE fcs, unsigned char value) {
|
||||
return (fcs >> 8) ^ fcstab[(fcs ^ value) & 0xff];
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
#ifndef FCS_H
|
||||
#define FCS_H
|
||||
|
||||
#define FCS_INIT_VALUE 0xFFFF /* FCS initialization value. */
|
||||
#define FCS_GOOD_VALUE 0xF0B8 /* FCS value for valid frames. */
|
||||
#define FCS_INVERT_MASK 0xFFFF /* Invert the FCS value accordingly to the specification */
|
||||
#define FCS_SIZE unsigned short
|
||||
|
||||
/**
|
||||
* Calculates a new FCS based on the current value and value of data.
|
||||
*
|
||||
* @param fcs Current FCS value
|
||||
* @param value The value to be added
|
||||
* @returns Calculated FCS value
|
||||
*/
|
||||
FCS_SIZE calc_fcs(FCS_SIZE fcs, unsigned char value);
|
||||
|
||||
#endif
|
@ -1,262 +0,0 @@
|
||||
#include "hdlc.h"
|
||||
|
||||
// HDLC Control field bit positions
|
||||
#define HDLC_CONTROL_S_OR_U_FRAME_BIT 0
|
||||
#define HDLC_CONTROL_SEND_SEQ_NO_BIT 1
|
||||
#define HDLC_CONTROL_S_FRAME_TYPE_BIT 2
|
||||
#define HDLC_CONTROL_POLL_BIT 4
|
||||
#define HDLC_CONTROL_RECV_SEQ_NO_BIT 5
|
||||
|
||||
// HDLC Control type definitions
|
||||
#define HDLC_CONTROL_TYPE_RECEIVE_READY 0
|
||||
#define HDLC_CONTROL_TYPE_RECEIVE_NOT_READY 1
|
||||
#define HDLC_CONTROL_TYPE_REJECT 2
|
||||
#define HDLC_CONTROL_TYPE_SELECTIVE_REJECT 3
|
||||
|
||||
static hdlc_state_t hdlc_state = {
|
||||
.control_escape = 0,
|
||||
.fcs = FCS_INIT_VALUE,
|
||||
.start_index = -1,
|
||||
.end_index = -1,
|
||||
.src_index = 0,
|
||||
.dest_index = 0,
|
||||
};
|
||||
|
||||
int hdlc_set_state(hdlc_state_t *state) {
|
||||
if (!state) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdlc_state = *state;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int hdlc_get_state(hdlc_state_t *state) {
|
||||
if (!state) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
*state = hdlc_state;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void hdlc_escape_value(char value, char *dest, int *dest_index) {
|
||||
// Check and escape the value if needed
|
||||
if ((value == HDLC_FLAG_SEQUENCE) || (value == HDLC_CONTROL_ESCAPE)) {
|
||||
dest[(*dest_index)++] = HDLC_CONTROL_ESCAPE;
|
||||
value ^= 0x20;
|
||||
}
|
||||
|
||||
// Add the value to the destination buffer and increment destination index
|
||||
dest[(*dest_index)++] = value;
|
||||
}
|
||||
|
||||
hdlc_control_t hdlc_get_control_type(unsigned char control) {
|
||||
hdlc_control_t value;
|
||||
|
||||
// Check if the frame is a S-frame (or U-frame)
|
||||
if (control & (1 << HDLC_CONTROL_S_OR_U_FRAME_BIT)) {
|
||||
// Check if S-frame type is a Receive Ready (ACK)
|
||||
if (((control >> HDLC_CONTROL_S_FRAME_TYPE_BIT) & 0x3)
|
||||
== HDLC_CONTROL_TYPE_RECEIVE_READY) {
|
||||
value.frame = S_FRAME;
|
||||
} else {
|
||||
// Assume it is an NACK since Receive Not Ready, Selective Reject and U-frames are not supported
|
||||
value.frame = S_FRAME_NACK;
|
||||
}
|
||||
|
||||
// Add the receive sequence number from the S-frame (or U-frame)
|
||||
value.seq_no = (control >> HDLC_CONTROL_RECV_SEQ_NO_BIT);
|
||||
} else {
|
||||
// It must be an I-frame so add the send sequence number (receive sequence number is not used)
|
||||
value.frame = I_FRAME;
|
||||
value.seq_no = (control >> HDLC_CONTROL_SEND_SEQ_NO_BIT);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
unsigned char hdlc_frame_control_type(hdlc_control_t *control) {
|
||||
unsigned char value = 0;
|
||||
|
||||
switch (control->frame) {
|
||||
case I_FRAME:
|
||||
// Create the HDLC I-frame control byte with Poll bit set
|
||||
value |= (control->seq_no << HDLC_CONTROL_SEND_SEQ_NO_BIT);
|
||||
value |= (1 << HDLC_CONTROL_POLL_BIT);
|
||||
break;
|
||||
case S_FRAME:
|
||||
// Create the HDLC Receive Ready S-frame control byte with Poll bit cleared
|
||||
value |= (control->seq_no << HDLC_CONTROL_RECV_SEQ_NO_BIT);
|
||||
value |= (1 << HDLC_CONTROL_S_OR_U_FRAME_BIT);
|
||||
break;
|
||||
case S_FRAME_NACK:
|
||||
// Create the HDLC Receive Ready S-frame control byte with Poll bit cleared
|
||||
value |= (control->seq_no << HDLC_CONTROL_RECV_SEQ_NO_BIT);
|
||||
value |= (HDLC_CONTROL_TYPE_REJECT << HDLC_CONTROL_S_FRAME_TYPE_BIT);
|
||||
value |= (1 << HDLC_CONTROL_S_OR_U_FRAME_BIT);
|
||||
break;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void hdlc_get_data_reset() {
|
||||
hdlc_get_data_reset_with_state(&hdlc_state);
|
||||
}
|
||||
|
||||
void hdlc_get_data_reset_with_state(hdlc_state_t *state) {
|
||||
state->fcs = FCS_INIT_VALUE;
|
||||
state->start_index = state->end_index = -1;
|
||||
state->src_index = state->dest_index = 0;
|
||||
state->control_escape = 0;
|
||||
}
|
||||
|
||||
//int hdlc_get_data(hdlc_control_t *control, const char *src,
|
||||
// unsigned int src_len, char *dest, unsigned int *dest_len)
|
||||
int hdlc_get_data(hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len){
|
||||
return hdlc_get_data_with_state(&hdlc_state, control, src, src_len, dest, dest_len);
|
||||
}
|
||||
|
||||
//int hdlc_get_data_with_state(hdlc_state_t *state, hdlc_control_t *control, const char *src,
|
||||
// unsigned int src_len, char *dest, unsigned int *dest_len)
|
||||
int
|
||||
hdlc_get_data_with_state(hdlc_state_t *state, hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len){
|
||||
int ret;
|
||||
char value;
|
||||
unsigned int i;
|
||||
|
||||
// Make sure that all parameters are valid
|
||||
if (!state || !control || !src || !dest || !dest_len) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
// Run through the data bytes
|
||||
for (i = 0; i < src_len; i++) {
|
||||
// First find the start flag sequence
|
||||
if (state->start_index < 0) {
|
||||
if (src[i] == HDLC_FLAG_SEQUENCE) {
|
||||
// Check if an additional flag sequence byte is present
|
||||
if ((i < (src_len - 1)) && (src[i + 1] == HDLC_FLAG_SEQUENCE)) {
|
||||
// Just loop again to silently discard it (accordingly to HDLC)
|
||||
continue;
|
||||
}
|
||||
|
||||
state->start_index = state->src_index;
|
||||
}
|
||||
} else {
|
||||
// Check for end flag sequence
|
||||
if (src[i] == HDLC_FLAG_SEQUENCE) {
|
||||
// Check if an additional flag sequence byte is present or earlier received
|
||||
if (((i < (src_len - 1)) && (src[i + 1] == HDLC_FLAG_SEQUENCE))
|
||||
|| ((state->start_index + 1) == state->src_index)) {
|
||||
// Just loop again to silently discard it (accordingly to HDLC)
|
||||
continue;
|
||||
}
|
||||
|
||||
state->end_index = state->src_index;
|
||||
break;
|
||||
} else if (src[i] == HDLC_CONTROL_ESCAPE) {
|
||||
state->control_escape = 1;
|
||||
} else {
|
||||
// Update the value based on any control escape received
|
||||
if (state->control_escape) {
|
||||
state->control_escape = 0;
|
||||
value = src[i] ^ 0x20;
|
||||
} else {
|
||||
value = src[i];
|
||||
}
|
||||
|
||||
// Now update the FCS value
|
||||
state->fcs = calc_fcs(state->fcs, value);
|
||||
|
||||
if (state->src_index == state->start_index + 2) {
|
||||
// Control field is the second byte after the start flag sequence
|
||||
*control = hdlc_get_control_type(value);
|
||||
} else if (state->src_index > (state->start_index + 2)) {
|
||||
// Start adding the data values after the Control field to the buffer
|
||||
dest[state->dest_index++] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
state->src_index++;
|
||||
}
|
||||
|
||||
// Check for invalid frame (no start or end flag sequence)
|
||||
if ((state->start_index < 0) || (state->end_index < 0)) {
|
||||
// Return no message and make sure destination length is 0
|
||||
*dest_len = 0;
|
||||
ret = -ENOMSG;
|
||||
} else {
|
||||
// A frame is at least 4 bytes in size and has a valid FCS value
|
||||
if ((state->end_index < (state->start_index + 4))
|
||||
|| (state->fcs != FCS_GOOD_VALUE)) {
|
||||
// Return FCS error and indicate that data up to end flag sequence in buffer should be discarded
|
||||
*dest_len = i;
|
||||
ret = -EIO;
|
||||
} else {
|
||||
// Return success and indicate that data up to end flag sequence in buffer should be discarded
|
||||
*dest_len = state->dest_index - sizeof(state->fcs);
|
||||
ret = i;
|
||||
}
|
||||
|
||||
// Reset values for next frame
|
||||
hdlc_get_data_reset_with_state(state);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
//int hdlc_frame_data(hdlc_control_t *control, const char *src,
|
||||
// unsigned int src_len, char *dest, unsigned int *dest_len)
|
||||
int hdlc_frame_data(hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len){
|
||||
unsigned int i;
|
||||
int dest_index = 0;
|
||||
unsigned char value = 0;
|
||||
FCS_SIZE fcs = FCS_INIT_VALUE;
|
||||
|
||||
// Make sure that all parameters are valid
|
||||
if (!control || (!src && (src_len > 0)) || !dest || !dest_len) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
// Start by adding the start flag sequence
|
||||
dest[dest_index++] = HDLC_FLAG_SEQUENCE;
|
||||
|
||||
// Add the all-station address from HDLC (broadcast)
|
||||
fcs = calc_fcs(fcs, HDLC_ALL_STATION_ADDR);
|
||||
hdlc_escape_value(HDLC_ALL_STATION_ADDR, dest, &dest_index);
|
||||
|
||||
// Add the framed control field value
|
||||
value = hdlc_frame_control_type(control);
|
||||
fcs = calc_fcs(fcs, value);
|
||||
hdlc_escape_value(value, dest, &dest_index);
|
||||
|
||||
// Only DATA frames should contain data
|
||||
if (control->frame == I_FRAME) {
|
||||
// Calculate FCS and escape data
|
||||
for (i = 0; i < src_len; i++) {
|
||||
fcs = calc_fcs(fcs, src[i]);
|
||||
hdlc_escape_value(src[i], dest, &dest_index);
|
||||
}
|
||||
}
|
||||
|
||||
// Invert the FCS value accordingly to the specification
|
||||
fcs ^= FCS_INVERT_MASK;
|
||||
|
||||
// Run through the FCS bytes and escape the values
|
||||
for (i = 0; i < sizeof(fcs); i++) {
|
||||
value = ((fcs >> (8 * i)) & 0xFF);
|
||||
hdlc_escape_value(value, dest, &dest_index);
|
||||
}
|
||||
|
||||
// Add end flag sequence and update length of frame
|
||||
dest[dest_index++] = HDLC_FLAG_SEQUENCE;
|
||||
*dest_len = dest_index;
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
//
|
||||
// Created by 79513 on 15.12.2023.
|
||||
//
|
||||
|
||||
#ifndef HDLC_H
|
||||
#define HDLC_H
|
||||
|
||||
#include "fcs.h"
|
||||
#include "errno.h"
|
||||
#include "stdint.h"
|
||||
|
||||
/** HDLC start/end flag sequence */
|
||||
#define HDLC_FLAG_SEQUENCE 0x7E
|
||||
|
||||
/** HDLC control escape value */
|
||||
#define HDLC_CONTROL_ESCAPE 0x7D
|
||||
|
||||
/** HDLC all station address */
|
||||
#define HDLC_ALL_STATION_ADDR 0xFF
|
||||
|
||||
/** Supported HDLC frame types */
|
||||
typedef enum {
|
||||
I_FRAME,
|
||||
S_FRAME,
|
||||
S_FRAME_NACK,
|
||||
} hdlc_frame_t;
|
||||
|
||||
/** Control field information */
|
||||
typedef struct {
|
||||
hdlc_frame_t frame;
|
||||
unsigned char seq_no :3;
|
||||
} hdlc_control_t;
|
||||
|
||||
/** Variables used in hdlc_get_data and hdlc_get_data_with_state
|
||||
* to keep track of received buffers
|
||||
*/
|
||||
typedef struct {
|
||||
char control_escape;
|
||||
FCS_SIZE fcs;
|
||||
int start_index;
|
||||
int end_index;
|
||||
int src_index;
|
||||
int dest_index;
|
||||
} hdlc_state_t;
|
||||
|
||||
/**
|
||||
* Retrieves data from specified buffer containing the HDLC frame. Frames can be
|
||||
* parsed from multiple buffers e.g. when received via UART.
|
||||
*
|
||||
* @param[out] control Control field structure with frame type and sequence number
|
||||
* @param[in] src Source buffer with frame
|
||||
* @param[in] src_len Source buffer length
|
||||
* @param[out] dest Destination buffer (should be able to contain max frame size)
|
||||
* @param[out] dest_len Destination buffer length
|
||||
* @retval >=0 Success (size of returned value should be discarded from source buffer)
|
||||
* @retval -EINVAL Invalid parameter
|
||||
* @retval -ENOMSG Invalid message
|
||||
* @retval -EIO Invalid FCS (size of dest_len should be discarded from source buffer)
|
||||
*
|
||||
* @see hdlc_get_data_with_state
|
||||
*/
|
||||
int hdlc_get_data(hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len);
|
||||
|
||||
/**
|
||||
* Retrieves data from specified buffer containing the HDLC frame. Frames can be
|
||||
* parsed from multiple buffers e.g. when received via UART.
|
||||
*
|
||||
* This function is a variation of @ref hdlc_get_data
|
||||
* The difference is only in first argument: hdlc_state_t *state
|
||||
* Data under that pointer is used to keep track of internal buffers.
|
||||
*
|
||||
* @see hdlc_get_data
|
||||
*/
|
||||
int hdlc_get_data_with_state(hdlc_state_t *state, hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len);
|
||||
|
||||
/**
|
||||
* Resets values used in yahdlc_get_data function to keep track of received buffers
|
||||
*/
|
||||
void hdlc_get_data_reset();
|
||||
|
||||
/**
|
||||
* This is a variation of @ref hdlc_get_data_reset
|
||||
* Resets state values that are under the pointer provided as argument
|
||||
*
|
||||
* This function need to be called before the first call to hdlc_get_data_with_state
|
||||
* when custom state storage is used.
|
||||
*
|
||||
* @see hdlc_get_data_reset
|
||||
*/
|
||||
void hdlc_get_data_reset_with_state(hdlc_state_t *state);
|
||||
|
||||
/**
|
||||
* Creates HDLC frame with specified data buffer.
|
||||
*
|
||||
* @param[in] control Control field structure with frame type and sequence number
|
||||
* @param[in] src Source buffer with data
|
||||
* @param[in] src_len Source buffer length
|
||||
* @param[out] dest Destination buffer (should be bigger than source buffer)
|
||||
* @param[out] dest_len Destination buffer length
|
||||
* @retval 0 Success
|
||||
* @retval -EINVAL Invalid parameter
|
||||
*/
|
||||
int hdlc_frame_data(hdlc_control_t *control, uint8_t *src,
|
||||
size_t src_len, uint8_t *dest, size_t *dest_len);
|
||||
|
||||
#endif //HDLC_H
|
@ -1,42 +0,0 @@
|
||||
#ifndef _I2CMASTER_H
|
||||
#define _I2CMASTER_H
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> i2c
|
||||
#define I2C_READ 1
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> i2c
|
||||
#define I2C_WRITE 0
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define SCL_CLOCK 100000L
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void i2c_init(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
void i2c_stop(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
unsigned char i2c_start(unsigned char addr);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
unsigned char i2c_rep_start(unsigned char addr);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
void i2c_start_wait(unsigned char addr);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char i2c_write(unsigned char data);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char i2c_readAck(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
unsigned char i2c_readNak(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
unsigned char i2c_read(unsigned char ack);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
|
||||
#endif
|
@ -1,10 +0,0 @@
|
||||
lcd_init KEYWORD2
|
||||
lcd_clrscr KEYWORD2
|
||||
lcd_home KEYWORD2
|
||||
lcd_gotoxy KEYWORD2
|
||||
lcd_led KEYWORD2
|
||||
lcd_putc KEYWORD2
|
||||
lcd_puts KEYWORD2
|
||||
lcd_puts_p KEYWORD2
|
||||
lcd_command KEYWORD2
|
||||
lcd_data KEYWORD2
|
@ -1,8 +0,0 @@
|
||||
#ifndef Lsd_print_h
|
||||
#define Lsd_print_h
|
||||
#include "protocol.h"
|
||||
|
||||
void Lcd_inciliation();
|
||||
void printLcd(struct message* decode_message);
|
||||
|
||||
#endif
|
@ -1,110 +0,0 @@
|
||||
#ifndef LCD_H
|
||||
#define LCD_H
|
||||
|
||||
#define LCD_PCF8574_INIT 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pcf
|
||||
|
||||
#define LCD_PCF8574_DEVICEID 0 //id <20><><EFBFBD>-<2D><>
|
||||
#define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_DEC 0x04 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_DEC_SHIFT 0x05 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_INC_ 0x06 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_INC_SHIFT 0x07 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DISP_OFF 0x08 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DISP_ON 0x0C // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define LCD_DISP_ON_BLINK 0x0D // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DISP_ON_CURSOR 0x0E // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
#define LCD_DISP_ON_CURSOR_BLINK 0x0F // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_CURSOR_LEFT 0x10 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_CURSOR_RIGHT 0x14 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_DISP_LEFT 0x18 // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_DISP_RIGHT 0x1C // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_4BIT_1LINE 0x20 // 4-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 5x7 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_4BIT_2LINES 0x28 // 4-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 5x7 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_8BIT_1LINE 0x30 // 8-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 5x7 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_8BIT_2LINES 0x38 // 8-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 5x7 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define LCD_LINES 2 // <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DISP_LENGTH 16 // <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_LINE_LENGTH 0x40 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_START_LINE1 0x00 // DDRM <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_START_LINE2 0x40 // DDRM <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_WRAP_LINES 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
#define LCD_DATA0_PIN 4 // <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DATA1_PIN 5 // <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DATA2_PIN 6 // <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_DATA3_PIN 7 // <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_RS_PIN 0 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> RS
|
||||
#define LCD_RW_PIN 1 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> RW
|
||||
#define LCD_E_PIN 2 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_LED_PIN 3 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HD44780U.
|
||||
#define LCD_CLR 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_HOME 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_MODE 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_INC 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ENTRY_SHIFT 0 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ON 3 // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ON_DISPLAY 2 // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ON_CURSOR 1 // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_ON_BLINK 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE 4 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_DISP 3 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MOVE_RIGHT 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION 5 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_8BIT 4 // 8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_2LINES 3 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_FUNCTION_10DOTS 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_CGRAM 6 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CG RAM
|
||||
#define LCD_DDRAM 7 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DD RAM
|
||||
#define LCD_BUSY 7 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define LCD_MODE_DEFAULT ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) )
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_init(uint8_t dispAttr);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_clrscr(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_home(void);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_gotoxy(uint8_t x, uint8_t y);
|
||||
|
||||
// <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_led(uint8_t onoff);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_putc(char c);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_puts(const char *s);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_puts_p(const char *progmem_s);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_command(uint8_t cmd);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void lcd_data(uint8_t data);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define lcd_puts_P(__s) lcd_puts_p(PSTR(__s))
|
||||
|
||||
#endif
|
@ -1,120 +0,0 @@
|
||||
#include "protocol.h"
|
||||
#include "stdio.h"
|
||||
|
||||
int main(){
|
||||
// union convert_float sample;
|
||||
// sample.fVal = 135;
|
||||
// union convert_float sample2;
|
||||
// for(int i = 0; i < sizeof sample.buf; i++){
|
||||
// printf("buffer %d: %d\n", i, sample.buf[i]);
|
||||
// sample2.buf[i] = sample.buf[i];
|
||||
// }
|
||||
//
|
||||
// printf("float: %f\n", sample2.fVal);
|
||||
|
||||
// union convert_char sample;
|
||||
// sample.cVal = "world_word_z";
|
||||
// union convert_char sample2;
|
||||
// for(int i = 0; i < sizeof sample.buf; i++){
|
||||
// printf("buffer %d: %d\n", i, sample.buf[i]);
|
||||
// sample2.buf[i] = sample.buf[i];
|
||||
// }
|
||||
//
|
||||
// printf("char: %s\n", sample2.cVal);
|
||||
|
||||
|
||||
// char a[64];
|
||||
// float f = 3.14159; // number to start with
|
||||
//
|
||||
// snprintf(a, sizeof a, "%f", f); // point a to f's location
|
||||
//
|
||||
// float num = atof(a);
|
||||
//
|
||||
// printf("%s\n", a);
|
||||
// printf("%f", num);
|
||||
//
|
||||
// // print float & byte array as hex
|
||||
// printf("float: %f\n", f);
|
||||
// printf("byte array: %hhX:%hhX:%hhX:%hhX\n", \
|
||||
// a[0], a[1], a[2], a[3]);
|
||||
|
||||
// uint8_t num;
|
||||
// sscanf(a, "%s", &num);
|
||||
// float s = atof(a);
|
||||
// printf("%f\n", s);
|
||||
|
||||
// float vIn = -1.07231;
|
||||
// char *vOut[4];
|
||||
// _gcvt_s(vOut,sizeof(vOut),vIn,9);
|
||||
//
|
||||
// float vA = (float)strtod(vOut,NULL);
|
||||
//
|
||||
// printf("\n%f", vA);
|
||||
|
||||
printf("Test number\n");
|
||||
struct message messNum;
|
||||
messNum.numbers[0] = 12.134;
|
||||
messNum.numbers[1] = 135.123;
|
||||
messNum.numbers[2] = 5214.12;
|
||||
messNum.numbers[3] = 12345.12345;
|
||||
messNum.len_str = 0;
|
||||
messNum.len_numbers = 4;
|
||||
|
||||
uint8_t buffer_number[] = {};
|
||||
size_t len_buffer_number;
|
||||
protocol_encode(messNum, buffer_number, &len_buffer_number);
|
||||
for (int i = 0; i < len_buffer_number; i++){
|
||||
printf("buffer %d: %d\n", i, buffer_number[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message respNum;
|
||||
protocol_decode(buffer_number, len_buffer_number, &respNum);
|
||||
for (int i = 0; i < 4; i++){
|
||||
printf("number %d: %f\n", i, respNum.numbers[i]);
|
||||
}
|
||||
|
||||
printf("\nTest word\n");
|
||||
struct message messStr;
|
||||
messStr.str = "word_war";
|
||||
messStr.len_str = sizeof messStr.str;
|
||||
messStr.len_numbers = 0;
|
||||
uint8_t bufferStr[] = {};
|
||||
size_t len_bufferStr;
|
||||
protocol_encode(messStr, bufferStr, &len_bufferStr);
|
||||
for (int i = 0; i < len_bufferStr; i++){
|
||||
printf("buffer %d: %d\n", i, bufferStr[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message respStr;
|
||||
protocol_decode(bufferStr, len_bufferStr, &respStr);
|
||||
printf("message: %s\n", respStr.str);
|
||||
|
||||
printf("\nTest number + word\n");
|
||||
|
||||
struct message mess;
|
||||
mess.numbers[0] = 12.134;
|
||||
mess.numbers[1] = 135.123;
|
||||
mess.len_numbers = 2;
|
||||
mess.str = "word_war_sas";
|
||||
mess.len_str = sizeof mess.str;
|
||||
uint8_t buffer[] = {};
|
||||
size_t len_buffer;
|
||||
protocol_encode(mess, buffer, &len_buffer);
|
||||
for (int i = 0; i < len_buffer; i++){
|
||||
printf("buffer %d: %d\n", i, buffer[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message resp;
|
||||
protocol_decode(buffer, len_buffer, &resp);
|
||||
for (int i = 0; i < resp.len_numbers; i++){
|
||||
printf("numbers %d: %f\n", i, resp.numbers[i]);
|
||||
}
|
||||
printf("message: %s\n", resp.str);
|
||||
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
#include "lcd.h"
|
||||
#include "client.h"
|
||||
#include "uart.h"
|
||||
#include "stdbool.h"
|
||||
#include "stdio.h"
|
||||
|
||||
struct Client hdlc;
|
||||
bool flag_connection = false;
|
||||
|
||||
void setup() {
|
||||
Lsd_inciliation();
|
||||
UART_init();
|
||||
init_hdlc_client(&hdlc, 200);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// while(true){
|
||||
// if (!flag_connection){
|
||||
// }
|
||||
// }
|
||||
|
||||
hdlc_connect(&hdlc);
|
||||
uint8_t buffer[10];
|
||||
|
||||
hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer);
|
||||
|
||||
UART_send(&buffer, sizeof buffer);
|
||||
|
||||
while(!flag_connection){
|
||||
uint8_t* buffer_recive[10];
|
||||
UART_receive(&buffer_recive, sizeof buffer_recive);
|
||||
|
||||
int err = hdlc_timeout_handler(&hdlc, 1);
|
||||
if (err == ERR_FRAME_TIME_OUT){
|
||||
hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer);
|
||||
UART_send(buffer, sizeof buffer);
|
||||
continue;
|
||||
}
|
||||
|
||||
err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0);
|
||||
if (err < 0){
|
||||
if (err == ERR_INVALID_SEQ_NUMBER_FRAME){
|
||||
uint8_t* buffer_rej[10];
|
||||
hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej);
|
||||
UART_send(&buffer_rej, sizeof buffer_rej);
|
||||
return err;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
if (hdlc.state == READY_STATE){
|
||||
flag_connection = true;
|
||||
}
|
||||
}
|
||||
|
||||
struct message mess;
|
||||
mess.numbers[0] = 1.23;
|
||||
mess.numbers[1] = 22.1;
|
||||
mess.numbers[2] = 100;
|
||||
mess.len_numbers = 3;
|
||||
mess.str = "word war in new world io ex";
|
||||
mess.len_str = sizeof mess.str;
|
||||
|
||||
uint8_t data[64];
|
||||
size_t len_data;
|
||||
protocol_encode(mess, data, &len_data);
|
||||
|
||||
hdlc_send_data(&hdlc, data, len_data);
|
||||
uint8_t buffer_data[72];
|
||||
hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data);
|
||||
|
||||
UART_send(&buffer_data, sizeof buffer_data);
|
||||
|
||||
bool flag_recive = false;
|
||||
uint8_t data_recive[64];
|
||||
size_t len_data_recive;
|
||||
while (!flag_recive){
|
||||
uint8_t* buffer_recive_data[72];
|
||||
UART_receive(&buffer_recive_data, sizeof buffer_recive_data);
|
||||
|
||||
int err = hdlc_timeout_handler(&hdlc, 1);
|
||||
if (err == ERR_FRAME_TIME_OUT){
|
||||
hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data);
|
||||
UART_send(&buffer_data, sizeof buffer_data);
|
||||
continue;
|
||||
}
|
||||
|
||||
err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive);
|
||||
if (err < 0){
|
||||
if (err == ERR_INVALID_SEQ_NUMBER_FRAME){
|
||||
uint8_t* buffer_rej[10];
|
||||
hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej);
|
||||
UART_send(&buffer_rej, sizeof buffer_rej);
|
||||
return err;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
if (hdlc.state == SEND){
|
||||
flag_recive = true;
|
||||
}
|
||||
}
|
||||
|
||||
struct message resp;
|
||||
protocol_decode(data_recive, len_data_recive, &resp);
|
||||
|
||||
printLcd(&resp);
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
#ifndef PCF8574_H_
|
||||
#define PCF8574_H_
|
||||
|
||||
#define PCF8574_ADDRBASE (0x27) // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>
|
||||
|
||||
#define PCF8574_I2CINIT 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i2c
|
||||
|
||||
#define PCF8574_MAXDEVICES 1 // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define PCF8574_MAXPINS 8 // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void pcf8574_init();
|
||||
int8_t pcf8574_getoutput(uint8_t deviceid);
|
||||
int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin);
|
||||
int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data);
|
||||
int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t pinlength, int8_t data);
|
||||
int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data);
|
||||
int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin);
|
||||
int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin);
|
||||
int8_t pcf8574_getinput(uint8_t deviceid);
|
||||
int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin);
|
||||
#endif
|
@ -1,21 +0,0 @@
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
static volatile unsigned long timerMillis = 0;
|
||||
|
||||
void timerInit() {
|
||||
TCCR1B |= (1 << WGM12) | (1 << CS11) | (1 << CS10);
|
||||
OCR1A = 250;
|
||||
TIMSK1 |= (1 << OCIE1A);
|
||||
sei();
|
||||
}
|
||||
|
||||
unsigned long millis() {
|
||||
unsigned long ms;
|
||||
ms = timerMillis;
|
||||
return ms;
|
||||
}
|
||||
|
||||
ISR(TIMER1_COMPA_vect) {
|
||||
timerMillis++;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
#ifndef TIMER_H
|
||||
#define TIMER_H
|
||||
|
||||
void timerInit();
|
||||
unsigned long millis();
|
||||
|
||||
#endif // TIMER_H
|
120
protocol/main.c
120
protocol/main.c
@ -1,120 +0,0 @@
|
||||
#include "protocol.h"
|
||||
#include "stdio.h"
|
||||
|
||||
int main(){
|
||||
// union convert_float sample;
|
||||
// sample.fVal = 135;
|
||||
// union convert_float sample2;
|
||||
// for(int i = 0; i < sizeof sample.buf; i++){
|
||||
// printf("buffer %d: %d\n", i, sample.buf[i]);
|
||||
// sample2.buf[i] = sample.buf[i];
|
||||
// }
|
||||
//
|
||||
// printf("float: %f\n", sample2.fVal);
|
||||
|
||||
// union convert_char sample;
|
||||
// sample.cVal = "world_word_z";
|
||||
// union convert_char sample2;
|
||||
// for(int i = 0; i < sizeof sample.buf; i++){
|
||||
// printf("buffer %d: %d\n", i, sample.buf[i]);
|
||||
// sample2.buf[i] = sample.buf[i];
|
||||
// }
|
||||
//
|
||||
// printf("char: %s\n", sample2.cVal);
|
||||
|
||||
|
||||
// char a[64];
|
||||
// float f = 3.14159; // number to start with
|
||||
//
|
||||
// snprintf(a, sizeof a, "%f", f); // point a to f's location
|
||||
//
|
||||
// float num = atof(a);
|
||||
//
|
||||
// printf("%s\n", a);
|
||||
// printf("%f", num);
|
||||
//
|
||||
// // print float & byte array as hex
|
||||
// printf("float: %f\n", f);
|
||||
// printf("byte array: %hhX:%hhX:%hhX:%hhX\n", \
|
||||
// a[0], a[1], a[2], a[3]);
|
||||
|
||||
// uint8_t num;
|
||||
// sscanf(a, "%s", &num);
|
||||
// float s = atof(a);
|
||||
// printf("%f\n", s);
|
||||
|
||||
// float vIn = -1.07231;
|
||||
// char *vOut[4];
|
||||
// _gcvt_s(vOut,sizeof(vOut),vIn,9);
|
||||
//
|
||||
// float vA = (float)strtod(vOut,NULL);
|
||||
//
|
||||
// printf("\n%f", vA);
|
||||
|
||||
printf("Test number\n");
|
||||
struct message messNum;
|
||||
messNum.numbers[0] = 12.134;
|
||||
messNum.numbers[1] = 135.123;
|
||||
messNum.numbers[2] = 5214.12;
|
||||
messNum.numbers[3] = 12345.12345;
|
||||
messNum.len_str = 0;
|
||||
messNum.len_numbers = 4;
|
||||
|
||||
uint8_t buffer_number[] = {};
|
||||
size_t len_buffer_number;
|
||||
protocol_encode(messNum, buffer_number, &len_buffer_number);
|
||||
for (int i = 0; i < len_buffer_number; i++){
|
||||
printf("buffer %d: %d\n", i, buffer_number[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message respNum;
|
||||
protocol_decode(buffer_number, len_buffer_number, &respNum);
|
||||
for (int i = 0; i < 4; i++){
|
||||
printf("number %d: %f\n", i, respNum.numbers[i]);
|
||||
}
|
||||
|
||||
printf("\nTest word\n");
|
||||
struct message messStr;
|
||||
messStr.str = "word_war";
|
||||
messStr.len_str = sizeof messStr.str;
|
||||
messStr.len_numbers = 0;
|
||||
uint8_t bufferStr[] = {};
|
||||
size_t len_bufferStr;
|
||||
protocol_encode(messStr, bufferStr, &len_bufferStr);
|
||||
for (int i = 0; i < len_bufferStr; i++){
|
||||
printf("buffer %d: %d\n", i, bufferStr[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message respStr;
|
||||
protocol_decode(bufferStr, len_bufferStr, &respStr);
|
||||
printf("message: %s\n", respStr.str);
|
||||
|
||||
printf("\nTest number + word\n");
|
||||
|
||||
struct message mess;
|
||||
mess.numbers[0] = 12.134;
|
||||
mess.numbers[1] = 135.123;
|
||||
mess.len_numbers = 2;
|
||||
mess.str = "word_war_sas";
|
||||
mess.len_str = sizeof mess.str;
|
||||
uint8_t buffer[] = {};
|
||||
size_t len_buffer;
|
||||
protocol_encode(mess, buffer, &len_buffer);
|
||||
for (int i = 0; i < len_buffer; i++){
|
||||
printf("buffer %d: %d\n", i, buffer[i]);
|
||||
}
|
||||
|
||||
printf("---------------------------------------\n");
|
||||
|
||||
struct message resp;
|
||||
protocol_decode(buffer, len_buffer, &resp);
|
||||
for (int i = 0; i < resp.len_numbers; i++){
|
||||
printf("numbers %d: %f\n", i, resp.numbers[i]);
|
||||
}
|
||||
printf("message: %s\n", resp.str);
|
||||
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
#include "protocol.h"
|
||||
|
||||
void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message){
|
||||
int count_number = 0;
|
||||
for(int i = 0; i < len_encode_message; i++){
|
||||
if (encode_message[i] == FLAG_NUMBER){
|
||||
union convert_float sample;
|
||||
for (int z = 0; z < sizeof sample.buf; z++){
|
||||
i++;
|
||||
sample.buf[z] = encode_message[i];
|
||||
}
|
||||
decode_message->numbers[count_number++] = sample.fVal;
|
||||
decode_message->len_numbers++;
|
||||
}
|
||||
|
||||
|
||||
if (encode_message[i] == FLAG_WORD){
|
||||
int count_word = 0;
|
||||
i++;
|
||||
union convert_char sample;
|
||||
for (int z = 0; z < encode_message[i]; z++){
|
||||
i++;
|
||||
sample.buf[z] = encode_message[i];
|
||||
}
|
||||
decode_message->str = sample.cVal;
|
||||
decode_message->len_str = count_word;
|
||||
}
|
||||
}
|
||||
decode_message->len_numbers = count_number;
|
||||
}
|
||||
|
||||
void protocol_encode(struct message message, uint8_t encode_message[], size_t* len_encode_message){
|
||||
size_t count = 0;
|
||||
if (message.len_numbers > 0){
|
||||
for (int i = 0; i < message.len_numbers; i++){
|
||||
encode_message[count++] = FLAG_NUMBER;
|
||||
union convert_float sample;
|
||||
sample.fVal = message.numbers[i];
|
||||
for (int z = 0; z < sizeof sample.buf; z++){
|
||||
encode_message[count++] = sample.buf[z];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (message.len_str > 0){
|
||||
encode_message[count++] = FLAG_WORD;
|
||||
encode_message[count++] = message.len_str;
|
||||
union convert_char sample;
|
||||
sample.cVal = message.str;
|
||||
for (int i = 0; i < message.len_str; i++){
|
||||
encode_message[count++] = sample.buf[i];
|
||||
}
|
||||
}
|
||||
|
||||
*len_encode_message = count;
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
#ifndef PROTOCOL_H
|
||||
#define PROTOCOL_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "stdio.h"
|
||||
|
||||
#define FLAG_NUMBER 0
|
||||
#define FLAG_WORD 1
|
||||
|
||||
struct message{
|
||||
float numbers[3];
|
||||
size_t len_numbers;
|
||||
char* str;
|
||||
size_t len_str;
|
||||
};
|
||||
|
||||
union convert_float{
|
||||
float fVal;
|
||||
uint8_t buf[4];
|
||||
};
|
||||
|
||||
union convert_char{
|
||||
char* cVal;
|
||||
uint8_t buf[64];
|
||||
};
|
||||
|
||||
void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message);
|
||||
void protocol_encode(struct message message, uint8_t encode_message[], size_t* len_encode_message);
|
||||
|
||||
#endif //PROTOCOL_H
|
Loading…
Reference in New Issue
Block a user