Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 20:09   #1
dimas_a
Новичок
Джуниор
 
Регистрация: 18.05.2012
Сообщений: 2
По умолчанию программа антенного коммутатора на СИ

здравствуйте!Я делаю дипломную у меня проект плата антенного коммутатора, есть листинг программки на СИ что то не совсем понял как она работает сама программка;

1. #include <ez8.h>
2. #include <constant.h>

3. struct { unsigned key_1: 1;
1. unsigned key_2: 1;
2. unsigned key_3: 1;
3. unsigned key_4: 1;
4. unsigned key_5: 1;
5. unsigned key_6: 1;
6. unsigned key_7: 1;
7. unsigned key_8: 1;
8. unsigned key_9: 1;
9. unsigned key_10: 1;
10. unsigned key_11: 1;
11. unsigned key_12: 1;
12. unsigned key_13: 1;
13. unsigned key_14: 1;
14. unsigned key_15: 1;
15. unsigned key_16: 1;
16. unsigned key_17: 1;
17. unsigned key_18: 1;
18. unsigned key_19: 1;
19. unsigned key_20: 1; } Flags;

4. unsigned long key_pressed; //нажатая кнопка
5. unsigned long old_pressed; //предыдущая нажатая кнопка
6. unsigned int delay_after_key; //задержка после нажатия кнопки

7. unsigned char Buffer_UART[0x10] _At 0x100; //буфер приема/передачи UART0
8. unsigned int Position, Silent_Timeout, length;
9. struct { unsigned ErrRcv: 1;
1. unsigned ErrCRC: 1;
2. unsigned DataRcv: 1;
3. unsigned DataTrx: 1;
4. unsigned Err_I2C: 1;
i. } FlagUART;

10. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11. void init_watchdog(void);
12. void init_ports(void);
13. void init_sfr(void);
14. void load_urmod_fram (void);
15. void save_urmod_fram (void);

16. //----------------------------------------------------------------------------------------------------------------
17. void clear_all(void)
18. {
19. Flags.key_1=0; Flags.key_2=0; Flags.key_3=0; Flags.key_4=0;
20. Flags.key_5=0; Flags.key_6=0; Flags.key_7=0; Flags.key_8=0;
21. Flags.key_9=0; Flags.key_10=0; Flags.key_11=0; Flags.key_12=0;
22. Flags.key_13=0; Flags.key_14=0; Flags.key_15=0; Flags.key_16=0;
23. Flags.key_17=0; Flags.key_18=0; Flags.key_19=0; Flags.key_20=0;
24. led_1_off; led_2_off; led_3_off; led_4_off;
25. led_5_off; led_6_off; led_7_off; led_8_off;
26. led_9_off; led_10_off; led_11_off; led_12_off;
27. led_13_off; led_14_off; led_15_off; led_16_off;
28. led_17_off; led_18_off; led_19_off; led_20_off;
29. rele_21_on; rele_17_off; rele_18_off; rele_19_off; rele_20_off;

30. }

31. //----------------------------------------------------------------------------------------------------------------
32. void clear_4x4(void)
33. {
34. Flags.key_17=0; Flags.key_18=0; Flags.key_19=0; Flags.key_20=0;
35. led_17_off; led_18_off; led_19_off; led_20_off;

36. rele_21_off; rele_17_off; rele_18_off; rele_19_off; rele_20_off;

37. }


38. //анализ нажатых кнопок
39. //----------------------------------------------------------------------------------------------------------------
40. void analizkey(void)
41. {

42. if (key_pressed!=0)
43. {

44. //антенна1
if ( ((key_pressed&key1)!=0)&&(Flags.key _1==0) )
{ Flags.key_1=1;
Flags.key_2=0; Flags.key_3=0; Flags.key_4=0; Flags.key_5=0; Flags.key_9=0; Flags.key_13=0;
led_1_on; save_urmod_fram();
led_2_off; led_3_off; led_4_off; led_5_off; led_9_off; led_13_off; clear_4x4(); } else

45. if ( ((key_pressed&key2)!=0)&&(Flags.key _2==0) )
{ Flags.key_2=1;
Flags.key_1=0; Flags.key_3=0; Flags.key_4=0; Flags.key_6=0; Flags.key_10=0; Flags.key_14=0;
led_2_on; save_urmod_fram();
led_1_off; led_3_off; led_4_off; led_6_off; led_10_off; led_14_off; clear_4x4(); } else

46. if ( ((key_pressed&key3)!=0)&&(Flags.key _3==0) )
i. { Flags.key_3=1;
b. Flags.key_1=0; Flags.key_2=0; Flags.key_4=0; Flags.key_7=0; Flags.key_11=0; Flags.key_15=0;
c. led_3_on; save_urmod_fram();
d. led_1_off; led_2_off; led_4_off; led_7_off; led_11_off; led_15_off; clear_4x4(); } else

47. if ( ((key_pressed&key4)!=0)&&(Flags.key _4==0) )
i. { Flags.key_4=1;
b. Flags.key_1=0; Flags.key_2=0; Flags.key_3=0; Flags.key_8=0; Flags.key_12=0; Flags.key_16=0;
c. led_4_on; save_urmod_fram();
d. led_1_off; led_2_off; led_3_off; led_8_off; led_12_off; led_16_off; clear_4x4(); } else


48. //антенна2
49. if ( ((key_pressed&key5)!=0)&&(Flags.key _5==0) )
i. { Flags.key_5=1;
ii. Flags.key_1=0; Flags.key_6=0; Flags.key_7=0; Flags.key_8=0; Flags.key_9=0; Flags.key_13=0;
b. led_5_on; save_urmod_fram();
c. led_1_off; led_6_off; led_7_off; led_8_off; led_9_off; led_13_off; clear_4x4(); } else





69. }
70. }



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
213. void main(void)
214. {
215. SET_VECTOR(TIMER0,timer0);
216. SET_VECTOR(DMA,dma);
217. SET_VECTOR(UART0_RX,uart0_rx);

218. DI();
a. init_ports();
b. init_sfr();
219. EI();

220. wdi_reset();

221. test_led();

222. load_urmod_fram();

223. init_UART0();

224. while (1)
225. {
226. wdi_reset();

227. analizkey();

228. wdi_reset();

229. uart_tx_state();

230. }
dimas_a вне форума Ответить с цитированием
Старый 21.05.2012, 15:22   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...странное оформление кода у вас.

Цитата:
есть листинг программки на СИ что то не совсем понял как она работает сама программка
1- это не вся программа
2- смотрите остальные модули, которые вы не приложили
3- работает управление аналоговым коммутатором через UART, а может через UART передается состояние и режимы работы (в бесконечном цикле идет опрос нажатых кнопок, сохранение настроек, управление индикацией и выдача сигнала управления)

Каков протокол управления можно только догадываться, ибо не весь комплект ПО, нет схемы, нет указания, автономное или нет. Например, я бы реализовал антенный коммутатор двумя вариантами:
1- на p-i-n диодах и подачей запирающих напряжений через LC-фильтры с ключей, управление ими уже хоть с МК, хоть с ПК
2- на ВЧ- аналоговых коммутаторах серии ADG, опять же, схемотехника и элементная база зависит от дипазона рабочих частот ...и схемотехника определяет способ управления, способ управления определяет программу, если таковое предусмотрено.

====================
p.s.: вам одной темы мало?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 21.05.2012 в 15:24.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка коммутатора elektroniks Компьютерное железо 4 10.01.2012 22:44
В чем принципиальные отличия концентратора (hub), коммутатора (switch) и маршрутизатора (router) Alex444 Свободное общение 2 06.10.2011 13:40
С++. Модель коммутатора локальной сети. DumbPilot Помощь студентам 0 23.05.2010 14:49
Расшифруйте Настройки Коммутатора HP2626 ! Ваще Нужно позарез ! Hopkins Помощь студентам 0 12.02.2010 05:34
Соединить в локальную сеть без коммутатора Win 7 и XP. Какие могут быть проблемы? Stilet Windows 7 05.02.2010 17:31