...........
Вот скажыте,какая разница,между этими выражениями ??
этой---
cur_pin_out=0x00;
if(PIND!=(~(1<<cur_pin_out)))
и вот этой---
if(PIND!=(~(1<<0)))
....
Ато не работает чего то ((
В одном случае - переменная, в другом - ноль.какая разница,между этими выражениями ??
Опять таинственные фразы...Ато не работает чего то ((
Я имел ввиду что при одинаковых выражениях вида 1<<X, где Х -число(0),или переменная которой я присвоил 0, выдаёт разные результаты )Аlex писал(а):В одном случае - переменная, в другом - ноль.какая разница,между этими выражениями ??
Опять таинственные фразы...Ато не работает чего то ((
Это как ??vitalik_1984 писал(а):если хотите переменную использовать лучше применить маски
Да, все Ок, работает. Нулевой элемент массива у меня для других целей.vitalik_1984 писал(а):в этом выражении еще и скобка лишняя похоже:-)а точно адрес первого элемента массива нужно передать в функцию?может нулевой?Код: Выделить всё
strncmp_P((const char*)data, *bru_600, 3))Код: Выделить всё
Код: strncmp_P((char const*)&data[1], PSTR("600"), 3)
Код: Выделить всё
class SHUNT
{
private:
........
unsigned char v_min; // Min tension flag
unsigned char v_max; // Max tension flag
public:
SHUNT();
~SHUNT();
.........
bool LoadShuntBypass(unsigned char *addr);
};
Код: Выделить всё
bool SHUNT::LoadShuntBypass(unsigned char *addr)
{
if(addr[DATA_SIZE] != SH_BYP_SZ){return false;} // DATA_SIZE =0x02u ; SH_BYP_SZ = 0x03u
v_min = addr[V_MIN]; // V_MIN = 0x03u
v_max = addr[V_MAX]; // V_MAX = 0x04u
return true;
}
Код: Выделить всё
static unsigned char buff[32];
SHUNT sh2;
..................
..............//Принимаем пакет в буфер и проверяем на целостность.
..............
if(!(sh2.LoadShuntBypass(buff))){cout<<"BYPASS DATA CORRUPTED!"<<endl;} //После первичной проверки, извлекаем некоторые данные из пакета.
..
Код: Выделить всё
#define _BV(x) (1<<(x))
#define PIN1 1
#define PIN2 2
#define PIN3 3
#define MASK_PINS (_BV(PIN1)|_BV(PIN2)|_BV(PIN3)) //формируем маску здесь и тремя строками выше
unsigned char cur_pin_out; //Переменную обьявили
///___________Основной цикл
if(MASK_PINS&(cur_pin_out<<=1)){/*тут делаем что нужно*/} //Тут применили маску и заодно сдвинули cur_pin_out влево
else {cur_pin_out=_BV(PIN1);} //Если кончились ножки(по маске), то заново.
Смахивает на какой-то бред. Если, конечно, это не очередные приблуды псевдо-си компиляторов.urry писал(а):const rom char *pArrRom="12345";
В putch.куда она выводит свои значения
Код: Выделить всё
void putch(char);Насчет "куда" - Алекс уже сказал. Использует putc(...) библиотеки stdio.h как стандартный вывод. Переписываем его или пишем свой и помещаем в проект. Самописный "перекроет" библиотечный.Transistor писал(а):Ребята что ето за такая функция printf с чем к чему ету функцию подають[skip]
куда она выводит свои значения.
Сразу скажу, что конструкция не работала. Почему, уже разобрался сам.DX168B писал(а):Приветствую всех.
Такой вопрос.
//////////////
buff[32]
Я непонямаю как ета функция работает. Кстате открил я ету библиотеку и нефига там нет только perror от такая функция. Я знаю как ета функция работает на компе но как она работает в МК.ut1wpr писал(а):Насчет "куда" - Алекс уже сказал. Использует putc(...) библиотеки stdio.h как стандартный вывод. Переписываем его или пишем свой и помещаем в проект. Самописный "перекроет" библиотечный.
Ну, а насчет "с чем идять и подають" - это сходу в Википедрию. Если нет другой литературы. Функция весьма популярна, причем не только в Си.