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

bob1

Свой
  • Постов

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

  • Посещение

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


  1. ABS корпус.

    ссылка в личке
  2. ABS корпус.

    Добрый вечер. Подскажите проверенные фирмы по изготовлению корпусов? Корпус 2 половинки. Размеры коруса 85x30x15мм. Модели 3D есть. Партия разовая 1000 штук.
  3. USB на at90usb162

    По флагам в регистре UEINT не пробовали...
  4. USB на at90usb162

    Команды дает хост ( комп). На какую точку отправляете данные та и получает. С какой принимаете..та и посылает .
  5. Первоначальные значения q и w не заданы.
  6. Вот схема. Может индикатор на +3В? Определяется по резистору RF и наличию конденсаторов С2, С3. 33к--на 5В. 18к-на 3В. На верхнем выводе R1 у меня около 3.9В. 2.rar
  7. Вроде все верно. Запускал WG12232N по 4-х проводке на ATXmega. После команды 0x0F должен заморгать верхний левый квадрат 16x16. После подачи питания индикатор чуть засвечивается? Может контрастность ?
  8. Cкинте лучше код ионизации..... В архиве исходники под 51. ST7920.rar
  9. 32-х битная библиотека с плавающей точкой для AVR (ассемблер). AVR_BCD.rar
  10. Вы правы...недосмотрел. Правильно 100*0,093-0,4 до 100*1,007+0,4. 4-ка это единица последнего разряда( разрешение) умноженное на 4. 0,1мВ*4=0.4мВ
  11. Выражение 100- (100*0.007+4) не правильное. Если раскрыть скобки, то 4мВ вычитается, а нужно прибавить меньшее из 0..4мВ т.е 0мВ
  12. Вышла Atmel Studio 6

    В 4 студии делал так. НЕХ файл флеши+НЕх файл EEPROm+FUSE+LOCK сохранял в один файл elf. Подскажите в 6.1 как создать *. elf файл? Или какие другие варианты есть для прошивки в 1 клик? Программатор ITAGICE mkII. Камни ATXmega64a4.
  13. Сейчас ручное режим переключения Правша--левша. Предполагается сделать в качестве отключаемой опции. На сотовых вроде стабильно работает.
  14. Подскажите возможно использование датчика MMA7660 в качестве датчика наклона? Предполагается использование для автоматического поворота изображения на индикаторе.
  15. на PD0 можно вывести только с счетчиков TCD*. На порт E с счетчиков TCE* и т.д
  16. Если Вам нужен раздельный счет, то придется использовать 4 канала событий и 4 счетчика. Если результаты потом складываются , то 4 канала и 1 счетчик.
  17. Вопросы по XMega

    Считает с ноги через компаратор в режиме idle. Если без AC, то EVSYS_CH3MUX=EVSYS_CHMUX_PORTA_PIN6_gc; void main (void){ EVSYS_CH2MUX=EVSYS_CHMUX_TCD0_OVF_gc; EVSYS_CH0MUX=EVSYS_CHMUX_TCC0_OVF_gc; TCE0.CTRLA=TC_CLKSEL_EVCH2_gc; TCC1.CTRLA=TC_CLKSEL_EVCH0_gc; TCD0.CTRLA=TC_CLKSEL_EVCH3_gc; ACA.AC0CTRL=0; ACA.CTRLB=35; ACA.AC0MUXCTRL=(uint8_t)(AC_MUXPOS_PIN6_gc|AC_MUXNEG_SCALER_gc); ACA.AC0CTRL=(uint8_t)(AC_INTMODE_RISING_gc|AC_HYSMODE_LARGE_gc|AC_ENABLE_bm); uint32_t Freq_cnt=F_t_cek(~(F_CPU/10)); } uint32_t F_t_cek (uint32_t TT) { TCC0.PER=0xFFFF; TCC1.PER=0xFFFF; TCD0.PER=0xFFFF; TCE0.PER=0xFFFF; TCC0.CNT=TT; TCC1.CNT=TT>>16; TCD0.CNT=0; TCE0.CNT=0; TCC1.INTFLAGS=0xF3; TCC1.INTCTRLA=TC_OVFINTLVL_LO_gc; TCC0.CTRLA=TC_CLKSEL_DIV1_gc; EVSYS_CH3MUX=EVSYS_CHMUX_ACA_CH0_gc; __sleep(); EVSYS_CH3MUX=EVSYS_CHMUX_OFF_gc; TCC0.CTRLA=TC_CLKSEL_OFF_gc; TCC1.INTCTRLA=TC_OVFINTLVL_OFF_gc ; uint32_t Freq_cnt=0x10000*TCE0.CNT; return Freq_cnt+TCD0.CNT; };
  18. Предлагаю переделать прогу. 1. К таймеру C0 (который обновляется) подключите счетчик C1 через канал событий. Срабатывание по переполнению С0. 2. канал DMA через канал событий подключите к С1. 3. С1 досчитал до 10 - DMA перегоняет новые значения в TCC0.PER. p.s. все это работает в режиме idle.
  19. ATxMega32D4

    Попробуйте вот этот код под себя переделать: SLEEP.CTRL=1; int16_t ADC_U(uint8_t MUX,uint8_t IN,uint8_t REF) { PR.PRPA=PR_AC_bm; ADCA.CH0.CTRL =IN; ADCA.CH0.MUXCTRL=MUX; ADCA.REFCTRL=REF; if(MUX==ADC_CH_MUXINT_TEMP_gc) { ADCA.PRESCALER=ADC_PRESCALER_DIV256_gc; ADCA.CTRLB=0; } else { ADCA.PRESCALER=ADC_PRESCALER_DIV256_gc; ADCA.CTRLB=ADC_CONMODE_bm; }; ADCA.EVCTRL=0; ADCA.CTRLA=ADC_ENABLE_bm|ADC_FLUSH_bm; // очистка конвеера int16_t u=0; ADCA.CH0.INTCTRL=ADC_CH_INTLVL_LO_gc; ADCA.CTRLA=ADC_ENABLE_bm|ADC_CH0START_bm; __sleep(); for(uint8_t i=0;i<16;i++) { ADCA.CTRLA=ADC_ENABLE_bm|ADC_CH0START_bm; __sleep(); int16_t w=ADCA.CH0RES; u=u+w; }; ADCA.CH0.INTCTRL=ADC_CH_INTLVL_OFF_gc; ADCA.REFCTRL=0; ADCA.CTRLA=0; PR.PRPA=PR_ADC_bm|PR_AC_bm; return u; };
  20. Добрый. По коду -- Зачем стоят {} после EEPROM_WriteByte(); :rolleyes: ??? Не нашел где чтение и запись не пересекаются...
  21. Использую подобный алгоритм . Работает. Канал событий срабатывает когда счетчик переполняется. На флаг не смотрите...он вроде все время установлен.
  22. Между таймером и DMA воткните канал событий. Переполнение таймера через канал событий будет запускать передачу по DMA.
  23. Смотрите в даташитах наличие TWI. К примеру Атмега16.
×
×
  • Создать...