Чт май 05, 2022 16:37:13
Чт май 05, 2022 19:53:06
Пт май 06, 2022 12:54:21
Пт май 06, 2022 13:58:40
void uart_putu(uint8_t x)
{
#if 0
char buff[8] = {0};
char* p = buff+7;
*p-- = 0;
do { *p-- = (x % 10) + '0'; x /= 10; } while(x);
uart_puts(p+1);
#else
uint8_t d = x / 10;
uint8_t e = x % 10;
if(d != 0)
uart_putu(d);
uart_putc(e + '0');
#endif
}
void uart_puts(const char *s)
{
while (*s) uart_putc(*s++);
}
Пт май 06, 2022 14:48:28
void uart_putu(uint8_t x)
{
#if 0
char buff[8] = {0};
char* p = buff+7;
*p-- = 0;
do { *p-- = (x % 10) + '0'; x /= 10; } while(x);
uart_puts(p+1);
#else
uint8_t d = x / 10;
uint8_t e = x % 10;
if(d != 0)
uart_putu(d);
uart_putc(e + '0');
#endif
}
void uart_puts(const char *s)
{
while (*s) uart_putc(*s++);
}
Пт май 06, 2022 15:01:30
PE4ENbKA_173 писал(а):как же компилятору в свойства добавить команды
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "ir.h"
#include "uart.h"
const char addrsz[] PROGMEM = {"addr="};
const char cmdsz [] PROGMEM = {", cmd="};
const char crlfsz[] PROGMEM = {"\r\n"};
int main(void)
{
uint8_t addr, cmd;
/* setup */
IR_init();
/* loop */
while (1) {
if (IR_read(&addr, &cmd) == IR_SUCCESS) {
uart_puts_pgm(addrsz);
uart_putu(addr);
uart_puts_pgm(cmdsz);
uart_putu(cmd);
uart_puts_pgm(crlfsz);
}
}
}
void uart_puts_pgm(const char *s);
void uart_puts_pgm(const char *s)
{
uint8_t c;
while((c = pgm_read_byte(s++)) != 0)
uart_putc(c);
}
Пт май 06, 2022 15:39:01
PE4ENbKA_173 писал(а):как же компилятору в свойства добавить команды
Пт май 06, 2022 18:39:15
Вт май 10, 2022 10:10:10
void uart_puts_pgm(const char *s)
{
uint8_t c;
while((c = pgm_read_byte(s++)) != 0)
uart_putc(c);
}
void uart_puts_pgm(const char *s)
{
uint8_t c;
while((c = pgm_read_byte_near(s++)) != 0)
uart_putc(c);
}