• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Поясните запись строки программы на С

Пашука

Ученик
Почётный участник
Регистрация
22 Май 2016
Сообщения
195
Реакции
7
Баллы
0
Поясните запись строки программы на С

Откуда взялись i и j ? Как работает этот цикл?

//Функция временной задержки
void delay(void)
{
unsigned int i, j;
for(i = 0; i < 6500; i++)
for(j = 0; j < 1000; j++);
}
Что означает 0х08 или 0х04 даже в интернете нигде не поясняется.
Расшифруйте пожалуйста и эту строку тоже.

// функция вывода числа на индикацию
void set_led(unsigned char N)
{
// Управление светодиодным индикатором D4
P12 = (N & 0x01) ? P12 & ~0x08 : P12 | 0x08;
 
Откуда взялись i и j ? Как работает этот цикл? //Функция временной задержки
void delay(void)
{
unsigned int i, j;
for(i = 0; i < 6500; i++)
for(j = 0; j < 1000; j++);
}
Насколько я могу судить (хотя на СИ, увы, не пишу) это есть ни что иное, как прогон пустого оператора 6500000 раз. Даже если тело цикла пустое, всё равно обращение к переменным i и j занимает какое-то время. Так формируется задержка длительностью в нужное количество наносекунд.
 
Спасиб,хоть что-то прояснилось.
Может кто-нибудь ещё что-то дополнит.
 
кАнЭшнА!
Формат записи числа 0x"число" воспринимается компилятором как шестнадцатеричное число (hex). Есть еще 0d - десятичное (по умолчанию), 0o - восьмеричное, 0b - двоичное.
И еще, старайтесь не пользоваться самоделками, прокручивающими пустые циклы. Длительность задержки будет зависеть от быстродействия компа, на котором запущена программа. В библиотеке С есть стандартная функция Delay(int), работающая по таймеру.
 
Спасиб,кругозор расширяется. (Это кусок программы для микроконтроллера.)
 
Назад
Сверху