Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 13
1

Цикл for внутри цикла while (работа с переменными)

13.05.2020, 11:33. Просмотров 988. Ответов 4
Метки нет (Все метки)

Всем доброго дня. Помогите новичку.
Задача. При нажатии на кнопку переменная получает некое числовое значение, в данный момент только одно.55.
Внутри цикла for переменная получает это значение и отрабатывает этот цикл, в данном случаи мигает светодиодом указанное количество раз.
Но почему то переменная из цикла while не переходит в цикл for хотя переменная объявлена глобально.
Вот сам код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 #include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>
 
volatile int i;
volatile int a;
 
int main()
 {
    DDRC=0xFF;
    PORTC=0x00;
    DDRB=0x00;
    PORTB=0xFF;
    DDRD=0xFF;
    PORTD=0x00;
    while(1)
       {
      if (bit_is_clear(PINB, 0))
         {
         a=55;
         }else{
        a=0;
        }
    if(a==55){
       PORTD=0xFF; // Эти светодиоды включаются
       }else{
          PORTD=0x00;// ..и выключаются 
          }
   }
      for(i=1; i<=a; i++){
    PORTC=0xFF; // А эти не работают
       _delay_ms(10);
    PORTC=0x00; // и эти.
       _delay_ms(10); 
         }
     
 }
Что я делаю не так? Ткните пожалуйста носом...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2020, 11:33
Ответы с готовыми решениями:

Цикл For. Вывод цикла внутри цикла
Всем привет, есть проблемка. Код рабочий но при вводе среднего бала допустим выше несуществующего...

Цикл внутри цикла!
Здравствуйте. Имеется БД из 2 таблиц. Подключена к программе через АДО. Нужно вывести отчет в...

Цикл внутри цикла (While)
Всем привет. Никак не получается организовать цикл внутри цикла на SQL Server 2012. В итоге...

Цикл if внутри цикла for
Добрый день всем сюда зашедшим, пишу код на Pascal для программы isis/base возник вопрос, вот этот...

4
Модератор
8201 / 6071 / 811
Регистрация: 14.02.2011
Сообщений: 21,062
13.05.2020, 11:47 2
скобка на 31 строке, похоже, оносится к while и до for дело просто не доходит
т.е у тебя не вложеные циклы а два последовательных
1
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 13
13.05.2020, 11:55  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
скобка на 31 строке, похоже, оносится к while и до for дело просто не доходит
т.е у тебя не вложеные циклы а два последовательных
Да, в данном коде он вне тела цикла while так как внутри неё цикл for работает без остановки (не останавливаясь на значении переменной а), а вне тела он вообще не работает.
0
Модератор
8201 / 6071 / 811
Регистрация: 14.02.2011
Сообщений: 21,062
13.05.2020, 12:31 4
Цитата Сообщение от Azerhud Посмотреть сообщение
а вне тела он вообще не работает.
так и не будет
поскольку до него дело не доходит
Цитата Сообщение от Azerhud Посмотреть сообщение
цикл for работает без остановки (не останавливаясь на значении переменной а)
писать циклы нужно правильно
Цитата Сообщение от Azerhud Посмотреть сообщение
for(i=1; i<=a; i++)
C
1
for(i=0; i<a; i++)
1
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 13
13.05.2020, 14:14  [ТС] 5
Цитата Сообщение от ValeryS Посмотреть сообщение
C
1
for(i=0; i<a; i++)
Спасибо, заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2020, 14:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Цикл внутри цикла
Здравствуйте, делаю скрипт для массового добавления урлов и кеев в базу тдс. Нужно чтобы переменная...

Цикл внутри цикла
Возможно ли сделать ветвлением? Здесь же не одно истинное значение, как и ложное

Цикл внутри цикла
Есть вопрос, можно ли задать цикл внутри цикла? Вот в этой программе чтоб j прошёл условие...

Цикл внутри условия цикла
Можно ли внутрь условия засунуть цикл как показано ниже.Если да то что тут не так подскжите. Гугл...

Можно ли располагать цикл внутри цикла?
Здравствуйте. Можно ли располагать цикл внутри цикла? for(....) { if() { ...

Некорректная работа цикла do/while, вложенного в цикл for
Помогите!!!Почему не работает цикл while(1)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.