| 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 | |
Интернет-форум Краснодарского края и Краснодара |