Доброго времени суток. Программирую в atmelstudio на С. есть ардуино уно и can shield. Проблема в том что я нашел библиотеку под can shield только на С++, а мне нужно на С. Нет ни у кого готовой библиотеке на С или же как переписать библиотеку под определеный язык?
мк mcp2515, CAN-BUS Shield V2
Ну так в твоем случае отличие в том, что в библиотеке (скорее всего) используется класс. Вынеси все функции из класса - вот и получишь ту же библиотеку, но на С.
С такими вопросами библиотеку с С++ на Си нереально перенести, увы. Ответ выходит за рамки этого форума. За рамки любого форума в принципе.
Кстати, почему?
У меня она искаропки на С++ предлагает писать ))
ну я стажируюсь в компании как программист мк, и любой мк можно прогать на С, ардуино просто учебная плата на которой можно понять основы, но сама среда разработки ARDUINO IDE очень ограничивает возможности мк, тк она использует не совсем С++ а библиотеку к в нем которая еще сильнее упрощает работу. С одной стороны это удобно с другой же многие не понимают почему именно так. к примеру чтобы подать выходной сигнал на порт вы пишите что типа digitalwrite(10,1)(вроде), а на C нужно писать DDRB|=(1<<10) и PORTB|=(1<<10). В этих двух записях сказано что мы порт B делаем как выход и включаем подтягивающий резистор
Я, может быть, сейчас тебя очень сильно удивлю…
Но и на Си++ тоже будет так же…
Это не инструкции языка, а обращение к регистрам микроконтроллера
Кстати, ты с ошибкой написал…
// Всё ниже описанное применительно к Ардуино Нано (Atmega168/328P)
DDRB |= (1<<PB2); // Это равнозначно pinMode(10, OUTPUT);
PORTB |= (1<<PB2); // А вот уже это равнозначно digitalWrite(10, HIGH);
ЗЫ: Какая-то подозрительная контора, которая новичков основам совсем не учит… ))
Мальчик, если ты 8-битное значение будешь на 10 бит сдвигать, тебе никакая стажировка не поможет. Херню можно писать и на Си и на С++
Это совершенно не соответствует действительности. Конечно , среда Ардуино имеет свои команды, но это вовсе не означает, что вы должны использовать обязательно digitalWrite(). Хотите пишите так, хотите через регистры.
Возможности тут больше зависят от программиста, с чем у вас пока не особо:)
Расскажи это тем, кто пишет под stm32.
очень познавательная тема. Внимательно слежу.