Перевести код на си/си++

proger123
Offline
Зарегистрирован: 05.12.2013

Всем привет! Помогите сделать. Например, есть код Arduino для светодиода, как его переделать в си/си++?

Сама задача в том, чтобы сделать программу (совместить скетч и си/си++), с помощью которой можно включать/выключать светодиод (то есть подаем в аргументе 1 - светодиод загорается, подаем 0 -гаснет).

Помогите сделать, оооочеень надо!!!
 

// Определим, к какой ножке микросхемы будет подключен  светодиод
#define LED 13
#include <avr/io.h>
 
void setup() {
  // Укажем, что данная ножка будет использоваться для вывода
  pinMode(LED, OUTPUT);
}
 
void loop() {
  // Зажжем светодиод, подав напряжение на ножку
  digitalWrite(LED, HIGH);
  // Подождем секунду
  delay(1000);
  // Погасим светодиод, убрав напряжение с ножки
  digitalWrite(LED, LOW);
  // Подождем секунду
  delay(1000);
}

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

С++ на каком железе предполагается запускать?

maksim
Offline
Зарегистрирован: 12.02.2012

proger123 пишет:

как его переделать в си/си++?

Не поверите, он и так уже в си.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

просто все разнесено по функциям....

Клапауций
Offline
Зарегистрирован: 10.02.2013

это какая-то пошесть заданий в университетах - стУдентам задают писать проги на С++ для мигания светодиодами.

 

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

хорошо, если напишут....

sva1509
Offline
Зарегистрирован: 07.12.2012

Доброго времени суток !

Я так понял Вы хотите написать программу без библиотек arduino, давайте попробуем.

Для начала открываем схему и смотрим кто такой бит 13 - это 5 -ый бит порта B.

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
     DDRB |= (1 << 5);   // настраиваем 5 бит порта B на вывод
     while(1){PORTB ^= (1 << 5);_delay_ms(1000);}
     return(0);
}

Ну както так.

 

ororoshka
Offline
Зарегистрирован: 14.11.2013

1. Установите CodeVision, почитайте http://avr-start.ru, http://sotvorimvmeste.ru/viewforum.php?f=36

2. Выбирайте контроллер, я использую tiny13

3. Для экспериментов c электроникой установите Proteus. Это позовлит создать схему и сразу тестировать прошивку даже без настоящего контроллера.

#include <tiny13.h>
#include <delay.h>

DDRB=0b00000001; // устанавливаем направление работы порта, 0 вход, 1 выход. Сейчас порт PB0 (см распиновку контроллера) установлен как выход.
PORTB=0b00000001; // подключаем внутренний подтягивающий резистор или устанавливаем состояние выхода по умолчанию

digitalWrite () это аналог PORTB.1=1; // записать 1 в ножку 1 порта B
delay_ms (500); // что бы работать с задержками, изначально необходимо подключить библиотеку через #include <delay.h>

Программа будет полностью аналогичная ардуиновской.