Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2020, 20:05   #1
sns23
Новичок
Джуниор
 
Регистрация: 30.03.2020
Сообщений: 4
По умолчанию язык С

Я начинающий в С, не пойму как сделать такое задание:
Огни движутся в одну сторону слева-направо, при достижении послед- него светодиода в цепочке направление Пример кода, который сделал я, в уточнении" опубликован.
Код программы который я начал писать:
#include «compiler_defs.h»
#include «C8051F120_defs.h»
#include «Config.h»

Код:
#include «compiler_defs.h»
#include «C8051F120_defs.h»
#include «Config.h»

// Global variables
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;

// Main function
void main (void) {
// Local variables
unsigned int i;
// Device initialization
Init_Device();

// General SFR-page selection
SFRPAGE = LEGACY_PAGE;

// Never ending loop
while (1){
LED1 = 0;
for (i = 0; i < 50000; i++) {}
LED1 =1;
for (i = 0; i < 50000; i++) {}
LED2 = 0;
for (i = 0; i < 50000; i++) {}
LED2 =1;
for (i = 0; i < 50000; i++) {}
LED3 = 0;
for (i = 0; i < 50000; i++) {}
LED3 =1;
for (i = 0; i < 50000; i++)
LED4 = 0;
for (i = 0; i < 50000; i++) {}
LED4 =1;
for (i = 0; i < 50000; i++) {}
LED5 = 0;
for (i = 0; i < 50000; i++) {}
LED5 =1;
for (i = 0; i < 50000; i++) {}
LED6 = 0;
for (i = 0; i < 50000; i++) {}
LED6 =1;
for (i = 0; i < 50000; i++) {}
LED7 = 0;
for (i = 0; i < 50000; i++) {}
LED7 =1;
for (i = 0; i < 50000; i++) {}

// Main code
sns23 вне форума Ответить с цитированием
Старый 30.03.2020, 20:17   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от sns23 Посмотреть сообщение
#include «compiler_defs.h»
А кто вам рекомендовал использовать кавычки-ёлочки?
Arigato вне форума Ответить с цитированием
Старый 30.03.2020, 21:37   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Интересно - если включена оптимизация (а такая есть у 51-го компилятора?) - не выбросит ли он пустые циклы, образующие задержку? Прогу можно сделать раза в 2 короче, сформировав массив констант, соответствующих горящим диодам, и в цикле закидывать по одной константе в порт, заодно отрабатывая задержку.
digitalis вне форума Ответить с цитированием
Старый 31.03.2020, 01:19   #4
sns23
Новичок
Джуниор
 
Регистрация: 30.03.2020
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
А кто вам рекомендовал использовать кавычки-ёлочки?
Программа сама это сделала
sns23 вне форума Ответить с цитированием
Старый 31.03.2020, 01:21   #5
sns23
Новичок
Джуниор
 
Регистрация: 30.03.2020
Сообщений: 4
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Интересно - если включена оптимизация (а такая есть у 51-го компилятора?) - не выбросит ли он пустые циклы, образующие задержку? Прогу можно сделать раза в 2 короче, сформировав массив констант, соответствующих горящим диодам, и в цикле закидывать по одной константе в порт, заодно отрабатывая задержку.
Честно хз. Я первый раз с этим работаю и как тут что вообще 0. Поэтому и залез за помощью. Можете написать как это сделать? А то я не очень это понимая

Последний раз редактировалось sns23; 31.03.2020 в 01:23.
sns23 вне форума Ответить с цитированием
Старый 31.03.2020, 09:28   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

51-й проц - это не моё. На АВР сделал бы это - как два байта переслать. Могу нарисовать схему алгоритма, а код ...
digitalis вне форума Ответить с цитированием
Старый 02.04.2020, 10:28   #7
sns23
Новичок
Джуниор
 
Регистрация: 30.03.2020
Сообщений: 4
По умолчанию

Цитата:
Сообщение от sns23 Посмотреть сообщение
Честно хз. Я первый раз с этим работаю и как тут что вообще 0. Поэтому и залез за помощью. Можете написать как это сделать? А то я не очень это понимая

Цитата:
Сообщение от digitalis Посмотреть сообщение
Интересно - если включена оптимизация (а такая есть у 51-го компилятора?) - не выбросит ли он пустые циклы, образующие задержку? Прогу можно сделать раза в 2 короче, сформировав массив констант, соответствующих горящим диодам, и в цикле закидывать по одной константе в порт, заодно отрабатывая задержку.
А можете, если не сложно, скинуть пример. Попытаюсь под себя подстроить. А то я вообще не могу сообразить, как сделать цикл, чтоб он в одну сторону проходил, а потом обратно
sns23 вне форума Ответить с цитированием
Старый 02.04.2020, 21:48   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Если разбираешься в схемах алгоритмов - она несложная. А если нет - изучай. Программер без знания схем - что водила без ПДД.
Изображения
Тип файла: jpg Tudy_sudy.JPG (26.6 Кб, 4 просмотров)
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода c языка Pascale в язык PHP или в язык JavaScript Javlonka JavaScript, Ajax 1 30.09.2014 22:48
Язык С s2df Помощь студентам 4 01.11.2013 10:57
Что это за язык? Intripio Помощь студентам 3 11.03.2012 12:22
язык Си bars1984 Помощь студентам 0 02.06.2009 09:36