Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/36: Рейтинг темы: голосов - 36, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6

Запрограммировать контроллер на работу от одной кнопки

07.08.2010, 23:37. Показов 6961. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учусь программировать микроконтроллеры AVR, Столкнулся с проблеммой, не могу запрограммировать контроллер на работу от одной кнопки. Задача такая, одной кнопкой на любом входе контроллера по очереди переключать две функции мигания светодиода на любом одном выходе, функции почти одинаковы по алгоритму работы, просто одна функция обеспечивает более быстрое мигание светодиода, чем другая, программирую на С++
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2010, 23:37
Ответы с готовыми решениями:

Запрограммировать работу светофора
Работа светофора для водителей запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем...

Запрограммировать кнопки
Доброго времени суток,господа. Допустим у меня есть обычный блокнот.Как запрограммировать кнопки(Button1)Создать и Печать (Button2)?

Запрограммировать в классе работу с дробями и перегрузить операции сравнения
Помогите пожалуйста)) Задание Целочисленный дробь задается двумя числами: числителем и знаменателем. Запрограммировать в классе работу...

11
 Аватар для denver
1612 / 282 / 5
Регистрация: 19.09.2009
Сообщений: 700
07.08.2010, 23:58
В чем именно проблема? Какой именно МК? И выложите пожалуйста код МК.
0
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6
08.08.2010, 00:09  [ТС]
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
This program was produced by the
CodeWizardAVR V2.04.8 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
 
 
Project : 
Version : 
Date    : 26.07.2010
Author  : Freeware, for evaluation and non-commercial use only
Company : 
Comments: 
 
 
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
 
#include <mega16.h>
#include <delay.h>
 
int time_1 ();
int time_2 ();
 
// Declare your global variables here
 
 
 
void main(void)
{
// Declare your local variables here
 
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTA=0x00;
DDRA=0x00;
 
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=P State4=P State3=P State2=P State1=P State0=P 
PORTB=0x3F;
DDRB=0x00;
 
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=0 
PORTC=0x00;
DDRC=0x03;
 
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x00;
 
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
 
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
 
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
 
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
 
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
 
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
 
 
 
 while (1)
      {
       while (PINB.5==1)
      {PORTC.0=0;}
        
      while (PINB.5==0)
      {time_2 ();}
      
       while (PINB.0==1)
      {time_2 ();}
      
       while (PINB.0==0)
      {time_1 ();}
      
       while (PINB.0==1)
      {time_1 ();}
}
}
 
int time_1 ()
{
while (1)
      {
      // Place your code here
      PORTC.1=1; //зажигаем светодиод
      delay_ms(200); //пусть горит  200 милисекунд
      PORTC.1=0; //гасим светодиод
      delay_ms(200); //теперь не горит 200 милисекунд
      }
       return 0;
}
 
int time_2 ()
{
while (1)
      {
      // Place your code here
      PORTC.0=1; //зажигаем светодиод
      delay_ms(30); //пусть горит  30 милисекунд
      PORTC.0=0; //гасим светодиод
      delay_ms(30); //теперь не горит 30 милисекунд
      }
      return 0;
}
хочу запрограммировать контроллер так чтобы он выполнял разные функции в зависимости от нажатия кнопки, но кнопки одной, а не нескольких. это примерно выглядело бы по анологии работы ёлочных герлянд, где при нажатии одной кнопки поочерёдно меняются разные мерцания светодиодов. в приведённой выше мной программе я создал две функции мерцания двух разных светодиодов красного и зелёного подключённых к ножкам Pc0 и Pc1 микроконтроллера Atmega 8 сконфегурированными на выход, функции создал почти одинаковыми только с разной частотой мерцания. хочу одной кнопкой подключённой к ножке Pb5 сконфегурированной на вход, поочерёдно менять функции, нажал кнопку мерцает один светодиод, отжал кнопку ничего не меняется продолжает мерцать тот же светодиод так же как и мерцал, нажал второй раз кнопку мерцает уже другой светодиод с другой частотой, отжал кнопку ничего не меняется продолжает мерцать тот же светодиод так же как и мерцал, нажал ещё раз (третий раз) мерцает опять первый светодиод также как и при нажатии первый раз
0
 Аватар для denver
1612 / 282 / 5
Регистрация: 19.09.2009
Сообщений: 700
08.08.2010, 00:21
Я понимаю чего вы хотите, но в чем именно проблема? не можете скомпилировать? или же скомпилировали, но результат не тот?
Цитата Сообщение от alek4322 Посмотреть сообщение
микроконтроллера Atmega 8
а почему CodeWizardAVR определил в 15 строке кода что это ATmega16 ?
0
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6
08.08.2010, 00:57  [ТС]
Блин не уследил в протеусе создал схему с моделью ATMEGA8 а СVAVR настроил на ATMEGA16 сейчас поправлю и проверю, интересно это сильно влияет на работу программы, программа сомпилируется нормально, а проблема в том что программа включает первую функцию по первому нажатию кнопки но не включает вторую функцию по второму нажатию

Добавлено через 19 минут
Всё изменил но эффект остался таким же, по первому нажатию кнопки программа запускает функцию time_2 (); после отжатия кнопки программа оставляет запущенной функцию time_2 (); а вот если нажать второй раз кнопку то программа не хочет запускать функцию time_1 ();


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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.8 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
[url]http://www.hpinfotech.com[/url]
 
Project : 
Version : 
Date    : 08.08.2010
Author  : Freeware, for evaluation and non-commercial use only
Company : 
Comments: 
 
 
Chip type               : ATmega8
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
 
#include <mega8.h>
#include <delay.h>
 
int time_1 ();
int time_2 ();
// Declare your global variables here
 
void main(void)
{
// Declare your local variables here
 
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=P State4=P State3=P State2=P State1=P State0=P 
PORTB=0x3F;
DDRB=0x00;
 
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out 
// State6=T State5=T State4=T State3=T State2=T State1=0 State0=0 
PORTC=0x00;
DDRC=0x03;
 
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x00;
 
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
 
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
 
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
 
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
 
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
 
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
 
while (1)
      {
       while (PINB.5==1)
      {PORTC.0=0;}
        
      while (PINB.5==0)
      {time_2 ();}
      
       while (PINB.0==1)
      {time_2 ();}
      
       while (PINB.0==0)
      {time_1 ();}
      
       while (PINB.0==1)
      {time_1 ();}
}
}
 
int time_1 ()
{
while (1)
      {
      // Place your code here
      PORTC.1=1; //зажигаем светодиод
      delay_ms(200); //пусть горит  500 милисекунд
      PORTC.1=0; //гасим светодиод
      delay_ms(200); //теперь не горит 500 милисекунд
      }
       return 0;
}
 
int time_2 ()
{
while (1)
      {
      // Place your code here
      PORTC.0=1; //зажигаем светодиод
      delay_ms(30); //пусть горит  500 милисекунд
      PORTC.0=0; //гасим светодиод
      delay_ms(30); //теперь не горит 500 милисекунд
      }
      return 0;
}
0
 Аватар для progvc
1 / 1 / 0
Регистрация: 12.08.2010
Сообщений: 19
13.08.2010, 00:33
alek4322, ты свою простенькую задачу ещё не решил?
0
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6
15.08.2010, 07:43  [ТС]
Да решил сам, буквально вчера, две недели парился, но решил оказывается не чего особенно сложного сейчас выложу код, если возможно поделитесь своими соображениями, может можно решить эту задачу по другому.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.8 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
[url]http://www.hpinfotech.com[/url]
 
Project : 
Version : 
Date    : 11.08.2010
Author  : Freeware, for evaluation and non-commercial use only
Company : 
Comments: 
 
 
Chip type               : ATmega8
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/
 
#include <mega8.h>
#include <delay.h>
 
void time_1 ();
void time_2 ();
 
void main(void)
{
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=P State4=P State3=P State2=P State1=P State0=P
    PORTB=0x3F;
    DDRB=0x00;
 
    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
    // State6=T State5=T State4=T State3=T State2=T State1=0 State0=0
    PORTC=0x00;
    DDRC=0x03;
 
    while (1)
    { 
       if (PINB.5==1) 
       {
       PORTC.1=0; 
       }
       else  
       {
       time_1 ();
       delay_ms(50);
       time_2 ();
       delay_ms(50);
       }
 
    }
}
 
void time_1 ()
 {
    do
    {
        PORTC.1=1; //зажигаем светодиод
        delay_ms(100); //пусть горит 100 милисекунд
        PORTC.1=0; //гасим светодиод
        delay_ms(100); //теперь не горит 100 милисекунд
    }
    while (PINB.5==0);
    do
    {
        PORTC.1=1; //зажигаем светодиод
        delay_ms(100); //пусть горит 100 милисекунд
        PORTC.1=0; //гасим светодиод
        delay_ms(100); //теперь не горит 100 милисекунд
    }
    while (PINB.5==1);
    return; 
 } 
 
 
 
void time_2 ()
{
    do
    {
        PORTC.0=1; //зажигаем светодиод
        delay_ms(30); //пусть горит 30 милисекунд
        PORTC.0=0; //гасим светодиод
        delay_ms(30); //теперь не горит 30 милисекунд
    }
    while (PINB.5==0);
    do
    {
        PORTC.0=1; //зажигаем светодиод
        delay_ms(30); //пусть горит 30 милисекунд
        PORTC.0=0; //гасим светодиод
        delay_ms(30); //теперь не горит 30 милисекунд
    }
    while (PINB.5==1);
    return;
}
0
 Аватар для progvc
1 / 1 / 0
Регистрация: 12.08.2010
Сообщений: 19
15.08.2010, 18:46
Отлично! Самое главное, когда сам разбираешься, начинаешь понимать суть процесса. Я над твоей задачкой вечерком сидел разбирался и решение было более схожее с твоим, которое ты сейчас выложил. Я как-то разбирался с графическим дисплеем WG12864B-YGH-VN, на который потратил 1месяц ( документация на англ. и информации мало ), и в итоге удача была в "кормане". Если тебе интересны микроконтроллеры AVR, то у меня есть инфор.ресурс - http://www.mega-avr.ucoz.ru( Микроконтроллеры AVR и программирование ); заходи!думаю тебе понравится!!! будет о чём пообщаться...
0
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6
15.08.2010, 19:54  [ТС]
Спасибо большое за поддержку, и спасибо за ресурс, обязательно зайду и зарегистрируюсь. Недавно заинтересовался микроконтроллерами, поставил себе задачи, как бы план обучения, сначала решил научится писать функции и переключать их с помощью разных кнопок и с помощью одной, ну в общем переключать с помощью разных кнопок получилось достаточно быстро, а вот при помощи одной кнопки пришлось покрапеть с две недельки, ну да ладно, нечего страшного, вот теперь хочу разобраться с работой прерываний и таймер-счётчиков, ну а в будущем хочу научиться выводить информацию на монитор и вводить при помощи того же монитора, причём не на простой, а на сенсорный высокого разрешения, конечно это ещё далеко в будущем. По поводу общения полностью согласен, будет о чём поговорить, признаться от меня толку в общении пока в начале маловато будет больше вопросов чем ответов, но это только пока в начале.
0
 Аватар для progvc
1 / 1 / 0
Регистрация: 12.08.2010
Сообщений: 19
16.08.2010, 10:11
Кстати, сенсорные экраны - это отличная технология, для сегодняшнего освоения, тем более для тех, кто занимается с микроконтроллерами. У меня есть тоже желание это осваивать, например для цветного, графического дисплея 320*240 точек, чем в действительности начну заниматься. А по поводу прерываний и таймер-счётчиков, то тут ничего сложного нету: я применял таймер для опроса кнопок( Timer 0 ) - работает отлично! Например, у Приемо-передатчика ( USORT ) есть два прерывания ( используются как по одиночке, так и вместе ):

CodeVisionAVR
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* Прерывание по приему байта ( кадра ) в регистр UDR по линии RS232 */
interrupt [USORT_RXC] void USORT_RX( void )
{ 
    unsigned char temp;
    temp=UDR;
    ...
}
 
/* Прерывание по передаче байта ( кадра ) из регистра UDR в линию RS232 */
interrupt [USORT_TXC] void USORT_TX( void )
{ 
    unsigned char temp[0]="F"; /* массив из одного элемента */
    UDR=temp[0];
    ...
}
...будет больше вопросов чем ответов...
Задавай, сколько будет нужно! Если есть вопросы, значит есть стремление заниматься и изучать... я это только приветствую
0
0 / 0 / 0
Регистрация: 07.08.2010
Сообщений: 6
16.08.2010, 22:54  [ТС]
Спасибо за поддержку в начинании, а прерывания я уже начал изучать как только пойму то напишу на вашем ресурсе, я уже там зарегестрировался.
0
 Аватар для progvc
1 / 1 / 0
Регистрация: 12.08.2010
Сообщений: 19
17.08.2010, 14:31
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2010, 14:31
Помогаю со студенческими работами здесь

Макросы Excel, запрограммировать кнопки
Помогите запрограммировать кнопки в Excel. Весь день сижу мучаюсь не получается. Нужно сделать эти пункты 2. Вывод сведений обо...

Как запрограммировать кнопки на сумму для приложения
Здравствуйте. Подскажите имеется приложение, и хочется запрограммировать две кнопки на главной форме, а именно сумма отдела( разность,...

Запрограммировать появление на форме кнопки и поля типа Memo
Запрограммировать появление на форме кнопки и поля типа Memo по выполнению команд меню, считывания в Memo и сохранения текстового файла.

Как можно запрограммировать работу микроконтроллера, задавая входные воздействия, если на входы влиять нельзя?
Привет, помогите пожалуйста. Я нуб. Есть Datasheet на Ethernet controller фирмы WIZNet (W5100). Микроконтроллер может обмениваться с...

Как оптимально и без лишнего кода запрограммировать кнопки калькулятора
Всем доброго здоровичка!!! У меня вопрос: На форме кнопки с цифрами, как на калькуляторе. При нажатии кнопки соответствующая цифра...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru