RicLab
Участник-
Постов
41 -
Зарегистрирован
-
Посещение
Весь контент RicLab
-
Eagle. Клонирование платы в проекте
RicLab опубликовал тема в Разрабатываем ПП в САПР - PCB development
Добрый день. Вопрос, есть ли способ в одном проекте сделать 2 одинаковые платы? -
В промышленности для таких задач используются врашающиеся токосьемники. Вполне надежно в эксплуатации. Только выбирать их надо в соответсвии с задачей и условиями эксплуатации.
-
Перевод документации STM32F1xx
RicLab ответил ang54 тема в ARM, 32bit
извиняюсь за не совсем ясный вопрос. выше упоминалось о библиотеки где собраны переводы документации. Вопрос был про них! -
Перевод документации STM32F1xx
RicLab ответил ang54 тема в ARM, 32bit
подскажите ссылки на другую документацию. -
Перевод документации STM32F1xx
RicLab ответил ang54 тема в ARM, 32bit
Подскажите адрес этого самой ftp бибилиотеки. На сайте что-то не нашел? :rolleyes: -
Выбор цифрового осциллографа
RicLab ответил RicLab тема в В помощь начинающему
в третьем варианте меня смущает отсутствие гальванической развязки по USB. -
Выбор цифрового осциллографа
RicLab опубликовал тема в В помощь начинающему
Добрый день. Необходимо определиться с выбором цифрового осциллографа между следующими моделями. Итак. 1. RIGOL DS1052E 2. Siglent SDS1062CM 3. Hantek DSO-2250 Опыта общения с данными девайсами нет, поэтому прошу совета. Осциллограф необходим для себя т.е. для дома. Круг использования от звукотехники до МК. -
настройка FT232R
RicLab ответил RicLab тема в В помощь начинающему
Спасибо. Решение было у меня под носом. :smile3046: А что значит &MI_00 ? -
настройка FT232R
RicLab ответил RicLab тема в В помощь начинающему
в инф файле этот пид уже есть. Ftdi="FTDI" DESC="CDM Driver Package - Bus/D2XX Driver" DriversDisk="FTDI USB Drivers Disk" USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter" USB\VID_0403&PID_6010&MI_00.DeviceDesc="USB Serial Converter A" USB\VID_0403&PID_6010&MI_01.DeviceDesc="USB Serial Converter B" USB\VID_0403&PID_6011&MI_00.DeviceDesc="USB Serial Converter A" USB\VID_0403&PID_6011&MI_01.DeviceDesc="USB Serial Converter B" USB\VID_0403&PID_6011&MI_02.DeviceDesc="USB Serial Converter C" USB\VID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D" USB\VID_0403&PID_6014.DeviceDesc="USB Serial Converter" SvcDesc="USB Serial Converter Driver" ClassName="USB" Через библиотеку ftd2xx.dll ? И как через неё обратиться? -
настройка FT232R
RicLab опубликовал тема в В помощь начинающему
Добрый день. Возникла проблема с FT232R, после изменения PID через FTprog со значения по умолчанию 6001 на 6010. На устройство не подходят драйвера хотя до изменения PID подходили. FTprog перестала видить FT232R. Есть ли способ сбросить настройки на значение по умолчанию? -
ссылку можно найти в сети, переслать по почте не могу так как у меня эта книга в бумажном ввиде.
-
По внутреннему устройству Tiny2313 можно подробно почитать в книге А.В.Белов <<самоучитель разработчика устройства на микроконтроллерах AVR>> Там по русски всё подробно расписано + обучающий материал на С и Асме. и мк и преобразователя.
-
Насчёт С1 несогласен, на практике проверено не мешает. Хоть у микрокнотроллера и есть внутренние цепи сброса для надёжности RC не помешает. вы имели ввиду низкий и высокий уровень на входах? Да и какие сигналы ему необходимы? случайно не +24В?
-
Если не секрет, А что это будет? :rolleyes: Под ПЧ подразумевается преобразователь частоты, а сигналы действительно лучше завести через опторазвязку.
-
eeprom avr
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
Палыч Спасибо, полностью согласен с вами! -
eeprom avr
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
сделал так eeprom int Datamemory=40; // обьявляем переменные int readydata,var; interrupt [TIM0_OVF] void timer0_ovf_isr(void){ readydata++; // в прерывании инкрементируем }; while (1) { if (readydata==392) { // каждые ~ 100мсек readydata=0; if (Datamemory!=var) { // если значение в eeprom не равно текущему значению Datamemory=var; // записываем текущее значение в eeprom }; }; }; } временной интервал проверки уменьшил до 100мсек так как при оном равном 1 сек при выключении питания записывался мусор(при сбросе все нормально ). понимаю что так записывать наверно неправильно, так что жду критики. :smile3046: -
eeprom avr
RicLab опубликовал тема в MCS51, AVR, PIC, STM8, 8bit
Добрый день. в проекте необходимо записать переменную изменяемую пользователем в eeprom если она не изменяется в течении ~1сек. Записываю так: eeprom int Datamemory=40; // обьявляю переменную void xxx (void) // функция вызываемая прерыванием таймера if(oldvariable==newvariable){ x++; } else { x=0; }; if (x==3921){ Datamemory=variable; x=0; }; void main()void variable2=Datamemory; запись происходит не всегда и если записывается то мусор. Как правильно организовать запись в eeprom? -
таймер Т1
RicLab опубликовал тема в MCS51, AVR, PIC, STM8, 8bit
Добрый день. Суть вопроса такова. Таймер Т1 настроен на сброс при совпадении с OCR1A и генерирование прерывания. Задержки от 5с до 100мс, переменная которая записывается в OCR1A изменяется пользователем в любой момент. При больших задержках таймера он не сразу реагирует на изменение OCR1A. Как можно сбросить таймер в любой момент времени и заново запустить на счёт? Вот настройка таймера при инициализации. // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 7,813 kHz // Mode: CTC top=OCR1A // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; -
Энкодер
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
сильно не ругайте, я начинающий :smile3046: За советы большое спасибо. -
Энкодер
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
тогда пострадает надёжность распознования вращения энкодера. Проверил в железе, бывают ложные импульсы. -
Энкодер
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
заработало но на один щелчок энкодера на выходе 4 импульса. Так и должно быть по алгоритму. Как можно сделать 1 щелчок 1 импульс? Автор статьи писал об этом, но я не совсем понял как это реализовать. -
Энкодер
RicLab опубликовал тема в MCS51, AVR, PIC, STM8, 8bit
Добрый день. Алгоритм обработки энкодера взял здесь. Переделал для CVAVR, но заставить работать не получается. К порту B подключены светодиоды, сигналы энкодера A и B подключены к порту D 2 и 3 соответственно. Chip type : ATtiny2313 Clock frequency : 8,000000 MHz Memory model : Tiny External SRAM size : 0 Data Stack size : 32 *****************************************************/ #include <tiny2313.h> int New; // новое значение состояния энкодера unsigned char EncData; // счётный регистр энкодера int EncState; // предыдущее состояние энкодера void EncoderScan(void) { New=PIND&0xC; // копируем в New состояние входов 2,3 switch (EncState) // сравниваем текущее значение New со старым смотря в какую сторону вращение изменениям EncData ++ или -- { case 2: { if (New==3) EncData++; if (New==0) EncData--; break; } case 0: { if (New==2) EncData++; if (New==1) EncData--; break; } case 1: { if (New==0) EncData++; if (New==3) EncData--; break; } case 3: { if (New==1) EncData++; if (New==2) EncData--; break; } } EncState=New; // записываем новое значение предыдущего состояния } // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { EncoderScan(); // запускаем функцию сканирования энкодера } // Declare your global variables here void main(void) { // Declare your local variables here // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0xFF; // Port D initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTD=0x7F; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 1000,000 kHz // Mode: Normal top=FFh // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x02; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x02; // Global enable interrupts #asm("sei") while (1) { PORTB=EncData; }; } Где моё упущение? :laughing: -
динамическая индикация
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
такой задачи у меня не было :rolleyes: -
динамическая индикация
RicLab ответил RicLab тема в MCS51, AVR, PIC, STM8, 8bit
порог инерционности человеческого глаза, в ЭЛТ развертка идет с частотой 50-60Гц. Если бы я делал электронное табло у меня не возникали бы вопросы.