Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.01.2021
Сообщений: 3
1

Программированием на Си для микроконтроллеров

17.01.2021, 19:28. Показов 1459. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не так давно начал программировать на Си для микроконтроллеров ,но хелпаните
условие : нажимаю 1 раз светодиод горит ,нажимаю второй раз -моргает ,нажимаю 3-ий раз -гаснет .
вот примерный код , пробывал ,работает не так как надо .

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 <io.h>           //запрос библиотеки
#include <delay.h>       //подключение библиотеки задержки 
 
void main(void)   // начало основной программы
{        
        int i;    
         int k;    
        int g;  
      DDRB = 0b00001000;   //установка вывода 3 на выход, вывода 4 на вход в регистре состояния порта В
      PORTB= 0b00010000;      //запись лог 0 в регистр данных вывода 3 порта В, подтяжка входа 4 к лог. "1"
      i=1  ;    
      k =0 ;    
      g = 1  ;    
     
while (1)     // бесконечный цикл
{
     switch(i,k,g) 
{ 
    case 0:  
               i=1 ; 
             PORTB=0b00001000;
             break;
    case 1: 
        k=0;   
        PORTB=0b00001000;
        delay_ms(100);  
        PORTB=0b00000000;
         delay_ms(100);  
         break;
    
    case 2 :   
            k=0;
   PORTB=0b00000000;
    delay_ms(100);
     break;  
}     
}
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2021, 19:28
Ответы с готовыми решениями:

Как начать заниматься электроникой и программированием микроконтроллеров? Курсы и прочее...
Здравствуйте,не подскажете ли вы,как начать заниматься с этой электротехникой? Вот хочется мне эти...

Выбор ноутбука до 40 т.р. для учебы+для возможных занятий программированием
Здравствуйте! Необходимо найти ноутбук для комфортной учебы (MathCad,Компас,Multisim,возможно...

Хороший ноутбук для требовательных игр и для программ связанных с программированием и графикой +/- 1100$.
http://catalog.onliner.by/compare/dv77170erb3q56e+k75vm_ty031v+ge700nc076xpl/ помогите пожалуйста...

Полезные ссылки для тех, кто до сих пор, любит заниматься программированием для DOS и Windows
Тем, кто до сих пор любит работать в старых 16-ти разрядных версиях DOS и писать на разных языках...

11
Эксперт .NET
10989 / 6909 / 1561
Регистрация: 25.05.2015
Сообщений: 20,837
Записей в блоге: 14
17.01.2021, 19:47 2
Это что за язык программирования такой?
Цитата Сообщение от GAdel Посмотреть сообщение
switch(i,k,g)
Точно Си?

МК - PIC или что?
0
0 / 0 / 0
Регистрация: 17.01.2021
Сообщений: 3
17.01.2021, 20:19  [ТС] 3
Да Си.
Для микроконтроллера : AVR
0
Модератор
Эксперт по электронике
8941 / 6708 / 920
Регистрация: 14.02.2011
Сообщений: 23,649
17.01.2021, 23:38 4
Цитата Сообщение от GAdel Посмотреть сообщение
Да Си.
и что это за конструкция
Цитата Сообщение от GAdel Посмотреть сообщение
switch(i,k,g)
0
1180 / 655 / 113
Регистрация: 15.05.2012
Сообщений: 4,049
18.01.2021, 10:57 5
Что "нажимаю"?
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
19.01.2021, 16:48 6
Цитата Сообщение от pyzhman Посмотреть сообщение
Что "нажимаю"?
Цитата Сообщение от GAdel Посмотреть сообщение
нажимаю 1 раз светодиод
очевидно же...

PS: кстати, это вполне реально ).
1
pyzhman
20.01.2021, 06:51
  #7

Не по теме:

Хм... Надо попробовать.

0
594 / 416 / 136
Регистрация: 02.10.2008
Сообщений: 1,759
Записей в блоге: 1
20.01.2021, 19:17 8
Цитата Сообщение от GAdel Посмотреть сообщение
работает не так как надо .
Цитата Сообщение от GAdel Посмотреть сообщение
switch(i,k,g)
Оператор запятая
Грубо говоря, вы делаете
C
1
2
3
4
5
6
7
8
9
10
switch(g)
{
     case 0:
                 ....
               break;
     case 1:
                 ....
               break;
// и т.д.
}
0
0 / 0 / 0
Регистрация: 17.01.2021
Сообщений: 3
20.01.2021, 20:17  [ТС] 9
Добрый вечер ,то что написано на case 0,1,2 он просто не видет их ,или тут еще есть какое то волшебство )?
0
594 / 416 / 136
Регистрация: 02.10.2008
Сообщений: 1,759
Записей в блоге: 1
20.01.2021, 22:00 10
Ещё раз.
Оператор ',' (запятая) в Си возвращает последнее вычесленное значение.
Если написать
C
1
2
3
у = 7;
 
х = (у = у - 5, 4/ у);
то x будет равен 2.
Сначала вычисляется первое значение => y = 7-5, y становится равным 2, затем вычисляется 4/y, т.е. 4/2. Именно этот, последний результат вычислений и будет работать в switch()

У вас последним идёт значение g => switch() будет работать по значению g, а не k как вы предполагаете...

З.Ы. Ну либо код не полон и g может меняться к-либо обработчиком прерывания и т.п.
2
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
21.01.2021, 10:21 11
Цитата Сообщение от drfaust Посмотреть сообщение
Оператор ',' (запятая) в Си возвращает последнее вычесленное значение.
поблагодарил. не знал ). Выглядит это несколько бредово, но тем не менее...
0
pyzhman
21.01.2021, 11:13     Программированием на Си для микроконтроллеров
  #12

Не по теме:

Какого цвета нужен дракон?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2021, 11:13

Язык для первого знакомства с программированием
Здравствуйте! Вопрос такой: какой, на ваш взгляд, из существующих языков программирования лучше...

Трудности с программированием для windows-планшета
Здравствуйте! Я не профессиональный программист. Программирую для себя, точнее - для своего...

C++ для микроконтроллеров
Мои наработки по использованию языка C++ для микроконтроллеров: -микроконтроллеры ATtiny2313,...

С для микроконтроллеров
Добрый день, хотел бы занятся программированием микроконтроллеров. Учусь в киевском политехническом...

C для микроконтроллеров
Всем привет, изучаю программирование МК (микроконтроллеров) на С и не могу найти нормальной...

Кто возьмёт помощника, для ознакомления с программированием?
Участия в коммерческих проектах нет. Имею представление о том, и делал поделки на тему: Игродел...

Отладка ПО для микроконтроллеров
Добрый вечер. Я не так давно проектирую ПО для микроконтроллеров и столкнулся со сложностью...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru