Change text encode to UTF-8

master
maxxir_w 7 years ago
parent fa4089a78a
commit e66e9684ab

@ -2,6 +2,7 @@
* main.c
*
* Created on: 22 нояб. 2018 г.
*
* Author: maxx
*/
/*

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
/*
@ -198,8 +198,8 @@ void get_mcusr(void)
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 FATFS LFN Chang tst 17/12/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -244,7 +244,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
if(++fatfs_10ms > 9 )
@ -283,18 +283,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -304,10 +304,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -942,7 +942,7 @@ void fatfs_monitor(void)
if (res) put_rc(res);
break;
// <fo 0x1 123.txt> - Открываем для чтения(FA_OPEN_READ = 0x1) файл "123.txt"
// <fo 0x1 123.txt> - Открываем для чтения(FA_OPEN_READ = 0x1) файл "123.txt"
case 'o' : /* fo <mode> <name> - Open a file */
if (!xatoi(&ptr, &p1)) break;
while (*ptr == ' ') ptr++;
@ -1206,8 +1206,8 @@ int main()
avr_init();
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());
@ -1256,7 +1256,7 @@ int main()
//led1_high(); //LED1 ON
if(prev_sw1)
{
//!! Здесь по факту нажатия кнопки (1->0 SW1)
//!! Здесь по факту нажатия кнопки (1->0 SW1)
//!! Debug only
PRINTF("SW1 is pressed\r\nADC0/PA0 is: %u\r\n", adc_read(0));
//PRINTF("SW1 is pressed\r\n");

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -68,8 +68,8 @@ void get_mcusr(void)
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP Loop-back && FATFS SDCARD template WIZNET_5500 ETHERNET 20/12/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -117,7 +117,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
if(++fatfs_10ms > 9 )
@ -156,18 +156,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -177,10 +177,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -500,8 +500,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -64,8 +64,8 @@ void get_mcusr(void)
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP Loop-back WIZNET_5500 ETHERNET 25/11/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -112,7 +112,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -144,18 +144,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -165,10 +165,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -313,8 +313,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -59,8 +59,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.2 DHCP IP Loop-back WIZNET_5500 ETHERNET 26/11/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -107,7 +107,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -138,18 +138,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -159,10 +159,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -343,8 +343,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -61,8 +61,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP DNS Client WIZNET_5500 ETHERNET 25/11/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -109,7 +109,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -140,18 +140,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -161,10 +161,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -303,8 +303,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -63,8 +63,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP DNS Client & SNTP Client WIZNET_5500 ETHERNET 27/11/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -111,7 +111,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -142,18 +142,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -163,10 +163,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -317,8 +317,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -51,8 +51,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v2.1 Static IP Telnet server WIZNET_5500 ETHERNET 01/12/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -98,7 +98,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -129,18 +129,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -150,10 +150,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -274,8 +274,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -61,8 +61,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v2.1 Static IP ICMP (ping) client-server WIZNET_5500 ETHERNET 03/12/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -109,7 +109,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -140,18 +140,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -161,10 +161,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -310,8 +310,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* globals.h
*
* Created on: 29 íîÿá. 2018 ã.
* Created on: 29 нояб. 2018 г.
* Author: maxx
*/

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -64,8 +64,8 @@
volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP Simple WEBSERVER WIZNET_5500 ETHERNET 04/12/2018\r\n"; // Program name
#if defined(__AVR_ATmega128__)
@ -111,7 +111,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -143,18 +143,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -164,10 +164,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -285,8 +285,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* globals.h
*
* Created on: 29 íîÿá. 2018 ã.
* Created on: 29 нояб. 2018 г.
* Author: maxx
*/

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -71,8 +71,8 @@
#endif
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.0 Static IP HTTPServer_LPC11E36->AtMega1284p WIZNET_5500 ETHERNET 06/12/2018\r\n"; // Program name
/*
@ -138,7 +138,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -170,18 +170,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -191,10 +191,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -347,8 +347,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* globals.h
*
* Created on: 29 íîÿá. 2018 ã.
* Created on: 29 нояб. 2018 г.
* Author: maxx
*/

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -111,8 +111,8 @@
#endif
*/
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v2.3d Static IP HTTP_server FLASH Pages WIZNET_5500 ETHERNET 12/12/2018\r\n"; // Program name
/*
@ -178,7 +178,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -210,18 +210,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -231,10 +231,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -375,8 +375,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* globals.h
*
* Created on: 29 íîÿá. 2018 ã.
* Created on: 29 нояб. 2018 г.
* Author: maxx
*/

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -111,8 +111,8 @@
#endif
*/
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v2.3d Static IP HTTP_server FLASH Pages WIZNET_5500 ETHERNET 12/12/2018\r\n"; // Program name
/*
@ -178,7 +178,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
}
@ -210,18 +210,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -231,10 +231,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -375,8 +375,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());

@ -1,7 +1,7 @@
/*
* globals.h
*
* Created on: 29 íîÿá. 2018 ã.
* Created on: 29 нояб. 2018 г.
* Author: maxx
*/

@ -1,7 +1,7 @@
/*
* main.c
*
* Created on: 22 нояб. 2018 г.
* Created on: 22 нояб. 2018 г.
* Author: maxx
*/
#include <avr/io.h>
@ -145,8 +145,8 @@ void get_mcusr(void)
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v2.4d Static IP HTTP_server SDCARD Pages WIZNET_5500 ETHERNET 19/12/2018\r\n"; // Program name
/*
@ -213,7 +213,7 @@ ISR (TIMER0_COMPA_vect)
// Compare match Timer0
// Here every 1ms
_millis++; // INC millis tick
// Тест мигаем при в ходе в прерывание
// Тест мигаем при в ходе в прерывание
// 500Hz FREQ OUT
// LED_TGL;
if(++fatfs_10ms > 9 )
@ -252,18 +252,18 @@ static int uart0_putchar(char ch,FILE *stream);
static void uart0_rx_flash(void);
static FILE uart0_stdout = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE);
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
//PS. stdin не переназначаю, т.к. удобнее с ним работать через uart.h - api:
/*
* Т.е. например так
* Т.е. например так
c = uart1_getc();
if (( c & UART_NO_DATA ) == 0)
{
uart1_putc( (unsigned char)c );
}
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
При этом чекаем что буфер приема не пуст и опрос идет неблокирующий (+ работаем через UART RX RINGBUFFER),
а если работаем в стиле stdin->getchar() там опрос блокируется пока символ не будет принят (поллинг)
через UART1_RX, т.е. неудобно.
*/
// STDOUT UART0 TX handler
@ -273,10 +273,10 @@ static int uart0_putchar(char ch,FILE *stream)
return 0;
}
// Очищаем буфер приема UART1 RX (иногда нужно)
// Очищаем буфер приема UART1 RX (иногда нужно)
static void uart0_rx_flash(void)
{
// Считываем все из ring-buffer UART1 RX
// Считываем все из ring-buffer UART1 RX
unsigned int c;
do
{
@ -587,8 +587,8 @@ int main()
// Print program metrics
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF("%S", str_prog_name);// Название программы
PRINTF("Compiled at: %S %S\r\n", compile_time, compile_date);// Время Дата компиляции
PRINTF(">> MCU is: %S; CLK is: %luHz\r\n", str_mcu, F_CPU);// MCU Name && FREQ
PRINTF(">> Free RAM is: %d bytes\r\n", freeRam());