0
- 30.09.2014 - 19:46
|
Хороший знакомый, и кстати, хороший заказчик, попросил найти толкового исполнителя. контроллер должен выдавать две импульсные последовательности, сдвиг между ними всегда в пол-периода, в остальном они идентичны. Также, должно быть 4 кнопки: 2 кнопки увеличивают/уменьшают период импульсов. От 0.2мс, до 0.006мс. Другие 2 кнопки, увеличивают/уменьшают длительность импульсов, От 0.006мс, до 0.1мс. Длительность меньше чем пол-периода. И наверно понадобятся кнопки для более крупных шагов, ну это обсудите по ходу. Это всё:))). Пишите предложения тут, я дам заказчику ссылку на тему. | |
1
- 30.09.2014 - 21:34
|
типа того, что ли - | |
2
- 30.09.2014 - 23:49
| 1-8pin > Думаю это примерно то, что нужно, не знаю нужны ли индикаторы. Удачно вам обоим договориться!:) | |
3
- 01.10.2014 - 06:53
| я всего лишь полюбопытствовал, делать времени нет. | |
4
- 01.10.2014 - 10:45
| вообще по описанию выходной сигнал должен быть похож на то что генерируется копеечным шим-контроллером наподобие TL494. | |
5
- 02.10.2014 - 02:59
|
Народ, не забывайте чистить папку с личными сообщениями, при переполнении, сообщения не доходят. не помню даташит, но если там есть RC цепи по обоим параметрам, то красиво:). Заказчик что-то пропал:), может уже не надо, может позже появится. | |
6
- 02.10.2014 - 09:54
|
да пофиг на заказчика, при всём уважении ) сколько там такая разработка может стоить - 500 рублей? больше мороки. частоту там можно регулировать изменяя R в RC а скважность напряжением на компараторе. точность только не очень. в принципе схема на мк не намного сложнее - Код: /***************************************************** CVAVR V2.05 Chip type : ATmega8A AVR Core Clock frequency: 2 MHz *****************************************************/ #include <mega8.h> #define A PORTC.2 #define B PORTC.3 #define C PORTC.4 #define D PORTC.5 #define E PORTD.0 #define F PORTD.1 #define G PORTD.2 #define DP PORTD.3 #define A0 PORTD.4 #define A1 PORTD.5 #define A2 PORTD.6 #define B0 PORTD.7 #define B1 PORTB.0 #define B2 PORTB.3 #define key_F_up PINB.5 #define key_F_dn PINB.4 #define key_D_up PINC.1 #define key_D_dn PINC.0 char d_buffer[6]={1,1,1,2,2,2**; enum btn_states {b_prs, b_rls, b_hold** F_up, F_dn, D_up, D_dn; unsigned int tmr[5]; unsigned char fr, dr; eeprom unsigned char efr, edr; void gpio_init () ** DDRB = 0b11001111; PORTB = 0b00110000; DDRD = 0b11111111; PORTD = 0b00000000; DDRC = 0b11111100; PORTC = 0b00000011; ** void T0_init () ** TCCR0=0x05; //1,953kHz TIMSK=1<<TOIE0; ** void T1_init () ** unsigned int x; TCCR1A = 1<<COM1A1|1<<COM1B1|1<<COM1B0; TCCR1B = 1<<CS10|1<<WGM13; // no presc, icr1-top ICR1 = 200; x=ICR1/2; OCR1A = ICR1-x; OCR1B = x; ** void convert_data_a (unsigned int x) ** char k; for (k=0;k<3;k++) ** d_buffer[k]=x%10; x/=10; ** ** void convert_data_b (unsigned int y) ** char k; for (k=3;k<6;k++) ** d_buffer[k]=y%10; y/=10; ** ** void display_data () ** static char d_cnt=0; (d_cnt)?(d_cnt--):(d_cnt = 5); A0=A1=A2=B0=B1=B2=0; DP=1; switch (d_buffer[d_cnt]) ** case 0: A=0; B=0; C=0; D=0; E=0; F=0; G=1; break; case 1: A=1; B=0; C=0; D=1; E=1; F=1; G=1; break; case 2: A=0; B=0; C=1; D=0; E=0; F=1; G=0; break; case 3: A=0; B=0; C=0; D=0; E=1; F=1; G=0; break; case 4: A=1; B=0; C=0; D=1; E=1; F=0; G=0; break; case 5: A=0; B=1; C=0; D=0; E=1; F=0; G=0; break; case 6: A=0; B=1; C=0; D=0; E=0; F=0; G=0; break; case 7: A=0; B=0; C=0; D=1; E=1; F=1; G=1; break; case 8: A=0; B=0; C=0; D=0; E=0; F=0; G=0; break; case 9: A=0; B=0; C=0; D=0; E=1; F=0; G=0; break; case 10: A=1; B=1; C=1; D=1; E=1; F=1; G=1; break; case 11: A=1; B=1; C=1; D=0; E=1; F=1; G=1; break; //_ default: A=1; B=1; C=1; D=1; E=1; F=1; G=0; break; //- ** switch (d_cnt) ** case 0: A0=1; break; case 1: A1=1; break; case 2: A2=1; break; case 3: B0=1; break; case 4: B1=1; break; case 5: B2=1; break; default: break; ** ** void scan_keys () ** #define lp 50 #define lh 15 static unsigned char count[8]; if (key_F_dn)** F_dn = b_rls;** if (key_F_up)** F_up = b_rls;** if (key_D_dn)** D_dn = b_rls;** if (key_D_up)** D_up = b_rls;** if (!key_F_dn) {count[0]++; ** else {count[0]=count[4] = 0;** if (!key_F_up) {count[1]++; ** else {count[1]=count[5] = 0;** if (!key_D_dn) {count[2]++; ** else {count[2]=count[6] = 0;** if (!key_D_up) {count[3]++; ** else {count[3]=count[7] = 0;** if ((count[0] > lp)&&(F_dn != b_hold)) {F_dn = b_prs; count[0] = 0; count[4]++;** if ((count[1] > lp)&&(F_up != b_hold)) {F_up = b_prs; count[1] = 0; count[5]++;** if ((count[2] > lp)&&(D_dn != b_hold)) {D_dn = b_prs; count[2] = 0; count[6]++;** if ((count[3] > lp)&&(D_up != b_hold)) {D_up = b_prs; count[3] = 0; count[7]++;** if ((count[4] > lh)&&(F_dn == b_prs)) {F_dn = b_hold; count[4] = 0;** if ((count[5] > lh)&&(F_up == b_prs)) {F_up = b_hold; count[5] = 0;** if ((count[6] > lh)&&(D_dn == b_prs)) {D_dn = b_hold; count[6] = 0;** if ((count[7] > lh)&&(D_up == b_prs)) {D_up = b_hold; count[7] = 0;** ** interrupt [TIM0_OVF] void t0_ovf_isr() ** char i; for(i=5;i;i--) ** if(tmr[i-1])tmr[i-1]--; ** ** void afr(); void main(void) ** gpio_init(); T0_init(); T1_init(); if((efr==0xff)){efr = 200; edr=efr/2;** fr=efr; dr=edr; #asm("sei") while (1) ** scan_keys(); display_data(); convert_data_a(dr); convert_data_b(fr); afr(); ** ** void afr() ** static bit trg0=0, trg1=0, trg2=0, trg3=0; static bit trg4=0; if(F_up==b_rls){trg0--;** if(F_dn==b_rls){trg1--;** if(D_up==b_rls){trg2--;** if(D_dn==b_rls){trg3--;** if((F_up==b_prs)&&(!trg0)){trg0++; if(fr<200)fr++;** if((F_dn==b_prs)&&(!trg1)){trg1++; if(fr>6)fr--;** if((D_up==b_prs)&&(!trg2)){trg2++; if(dr<100)dr++;** if((D_dn==b_prs)&&(!trg3)){trg3++; if(dr>3)dr--;** if((F_up==b_hold)&&(!tmr[0])){tmr[0]=2; if(fr<200-10)fr+=10; else fr=200;** if((F_dn==b_hold)&&(!tmr[1])){tmr[1]=2; if(fr>6+10)fr-=10; else fr=6;** if((D_up==b_hold)&&(!tmr[2])){tmr[2]=2; if(dr<100-10)dr+=10; else dr=100;** if((D_dn==b_hold)&&(!tmr[3])){tmr[3]=2; if(dr>3+10)dr-=10; else dr=3;** ICR1 = fr; if(dr<fr/2){OCR1A = dr; OCR1B = ICR1-dr;** else {dr= ICR1/2; OCR1A=OCR1B = dr;** if(((efr!=fr)||(edr!=dr))&&(!trg4)){trg4=1; tmr[4]=50;** if((trg4)&&(!tmr[4])) {trg4=0; efr=fr; edr=dr;** ** | |
7
- 02.10.2014 - 22:52
| Сколько тысяч девайсов надо? | |
8
- 03.10.2014 - 07:07
| 7-Фанат NASCAR > не тысяч, а миллионов. Мелко мыслишь. | |
9
- 03.10.2014 - 08:15
| ну, с учётом того что это очень полезное устройство должно быть в каждом доме то да. а если бы не санкции то рынок сбыта был бы ещё шире. | |
10
- 05.10.2014 - 12:30
| Автор, вы нас пришли спросить сколько бы мы запросили денег за такую разработку? Далее вы говорите своему заказчику, что вот народ говорит, что это стоит столько то, а я с вас беру на 10% меньше и продаёте свою разработку http://bortsoff.narod.ru/Gen.htm не за 1000 рублей, а за 10000 к примеру. Ну это по русски. Пропиарились оч хорошо. | |
11
- 05.10.2014 - 17:59
| В общем я заказчик. Понадобился такой контроллер для исследований... На логике сложно в регулировании и оценке.. поэтому спросил можно ли сваять такое за недорого. Можно без индикации. А Вас тут понесло...по русски | |
12
- 05.10.2014 - 19:20
| 11-bolleg > Исследования - это интересно! Можно подробности? | |
13
- 05.10.2014 - 20:31
| Пока одни мысли, будет результат напишу если интересно.При личном знакомстве можно и обговорить | |
14
- 06.10.2014 - 00:09
|
13-bolleg >если исследования, быстренько освойте ардуино, и мини прикупите за полтыщи. Пригодицо в других нетипичных задачах. Сложного ничего. | |
15
- 06.10.2014 - 00:11
| Ну и бребоард с проводками разными заодно | |
16
- 06.10.2014 - 02:37
|
FOT2, ну вот:(. А я искренне думал, что как действующий разработчик, я абсолютный чемпион по скрытности и незаметности:). Уж если и обмолвлюсь, то дважды косвенно, так что поймёт лишь тот, кто итак уже знает. А оно вот значит как... Эх:((. | |
17
- 06.10.2014 - 09:09
|
лучше купить лазерный принтер за две тыщщи, чем ардуину с проводками. | |
18
- 06.10.2014 - 13:36
| 17-8pin > Фу, как грубо ))) | |
20
- 07.10.2014 - 00:28
|
19-8pin >лучше устроиться работать высокооплачиваемым футболистом) Принтер плесенью покрылся. Не в нашей стране.. | |
21
- 07.10.2014 - 06:01
| футбол это скучно. | |
22
- 20.10.2014 - 05:21
| Если еще актуально, можем обсудить | |
23
- 22.10.2014 - 21:51
|
пиши мне на почту, созвонимся... актуально пока. bolleg@bk.ru | |
| Интернет-форум Краснодарского края и Краснодара |