fix to project, delete atmel, add arduino, need fix uart

This commit is contained in:
Qukich 2024-02-28 10:10:17 +03:00
parent d223f78392
commit afddc11d94
67 changed files with 555 additions and 9268 deletions

14
.gitignore vendored
View File

@ -1,14 +0,0 @@
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

Binary file not shown.

84
Lcd_print.ino Normal file
View File

@ -0,0 +1,84 @@
#include "MyLCD.h"
struct TextCounter {
unsigned long startTime;
int incrementValue;
int startIndex; // Новая переменная для отслеживания начального индекса строки
};
struct TextCounter textCounter;
void init_lcd(){
lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея
lcd_home(); // домой курсор
lcd_led(0); // вкл подсветки
textCounter.startTime = millis(); // Запоминаем время запуска программы
textCounter.startIndex = 0; // Инициализируем начальный индекс
}
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){
int val1_int = (int) value1;
float val1_float = (abs(value1) - abs(val1_int)) * 10;
int val1_fra = (int)val1_float;
int val2_int = (int) value2;
float val2_float = (abs(value2) - abs(val2_int)) * 10;
int val2_fra = (int)val2_float;
int val3_int = (int) value3;
float val3_float = (abs(value3) - abs(val3_int)) * 10;
int val3_fra = (int)val3_float;
snprintf(buffer, bufferSize, "%d.%d:%d.%d:%d.%d",
val1_int, val1_fra,
val2_int, val2_fra,
val3_int, val3_fra);
}
void print_lcd(struct DisplayData* disp){
unsigned long currentTime = millis(); // Текущее время
// Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue
if (currentTime - textCounter.startTime >= 500) {
textCounter.incrementValue++; // Увеличиваем incrementValue на 1
textCounter.startTime = currentTime; // Обновляем время
}
struct DisplayData displayData;
strncpy(displayData.topLine, disp->topLine, sizeof(displayData.topLine) - 1);
displayData.topLine[sizeof(displayData.topLine) - 1] = '\0';
displayData.value1 = disp->value1;
displayData.value2 = disp->value2;
displayData.value3 = disp->value3;
// Буферы для заполнения данных
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);
}

View File

@ -1,14 +1,9 @@
/*
* lcd_headers.h #ifndef MYLCD_H_
* #define MYLCD_H_
* Created: 22.02.2024 15:16:19
* Author: 79513
*/
#ifndef LCD_HEADERS_H_ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
#define LCD_HEADERS_H_
#include <avr/io.h> #include <avr/io.h>
#include <util/delay.h> #include <util/delay.h>
#include <stdlib.h> #include <stdlib.h>
@ -22,5 +17,6 @@
#include "lcdpcf8574.h" #include "lcdpcf8574.h"
#include "pcf8574.h" #include "pcf8574.h"
#include "i2cmaster.h" #include "i2cmaster.h"
#include "lcd.h"
#endif /* LCD_HEADERS_H_ */ #endif

View File

@ -2,8 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "circular_buf.h" #include "circular_buf.h"
void clear_buffer(struct circular_buffer* cb) {
void initialize_buffer(struct circular_buffer* cb) {
cb->buf_head = 0; cb->buf_head = 0;
cb->buf_tail = 0; cb->buf_tail = 0;
} }
@ -31,6 +30,4 @@ int read_buffer(struct circular_buffer* cb) {
int value = cb->buffer[cb->buf_head]; // чтение по индексу головы int value = cb->buffer[cb->buf_head]; // чтение по индексу головы
cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1 cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1
return value; return value;
} }

View File

@ -9,10 +9,10 @@ struct circular_buffer{
unsigned char buf_tail; unsigned char buf_tail;
}; };
void initialize_buffer(struct circular_buffer* cb); void clear_buffer(struct circular_buffer* cb);
int buffer_empty(const struct circular_buffer* cb); int buffer_empty(const struct circular_buffer* cb);
int buffer_full(const struct circular_buffer* cb); int buffer_full(const struct circular_buffer* cb);
void write_buffer(struct circular_buffer* cb, int value); void write_buffer(struct circular_buffer* cb, int value);
int read_buffer(struct circular_buffer* cb); int read_buffer(struct circular_buffer* cb);
#endif /* CIRCULAR_BUFFER_H */ #endif /* CIRCULAR_BUFFER_H */

View File

@ -1,6 +1,5 @@
#include "client.h" #include "client.h"
#include "hdlc.h" #include <stdio.h>
#include "stdio.h"
#define SIZE_DATA_BUFFERS 64 #define SIZE_DATA_BUFFERS 64

View File

@ -1,22 +0,0 @@

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

View File

@ -1,14 +0,0 @@
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

View File

@ -1,155 +0,0 @@
LCD/Lcd_print.d LCD/Lcd_print.o: ../LCD/Lcd_print.c ../LCD/lcd_headers.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\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\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 \
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h ../LCD/lcd.h
../LCD/lcd_headers.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h:
../LCD/pcf8574.h:
../LCD/i2cmaster.h:
../LCD/lcd.h:

Binary file not shown.

View File

@ -1,154 +0,0 @@
LCD/lcdpcf8574.d LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c \
../LCD/lcd_headers.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\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\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 \
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
../LCD/lcd_headers.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h:
../LCD/pcf8574.h:
../LCD/i2cmaster.h:

Binary file not shown.

View File

@ -1,153 +0,0 @@
LCD/pcf8574.d LCD/pcf8574.o: ../LCD/pcf8574.c ../LCD/lcd_headers.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\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\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 \
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
../LCD/lcd_headers.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h:
../LCD/pcf8574.h:
../LCD/i2cmaster.h:

Binary file not shown.

View File

@ -1,153 +0,0 @@
LCD/twimaster.d LCD/twimaster.o: ../LCD/twimaster.c ../LCD/lcd_headers.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\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\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 \
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h
../LCD/lcd_headers.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../LCD/lcdpcf8574.h:
../LCD/pcf8574.h:
../LCD/i2cmaster.h:

Binary file not shown.

View File

@ -1,305 +0,0 @@
################################################################################
# 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
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
hdlc/fcs.o: ../hdlc/fcs.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
hdlc/hdlc.o: ../hdlc/hdlc.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
LCD/Lcd_print.o: ../LCD/Lcd_print.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
LCD/pcf8574.o: ../LCD/pcf8574.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
LCD/twimaster.o: ../LCD/twimaster.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
./main.o: .././main.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
protocol/protocol.o: ../protocol/protocol.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
UART/circular_buf.o: ../UART/circular_buf.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@echo Finished building: $<
UART/uart.o: ../UART/uart.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
<<<<<<< HEAD
$(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\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 "$@" "$<"
=======
$(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 "$@" "$<"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
@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
<<<<<<< HEAD
$(QUOTE)D:\atmel\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 "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"
@echo Finished building target: $@
"D:\atmel\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"
"D:\atmel\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
"D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "hdlc_screen.elf" > "hdlc_screen.lss"
"D:\atmel\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"
"D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "hdlc_screen.elf"
=======
$(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"
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
# 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"

View File

@ -1,50 +0,0 @@
UART/circular_buf.d UART/circular_buf.o: ../UART/circular_buf.c \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
../UART/circular_buf.h
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../UART/circular_buf.h:

View File

@ -1,94 +0,0 @@
UART/uart.d UART/uart.o: ../UART/uart.c \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
../UART/circular_buf.h ../UART/uart.h
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../UART/circular_buf.h:
../UART/uart.h:

Binary file not shown.

View File

@ -1,64 +0,0 @@
hdlc/client.d hdlc/client.o: ../hdlc/client.c ../hdlc/client.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
../hdlc/hdlc.h ../hdlc/fcs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
../hdlc/client.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../hdlc/hdlc.h:
../hdlc/fcs.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562

Binary file not shown.

View File

@ -1,3 +0,0 @@
hdlc/fcs.d hdlc/fcs.o: ../hdlc/fcs.c ../hdlc/fcs.h
../hdlc/fcs.h:

Binary file not shown.

View File

@ -1,34 +0,0 @@
hdlc/hdlc.d hdlc/hdlc.o: ../hdlc/hdlc.c ../hdlc/hdlc.h ../hdlc/fcs.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
d:\atmel\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\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
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
../hdlc/hdlc.h:
../hdlc/fcs.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562

Binary file not shown.

View File

@ -1 +0,0 @@
:00000001FF

Binary file not shown.

View File

@ -1,508 +0,0 @@
: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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,509 +0,0 @@
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

View File

@ -1,86 +0,0 @@
main.d main.o: .././main.c .././hdlc/client.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
.././hdlc/hdlc.h .././hdlc/fcs.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \
d:\atmel\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 \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
.././hdlc/client.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
.././hdlc/hdlc.h:
.././hdlc/fcs.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h:
d:\atmel\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\errno.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562
.././UART/uart.h:
.././LCD/lcd.h:
.././Protocol/protocol.h:
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562

Binary file not shown.

View File

@ -1,26 +0,0 @@
################################################################################
# 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

View File

@ -1,57 +0,0 @@
protocol/protocol.d protocol/protocol.o: ../protocol/protocol.c \
../protocol/protocol.h \
<<<<<<< HEAD
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h
../protocol/protocol.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
d:\atmel\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\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:
>>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562

View File

@ -1,93 +0,0 @@
#include "lcd_headers.h"
#include "lcd.h"
//#include "time.h"
// #include <Arduino.h>
//#include <cstddef>
struct TextCounter {
unsigned long startTime;
int incrementValue;
};
struct TextCounter textCounter;
//struct 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 DisplayData* displayData) {
//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 = 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);
// Заполнение буфера 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);
//}

View File

@ -1,42 +0,0 @@
#ifndef _I2CMASTER_H
#define _I2CMASTER_H
// флаг, отвечающий за чтение данных по i2c
#define I2C_READ 1
// флаг, отвечающий за отправку данных по i2c
#define I2C_WRITE 0
// частота тактирования линии в Герцах
#define SCL_CLOCK 100000L
// инициализация интерфейса
void i2c_init(void);
// передача условия СТОП на шину
void i2c_stop(void);
// передача условия СТАРТ на шину
unsigned char i2c_start(unsigned char addr);
// повторный старт(перезапуск)
unsigned char i2c_rep_start(unsigned char addr);
// ждем, если устрой-во занято, а потом передаем условие СТАРТ на шину
void i2c_start_wait(unsigned char addr);
// отправка данных
unsigned char i2c_write(unsigned char data);
// читаем данные и продолжаем вещание
unsigned char i2c_readAck(void);
// читаем данные и после их получения передаем услови СТОП
unsigned char i2c_readNak(void);
// читаем данные с шины
unsigned char i2c_read(unsigned char ack);
// выбираем какой варинт чтения данных будет
#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
#endif

View File

@ -1,110 +0,0 @@
#ifndef LCD_H
#define LCD_H
#define LCD_PCF8574_INIT 1 //èíèöèàëèçàöèÿ pcf
#define LCD_PCF8574_DEVICEID 0 //id óñò-âà
#define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES
// óñòàíîâêà ðåæèìà ââîäà: âêëþ÷åíèå/âûêëþ÷åíèå ñìåùåíèÿ äèñïëåÿ, íàïðàâëåíèå ïåðåìåùåíèÿ êóðñîðà óìåíüøàòü/óâåëè÷èâàòü
#define LCD_ENTRY_DEC 0x04 // ñìåùåíèå äèñïëåÿ âûêëþ÷åíî, êóðñîð ïåðåìåùàåòñÿ ïî íàêëîíó
#define LCD_ENTRY_DEC_SHIFT 0x05 // âêëþ÷åíèå ñäâèãà äèñïëåÿ, ïåðåìåùåíèå êóðñîðà ïî íàêëîíó
#define LCD_ENTRY_INC_ 0x06 // ñìåùåíèå äèñïëåÿ âûêëþ÷åíî, âêë. ïåðåìåùåíèå êóðñîðà â íàïðàâëåíèè
#define LCD_ENTRY_INC_SHIFT 0x07 // âêëþ÷åíèå ñìåùåíèÿ äèñïëåÿ, óâåëè÷åíèå íàïðàâëåíèÿ ïåðåìåùåíèÿ êóðñîðà
// âêëþ÷åíèå/âûêëþ÷åíèå äèñïëåÿ, âêëþ÷åíèå/âûêëþ÷åíèå êóðñîðà, ìèãàþùèé ñèìâîë â ïîçèöèè êóðñîðà
#define LCD_DISP_OFF 0x08 // äèñïëåé âûêëþ÷åí
#define LCD_DISP_ON 0x0C // äèñïëåé âêë, êóðñîð âûêë
#define LCD_DISP_ON_BLINK 0x0D // äèñïëåé âêë, êóðñîð âûêë, åñòü ìèãàþùèé ñèìâë
#define LCD_DISP_ON_CURSOR 0x0E // äèñïëåé âêë, êóðñîð âêë
#define LCD_DISP_ON_CURSOR_BLINK 0x0F // äèñïëåé âêë, êóðñîð âêë, åñòü ìèãàþùèé ñèìâë
// ïåðåìåùåíèå êóðñîðà/ñìåùåíèå äèñïëåÿ
#define LCD_MOVE_CURSOR_LEFT 0x10 // êóðñîð íàëåâî
#define LCD_MOVE_CURSOR_RIGHT 0x14 // êóðñîð íàïðàâî
#define LCD_MOVE_DISP_LEFT 0x18 // ñäâèã âëåâî
#define LCD_MOVE_DISP_RIGHT 0x1C // ñäâèã âïðàâî
// íàáîð ôóíêöèé: óñòàíîâêà äëèíû äàííûõ èíòåðôåéñà è êîëè÷åñòâà ñòðîê îòîáðàæåíèÿ
#define LCD_FUNCTION_4BIT_1LINE 0x20 // 4-áèòíûé èíòåðôåéñ, îäíà ñòðîêà, 5x7 òî÷åê
#define LCD_FUNCTION_4BIT_2LINES 0x28 // 4-áèòíûé èíòåðôåéñ, äâóõñòðî÷íûé, 5x7 òî÷åê
#define LCD_FUNCTION_8BIT_1LINE 0x30 // 8-áèòíûé èíòåðôåéñ, îäíà ñòðîêà, 5x7 òî÷åê
#define LCD_FUNCTION_8BIT_2LINES 0x38 // 8-áèòíûé èíòåðôåéñ, äâóõñòðî÷íûé, 5x7 òî÷åê
#define LCD_LINES 2 // êîë-âî ñòðîê
#define LCD_DISP_LENGTH 16 // êîë-âî ñèìâîëîâ â ñòðîêå
#define LCD_LINE_LENGTH 0x40 // âíóòðåííÿÿ äëèíà ñòðîêè äèñïëåÿ
#define LCD_START_LINE1 0x00 // DDRM àäðåñ äëÿ 1 ñòðîêè
#define LCD_START_LINE2 0x40 // DDRM àäðåñ äëÿ 2 ñòðîêè
#define LCD_WRAP_LINES 1 // ïåðåíîñ ñòðîêè
#define LCD_DATA0_PIN 4 // ïèí äëÿ äàííûõ
#define LCD_DATA1_PIN 5 // ïèí äëÿ äàííûõ
#define LCD_DATA2_PIN 6 // ïèí äëÿ äàííûõ
#define LCD_DATA3_PIN 7 // ïèí äëÿ äàííûõ
#define LCD_RS_PIN 0 // ïèí ëèíèè RS
#define LCD_RW_PIN 1 // ïèí ëèíèè RW
#define LCD_E_PIN 2 // ïèí ëèíèè òàêòèðîâàíèÿ
#define LCD_LED_PIN 3 // ïèí ïîäñâåòêè
// Ïîçèöèè áèòîâ ðåãèñòðà êîìàíä HD44780U.
#define LCD_CLR 0 // îò÷èñòèòü äèñïëåé
#define LCD_HOME 1 // âåðíóòü êóðñîð äîìîé
#define LCD_ENTRY_MODE 2 // óñòàíîâêà ðåæèìà ââîäà
#define LCD_ENTRY_INC 1 // èíêðåìåíò
#define LCD_ENTRY_SHIFT 0 // âêë ñìåùåíèå
#define LCD_ON 3 // âêë êóðñîðà
#define LCD_ON_DISPLAY 2 // âûêë äèñïëåé
#define LCD_ON_CURSOR 1 // âûêë êóðñîð
#define LCD_ON_BLINK 0 // ìèãàíèå êóðñîðà
#define LCD_MOVE 4 // ïåðåäâèæåíèå êóðñîðà
#define LCD_MOVE_DISP 3 // ïåðåäâèæåíèå êóðñîðà
#define LCD_MOVE_RIGHT 2 // ïåðåäâèæåíèå êóðñîðà íàïðàâî
#define LCD_FUNCTION 5 // íàñòðîéêà ôóíêöèé
#define LCD_FUNCTION_8BIT 4 // 8 áèòíûé ðåæèì
#define LCD_FUNCTION_2LINES 3 // àêòèâàöèÿ ñòðîê
#define LCD_FUNCTION_10DOTS 2 // øðèôòû
#define LCD_CGRAM 6 // óñòàíîâêà àäðåñà CG RAM
#define LCD_DDRAM 7 // óñòàíîâêà àäðåñà DD RAM
#define LCD_BUSY 7 // äèñïëåé çàíÿò
// ñòàíäàðòíûé ðåæèì
#define LCD_MODE_DEFAULT ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) )
// èíèöèàëèçàöèÿ äèñïëåÿ
void lcd_init(uint8_t dispAttr);
// î÷èñòêà äèñïëåÿ
void lcd_clrscr(void);
// êóðñîâ â íà÷àëî êîîðäèíàò
void lcd_home(void);
// ïåðåìåùåíèå êóðñîðà ïî êîîðäèíàòàì
void lcd_gotoxy(uint8_t x, uint8_t y);
// âêë è îòêë ïîäñâåòêè
void lcd_led(uint8_t onoff);
// îòîáðàæåíèå ñèìâîëà â òåêóùåé ïîçèöèè êóðñîðà
void lcd_putc(char c);
// âûâîä ñòðîêè íà äèñïëåé
void lcd_puts(const char *s);
// âûâîä ñòðîêè èç ïàìÿòè
void lcd_puts_p(const char *progmem_s);
// ñëóæåáíàÿ ôóíêöèÿ äëÿ îòïðàâêè êîìàíä äèñïëåþ
void lcd_command(uint8_t cmd);
// îòïðàâêà áàéòà íà äèñïëåé
void lcd_data(uint8_t data);
// ìàêðîñû äëÿ àâòîìàòè÷åñêîãî ñîõðàíåíèÿ ñòðîêîâîé êîíñòàíòû â ïàìÿòè ïðîãðàììû
#define lcd_puts_P(__s) lcd_puts_p(PSTR(__s))
#endif

View File

@ -1,115 +0,0 @@
#include "lcd_headers.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;
}

View File

@ -1,15 +0,0 @@
# Устройство с дисплеем на AVR
* Команда: Лежнин Роман, Куршаков Кирилл, Деркачев Андрей, Чертков Максим
Лежнин Роман
* Главный в группе
* Внедрение протокола HDLC и разработка протокола
Куршаков Кирилл
* Внедрение протокола UART
Чертков Максим
* Отрисовка данных на дисплей
Деркачев Андрей
* Соединения и рефактор блоков UART, HDLC и вывода

View File

@ -1,86 +0,0 @@
<?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>

View File

@ -1,185 +0,0 @@
<?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>

View File

@ -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

View File

@ -1,110 +0,0 @@
#include "hdlc/client.h"
#include "UART/uart.h"
#include "stdbool.h"
#include "LCD/lcd.h"
#include "Protocol/protocol.h"
int main(void) {
struct Client hdlc;
bool flag_connection = false;
Lcd_inciliation();
UART_init();
init_hdlc_client(&hdlc, 200);
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);
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;
}

View File

@ -1,175 +0,0 @@
#include <windows.h>
#include <stdio.h>
#include "hdlc/client.h"
#include "stdint.h"
#include "stdbool.h"
#include "protocol/protocol.h"
int main() {
struct Client hdlc;
HANDLE Port_1;
HANDLE Port_2;
init_hdlc_client(&hdlc, 200);
//Открыть COM-порт
Port_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
0, NULL);
if (Port_1 == INVALID_HANDLE_VALUE) {
DWORD errorCode = GetLastError();
//printf("Create file err: %d.\n", INVALID_HANDLE_VALUE);
printf("Create file err: %lu.\n", errorCode);
return 1;
}
COMMTIMEOUTS timeouts1 = {0};
// Установка таймаутов чтения/записи
timeouts1.ReadIntervalTimeout = 100;
timeouts1.ReadTotalTimeoutConstant = 100;
timeouts1.ReadTotalTimeoutMultiplier = 50;
timeouts1.WriteTotalTimeoutConstant = 100;
timeouts1.WriteTotalTimeoutMultiplier = 50;
if (!SetCommTimeouts(Port_1, &timeouts1)) {
printf("err add timeout COM port.\n");
CloseHandle(Port_1);
return 1;
}
// Открыть COM-порт
Port_2 = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
0, NULL);
if (Port_2 == INVALID_HANDLE_VALUE) {
DWORD errorCode = GetLastError();
//printf("Create file err: %d.\n", INVALID_HANDLE_VALUE);
printf("Create file err: %lu.\n", errorCode);
return 1;
}
if (!SetCommTimeouts(Port_2, &timeouts1)) {
printf("Ошибка при установке таймаутов COM-порта.\n");
CloseHandle(Port_1);
return 1;
}
hdlc_connect(&hdlc);
uint8_t buffer_send_connect[10];
hdlc_get_raw_frame(&hdlc, buffer_send_connect, sizeof buffer_send_connect);
//Write frame from port 1
DWORD written;
BOOL success_write_send = WriteFile(Port_1, buffer_send_connect, sizeof buffer_send_connect,
&written, NULL);
if (!success_write_send){
DWORD errorCode = GetLastError();
printf("WriteFile err: %lu.\n", errorCode);
return -1;
}
if (written != sizeof buffer_send_connect){
printf("Failed to write all bytes to port");
return -1;
}
bool flag_connection = false;
while(!flag_connection){
uint8_t buffer_recive_connect[10];
DWORD received;
BOOL success = ReadFile(Port_2, buffer_recive_connect, sizeof buffer_recive_connect,
&received, NULL);
if (!success)
{
printf("Failed to read from port");
return -1;
}
int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_connect, sizeof buffer_recive_connect,
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] = 12133.23;
mess.numbers[1] = 21232.1;
mess.numbers[2] = 100;
mess.len_numbers = 3;
mess.str = "word war";
mess.len_str = sizeof mess.str;
uint8_t data[23];
size_t len_data;
protocol_encode(mess, data, &len_data);
hdlc_send_data(&hdlc, data, sizeof(data));
uint8_t buffer_for_ex_data[29];
hdlc_get_raw_frame(&hdlc, buffer_for_ex_data, sizeof buffer_for_ex_data);
DWORD written_data;
BOOL success_write_data = WriteFile(Port_1, buffer_for_ex_data, sizeof buffer_for_ex_data,
&written_data, NULL);
if (!success_write_data){
DWORD errorCode = GetLastError();
printf("WriteFile err: %lu.\n", errorCode);
return -1;
}
if (written_data != sizeof buffer_for_ex_data){
printf("Failed to write all bytes to port");
return -1;
}
bool flag_data = false;
while(!flag_data){
uint8_t buffer_recive_data[29];
DWORD received_data;
BOOL success = ReadFile(Port_2, buffer_recive_data, sizeof buffer_recive_data,
&received_data, NULL);
if (!success)
{
printf("Failed to read from port");
return -1;
}
uint8_t data_recive[23];
size_t len_data_recive;
int 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;
}
struct message resp;
protocol_decode(data_recive, sizeof data_recive, &resp);
printf("1: %f\n", resp.numbers[0]);
printf("2: %f\n", resp.numbers[1]);
printf("3: %f\n", resp.numbers[2]);
printf("str: %s\n", resp.str);
flag_data = true;
}
CloseHandle(Port_1);
CloseHandle(Port_2);
return 0;
}

View File

@ -1,110 +0,0 @@
#include "hdlc/client.h"
#include "UART/uart.h"
#include "stdbool.h"
#include "LCD/lcd.h"
#include "Protocol/protocol.h"
int main(void) {
struct Client hdlc;
bool flag_connection = false;
Lcd_inciliation();
UART_init();
init_hdlc_client(&hdlc, 200);
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);
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;
}

42
i2cmaster.h Normal file
View File

@ -0,0 +1,42 @@
#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

View File

@ -8,7 +8,7 @@ struct DisplayData {
float value3; float value3;
}; };
void Lcd_inciliation(); void init_lcd();
void printLcd(struct DisplayData* displayData); void print_lcd(struct DisplayData* displayData);
#endif #endif

View File

@ -1,10 +1,9 @@
#include "lcd_headers.h" #include "MyLCD.h"
// задержеки через асемблер // задержеки через асемблер
#define lcd_e_delay() __asm__ __volatile__( "rjmp 1f\n 1:" ); #define lcd_e_delay() __asm__ __volatile__( "rjmp 1f\n 1:" );
#define lcd_e_toggle() toggle_e() #define lcd_e_toggle() toggle_e()
volatile uint8_t dataport = 0; volatile uint8_t dataport = 0;
static void toggle_e(void); static void toggle_e(void);

110
lcdpcf8574.h Normal file
View File

@ -0,0 +1,110 @@
#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

115
pcf8574.cpp Normal file
View File

@ -0,0 +1,115 @@
#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;
}

View File

@ -1,12 +1,12 @@
#ifndef PCF8574_H_ #ifndef PCF8574_H_
#define PCF8574_H_ #define PCF8574_H_
#define PCF8574_ADDRBASE (0x27) // ŕäđĺń óńň-âŕ #define PCF8574_ADDRBASE (0x27) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>
#define PCF8574_I2CINIT 1 // číčöčŕëčçŕöč˙ i2c #define PCF8574_I2CINIT 1 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i2c
#define PCF8574_MAXDEVICES 1 // ěŕęń ęîë-âî óňđîéńňâ #define PCF8574_MAXDEVICES 1 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define PCF8574_MAXPINS 8 // ěŕęń ęîë-âî ďčíîâ #define PCF8574_MAXPINS 8 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD>
void pcf8574_init(); void pcf8574_init();
int8_t pcf8574_getoutput(uint8_t deviceid); int8_t pcf8574_getoutput(uint8_t deviceid);

109
sketch_feb27a.ino Normal file
View File

@ -0,0 +1,109 @@
#include "client.h"
#include "protocol.h"
#include "uart.h"
#include "MyLCD.h"
struct Client hdlc;
struct DisplayData wait;
struct DisplayData recive_data;
bool wait_for_connect = false;
void setup() {
init_lcd();
init_hdlc_client(&hdlc, 200);
char str[] = "wait for connect... ";
strncpy(wait.topLine, str, sizeof(str));
wait.value1 = 1.0f;
wait.value2 = 20.0f;
wait.value3 = 300.0f;
UART_init();
}
void loop() {
if (!wait_for_connect){
print_lcd(&wait);
hdlc_connect(&hdlc);
uint8_t buffer[10];
hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer);
UART_send(buffer, sizeof buffer);
wait.value2 = 21.0f;
bool recive_connect = false;
while(!recive_connect){
print_lcd(&wait);
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){
wait_for_connect = true;
recive_connect = true;
}
}
} else {
bool flag_recive = false;
uint8_t data_recive[64];
size_t len_data_recive;
recive_data.value1 = 4.0f;
recive_data.value2 = 50.0f;
recive_data.value3 = 600.0f;
strncpy(recive_data.topLine, "Wait for data", sizeof(recive_data.topLine) - 1);
while (!flag_recive){
print_lcd(&recive_data);
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;
// }
int 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;
}
struct message resp;
protocol_decode(data_recive, len_data_recive, &resp);
recive_data.value1 = resp.numbers[0];
recive_data.value2 = resp.numbers[1];
recive_data.value3 = resp.numbers[2];
strncpy(recive_data.topLine, resp.str, sizeof(recive_data.topLine) - 1);
}
}
}

View File

@ -1,4 +1,4 @@
#include "lcd_headers.h" #include "MyLCD.h"
// инициализация интерфейса i2c // инициализация интерфейса i2c
void i2c_init(void) void i2c_init(void)

63
uart.cpp Normal file
View File

@ -0,0 +1,63 @@
#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); // прерывание по приему и передаче
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); // включаем прерывание по завершении передачи
//clear_buffer(&uartTxBuffer);
}
// Получение данных из буфера
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;
}
clear_buffer(&uartRxBuffer);
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.h Normal file
View File

@ -0,0 +1,13 @@
#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 */