Перейти к содержанию
    

113

Свой
  • Постов

    69
  • Зарегистрирован

  • Посещение

Весь контент 113


  1. Похоже на неправильный масштаб гироскопа. Проверить просто: если масштаб больше, то при резком повороте происходит "перерегулирование" с постепенным возвратом назад. Если масштаб меньше - недорегулирование с постепенной коррекцией. А если все правильно подобрано - при всех поворотах реакция будет быстрая и без шумов. У меня в реализации есть перевод из °/сек в рад/сек. upd: И скорость опроса здесь не определяющее значение имеет. 100Гц обычно достаточно. Главное учитывать ее в фильтре.
  2. Добрый день. В компанию требуется разработчик электроники (схемотехник, тополог). Требуемый опыт работы: от 3 лет. Обязанности: Разработка электрических схем (принципиальных) электронных блоков и модулей. Корректировка (адаптация) имеющихся электрических схем. Проектирование (компоновка, трассировка, разработка структуры) многослойных печатных плат. Разработка рабочих материалов для составления ведомостей расхода материалов и комплектующих на разрабатываемые изделия. Отладка (настройка и регулировка) опытных образцов. Подготовка и согласование технического задания и технической документации на изделие. Выработка и обоснование предложений по замене материалов и комплектующих разработанных изделий на всех стадиях жизненного цикла. Требования: Опыт аппаратной разработки и отладки устройств обязателен. Навыки проектирования печатных плат. Опыт работы в Altium Designer. Навыки расчета и моделирования электрических схем. Опыт работы с интерфейсами RS485, I2C, SPI, UART и прочие. Опыт разработки устройств с беспроводными интерфейсами (BT, Wi-Fi, etc) желателен. Владение английским языком как минимум на уровне чтения технической документации. Инженерное мышление, умение творчески мыслить и воплощать идеи в жизнь. Желание совершенствовать свои навыки, пунктуальность, ответственность. Оплата по договоренности (от 140 000); Работа в офисе, Москва, м. Кожуховская. [email protected]; [email protected]
  3. Требуемый опыт работы: 1–3 лет Полная занятость, полный день Обязанности: - Разработка программного обеспечения для аппаратных платформ ARM под управлением ОС Linuх: - Разработка низкоуровневых драйверов; - Модификация и поддержка имеющегося кода Требования: - Знание С/С++ - Знание ядра OC Linux - Опыт написания драйверов - Опыт работы с Embedded Linux - Опыт отладки, профилирования и оптимизации ПО/ядра - Умение быстро разбираться в унаследованном коде Желательно: - Опыт разработки на нескольких языках - Опыт коммерческой разработки Офис м. Кожуховская. Без удаленки. от 130т.р. [email protected]
  4. Необходимо разработать ультразвуковой анемометр. Предложения по срокам и оплате тут или на [email protected]
  5. Ответ после 9:00)) Да, 5/2, с обедом 9-18, но вообще это уже условности: можно и 6-14 и 10-18... программист - желательно, должность все же - разработчик. 280 - нет.
  6. Возможно так проще? https://www.mobilebattery.ru/Akkumuljator-dlja-noutbuka-acer-al12b32-al12b72-al12x32-p-3566.html
  7. Ищем программиста на удаленку. Разовые задачи. Нужно дорабатывать/исправлять существующий код по мере необходимости. NDA. Платформа - i.mx6 Видео интерфейсы (CSI, RGB), Wi-Fi, BT, USB. [email protected] Иван
  8. Актуально. Только в офисе, удаленка не рассматривается.
  9. Добрый день. Если к вышеописанной вакансии добавить написание софта, то условия будут по-интересней.
  10. Нужен разработчик электроники. В основном - носимые цифровые устройства. Опыт разработки обязателен. Работа в Altium. Схемотехника и трассировка. Грамотный подбор компонентов. ЕСКД - не обязательно. Обязательно - уметь самостоятельно разработать и запустить устройство. Офис в районе м. Кожуховская. Полный день, карьерный рост. ЗП от 140т.р. Умение программировать под ARM приветствуется. Контакты: [email protected] (903)685-78-47 Иван
  11. WDT на MSP430F2012

    Заработало. Добавил задержку в начале программы: //=========main fuction void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer _delay(66000); //~1 sec //=====System Clock DCOCTL = CALDCO_16MHZ; // Set DCO to 16MHz BCSCTL1 = CALBC1_16MHZ; // MCLC = SMCLK = DCOCLK = 16MHz BCSCTL1 &= ~0x40; //Low-frequency mode BCSCTL1 &= ~0x30; //Divider for ACLK = 1 Теперь обе платы работают идентично. Похоже кварц не успевал заводиться, и поэтому проблемы были.
  12. WDT на MSP430F2012

    Заметил, что при включении от БП плата заводится, а если проводами коммутировать - нет. Посмотрел: у БП фронт ~2 мс, а при коммутации проводами резкий выброс до 4 В, а потом спад до 3,2. На питание стоит LM317. Емкости все на месте. Впаял 10 Ом между LM317 и MSP - выброс пропал, фронт стал ~500 мкс при коммутации проводами. Теперь заводится и включением БП и коммутацией проводов, НО: при включении от блока (длинный фронт) частота срабатывания = номинальная*8 (см. первый пост), а при старте от коммутации проводов (короткий фронт) частота срабатывания еще выше (номинальная*8*8). Похоже что проц не выдержал бросков до 4В (может и чуть больше было во время испытаний "в поле"), и как следствие так странно сейчас себя ведет? Код на всякий случай (мигает светиком): //****************************************************************************** #include "msp430x20x2.h" #define MAX_PWM 200 //96kHz #define STROBE_PULSE 51 #define STROBE_PERIOD 800 unsigned long int ADC_temp; unsigned long int ADC_avg = 0; unsigned long int i = 0; unsigned int Threshold = 10; signed int reg_counter = 0; unsigned int tmp; unsigned int wdt_counter = 0; unsigned int flags = 0x00; #define _delay_cycles(num) \ {for(unsigned long i = 0; i<=num; i++) \ _NOP(); \ } //=========main fuction void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer //=====System Clock DCOCTL = CALDCO_16MHZ; // Set DCO to 16MHz BCSCTL1 = CALBC1_16MHZ; // MCLC = SMCLK = DCOCLK = 16MHz BCSCTL1 &= ~0x40; //Low-frequency mode BCSCTL1 &= ~0x30; //Divider for ACLK = 1 BCSCTL2 = 0x00; BCSCTL3 = LFXT1S_0 + XCAP_2; // 32768KHz crystal, 10 pF while(IFG1 & OFIFG) { IFG1 &= ~OFIFG; _delay_cycles(100000); } WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer WDTCTL = WDT_ADLY_1_9; IE1 |= WDTIE; //=====ADC Setup ADC10CTL0 = ADC10SHT_3 + SREF_1 + REFON + ADC10ON; ADC10CTL1 = INCH_1 + ADC10DIV_0 + ADC10SSEL_2; // 2 A1 input ADC10AE0 = 0x02; // P1.1 ADC option select ADC10DTC1 = 0x001; // 1 conversion P1DIR = 0x00; // All input P2DIR = 0x00; // All input P1DIR |= 0x01; // P1.0 = output P1DIR |= 0x04; // P1.2 = output P1SEL |= 0x04; // P1.2 = TA1 output P1SEL &= ~0x01; // P1.0 = GPIO P1SEL &= ~0x08; // P1.3 = GPIO P1SEL &= ~0x10; // P1.4 = GPIO P1OUT &= ~0x01; P2DIR |= 0x80; // P2.7 = output P2SEL |= 0x80; // P2.7 = Xtal P2SEL |= 0x40; // P2.6 = Xtal TACCTL1 = OUTMOD_7; // TACCR1 reset/set TACCR0 = MAX_PWM; // PWM Period TACCR1 = 0; // TACCR1 PWM Duty Cycle TACTL = TASSEL_2 + MC_1; // SMCLK, upmode P1IES &= ~0x08; // P1.3 lo/hi edge P1IFG &= ~0x08; // P1.3 IFG cleared P1IE &= ~0x08; // P1.3 interrupt disabled _EINT(); tmp = 0; TACCR1 = 0; //=====main loop while(1) { // some code } } //==========WDT Route #pragma vector = WDT_VECTOR __interrupt void WDT_ISR(void) { wdt_counter++; if(wdt_counter == STROBE_PERIOD - STROBE_PULSE) P1OUT |= 0x01; else if(wdt_counter == STROBE_PERIOD) { P1OUT &= ~0x01; wdt_counter = 0; } } По миганию светика частоту и определяю. На кварце всегда 32,768 (это осциллографом смотрю). Это вряд ли, точнее даже если они и потрутся, у меня таймер запущен от кварцевого генератора, а не от DCO. При коротком фронте - 32К, при длинном - 4К... Чего то я не понимаю.
  13. Тут главное, не забыть правильно порты инициализировать, а то замкнутые между собой выходы да с разными выходными значениями могут подогреть контроллер
  14. WDT на MSP430F2012

    Суть: Проц MSP430F2012, WDT работает в интервальном режиме, от 32К кварца. После некоторого количества перепрошивок (отлаживаю), частота интервалов увеличивается в 8 раз. Две идентичные платы, с одинаковыми прошивками начинают работать по-разному. Такая ситуация уже с третьей платой. Вот кусок инициализации: Что может быть причиной такого поведения?
×
×
  • Создать...