А вот разработчики браузеров и всякой прочей жирноты - да, похоже вообще болт ложили на пользователей. Они, похоже, априори считают, что у всех мейнфрейм на 256 ядер по 2.5ГГц каждое, а оперативы минимум 1ПБ!
Я на гитхабе, в ЖЖ
..и сядет в лужу, о чём я выше написал.Eddy_Em писал(а):Если он хочет char отобразить как int, так пусть и вызывает printf("%d\n", c)
Код: Выделить всё
char str[4];
str[0] = 0x35;
str[1] = 0x36;
str[2] = 0x33;
str[3] = 0;
printf("%d\n", (int)str); //"201"
printf("%s\n", str); //"563"
puts(str); //"563"Код: Выделить всё
char str[4];,
str[0] = 5;
str[1] = 6;
str[2] = 3;
str[3] = 0;
printf("%d\n", (int)str); //"201"
printf("%s\n", str); //" "
puts(str); //" "
Код: Выделить всё
char str[4] = "-35";
printf("%d\n", (int)str); //"96"
printf("%s\n", str); //"-35"
puts(str); //"-35"Код: Выделить всё
#include <stdio.h>
int main(){
char x = 15, y = -15;
unsigned char ux = 25, uy = -25;
printf("signed: %d, %d, %d, %d\n", x,y, ux,uy);
printf("unsigned: %u, %u, %u, %u\n", x,y, ux,uy);
return 0;
}
Код: Выделить всё
./a.out
signed: 15, -15, 25, 231
unsigned: 15, 4294967281, 25, 231
Ну вот, а тут утверждают что в 2 кило за лазит, это на AVR в 2 кило за лазит, а на stm по ширше будет.Eddy_Em писал(а):4294967281
В наборе инструкций есть wfe и wfi которые отключают процессор до ближайшего события или прерывания. А значит загрузка будет меньше 100%, т. к. часть времени процессор не работает.parovoZZ писал(а):как это? МК всегда нагружен на 100 процентов.
что-то я не вижу здесь ни каких волшебных инструкцийМурик писал(а):В наборе инструкций есть wfe и wfi

Код: Выделить всё
./a.out
signed: 15, -15, 25, 231
unsigned: 15, 4294967281, 25, 231
Код: Выделить всё
char x = 'Y', y = 'Я';
int8_t ix = 'Y', iy = 'Я';
unsigned char ux = 25, uy = -25;
rtt.println(x, y, ix, iy, ux, uy); // Y, ?, 89, -33, 25, 231
rtt.print<"{}, {}, {d}, {d}">(x, y, x, y); // Y, ?, 89, 223
Откуда им взятся если вы не переводите МК в режим пониженного потребления?Dimon456 писал(а):что-то я не вижу здесь ни каких волшебных инструкций
Код: Выделить всё
/**
\brief Wait For Interrupt
\details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.
*/
#define __WFI() __ASM volatile ("wfi")
/**
\brief Wait For Event
\details Wait For Event is a hint instruction that permits the processor to enter
a low-power state until one of a number of events occurs.
*/
#define __WFE() __ASM volatile ("wfe")Код: Выделить всё
int main(void)
{
while(1)
{
__WFI();
}
}Код: Выделить всё
do{
buf[0] = val % base;
if(buf[0] < 10)buf[0] += '0'; else buf[0] = buf[0] - 0x0A + 'A';
buf--;
val /= base;
}while(val);Код: Выделить всё
void printu(uint32_t val){
char buf[11], *bufptr = &buf[10];
*bufptr = 0;
if(!val){
*(--bufptr) = '0';
}else{
while(val){
register uint32_t o = val;
val /= 10;
*(--bufptr) = (o - 10*val) + '0';
}
}
addtobuf(bufptr);
}Код: Выделить всё
void printuhex(uint32_t val){
addtobuf("0x");
uint8_t *ptr = (uint8_t*)&val + 3;
int i, j, z=1;
for(i = 0; i < 4; ++i, --ptr){
if(*ptr == 0){ // omit leading zeros
if(i == 3) z = 0;
if(z) continue;
}
else z = 0;
for(j = 1; j > -1; --j){
uint8_t half = (*ptr >> (4*j)) & 0x0f;
if(half < 10) bufputchar(half + '0');
else bufputchar(half - 10 + 'a');
}
}
}