16+
Четверг
18 июля
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Средства и методы разработки

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Скрипач  (12.04.2019 14:40) , в ответ на Все что пробовал еще более громоздко. Делаю if-ы с goto. Ну и *Дункельсовские prototreads для совсем элементарных вещей (задержки и т.п.). автор: Скрипач
Пример. 
static char Fans2Fd(struct pt *pt){
	static uint8_t TL = 0;
	PT_BEGIN(pt);
L_IDLE:
	while(1){
		PT_YIELD(pt);
		_Off(FD1); _Off(KM1); _Off(KM2);
		if(B1_Button()) goto L_RUN_1;
		if(B2_Button()) goto L_RUN_2;
	};
L_RUN_1:
  	_On(KM1); _On(FD1);
	PT_WAIT_WHILE(pt, B1_Button());
	while(1){
		PT_YIELD(pt);
		if(B1_Button()){
			_Off(FD1); _Off(KM1);
			PT_WAIT_WHILE(pt, B1_Button());
			goto L_IDLE;
		};
		if(B2_Button()){
			_Off(FD1); _Off(KM1);
			TL = SysTime_1s;
			PT_WAIT_WHILE(pt, (Delay(TL, SysTime_1s) < 15)); 
			goto L_RUN_2;
	}	};
L_RUN_2:
  	_On(KM2); _On(FD1);
	PT_WAIT_WHILE(pt, B2_Button());
	while(1){
		PT_YIELD(pt);
		if(B2_Button()){
			_Off(FD1); _Off(KM2);
			PT_WAIT_WHILE(pt, B2_Button());
			goto L_IDLE;
		};
		if(B1_Button()){
			_Off(FD1); _Off(KM2); 
			TL = SysTime_1s;
			PT_WAIT_WHILE(pt, (Delay(TL, SysTime_1s) < 15)); 
			goto L_RUN_1;
	}	};
	PT_END(pt);
}

...на самом деле, все не так как в действительности.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX