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

Pavel339

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Pavel339

  • Звание
    Участник
    Участник
  • День рождения 30.03.1980
  1. Спасибо большое, а я как показано в уроках разводил(((
  2. Тогда бы сделанные мною элементы через генератор 3Д моделей разводились бы по нормальному а тут все элемны так себя ведут. Выложил и настройки и проект, версия !Altium Designer 14.1.5 Desktop.zip
  3. Я начинающий пользователь Альтиума. Тока установил его. Запустил сделал схему, начал разводить. Но появилась одна проблема. Рисунок во вложении. Первый рисунок, навожу курсор на центр. нажимаю на мышку, следующий рисунок начинаю вести цепь, следующий, нарисовал цепь, но с ошибкой в параметрах цепи нет названия цепи, выбрал нужную цепь все окей, нижний правый рисунок, выделяю цепеть тащу ее чуть назад появляется тоненький кружочек как он стал максимального диаметра отпускаю мышку, цепь сразу определилась, перетаскиваю на место это нижний левый рисунок. Сейчас так и развожу, рисую маленькую цепь отвожу не много назад, потом на место ставлю и уже тащю определившуюся цепь куда надо хватая за конец цепи. Скорее всего где то галочка в параметрах не стоит, но не могу найти где, Может кто подскажет как с этим бороться заранее спасибо.
  4. Заметил ошибку опечатался RCC_APB2PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); не пойму тока почему кэйл не сриагировал на такую опечатку)
  5. Точно, спасиб. А я уже всю голову сломал))) Хотя нет тактирование включал я // Enable timer clock - use TIMER5 RCC_APB2PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); вот
  6. Вот код иницилизации портов #include "init_gpio.h" #define SYS_CLK 48000000 // we use SPEED_HIGH = 48 MHz #define DELAY_TIM_FREQUENCY 1000000 // 1MHZ -> timer runs in microseconds void init_gpio(void) { GPIO_InitTypeDef GPIO_InitStruct; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; // Enable or disable the AHB peripheral clock RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); // Configure GPIO pin (ADC_IN4) GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStruct); // Enable or disable the AHB peripheral clock RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); // Configure GPIO pin GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_1 4; GPIO_Init(GPIOD, &GPIO_InitStruct); // Enable timer clock - use TIMER5 RCC_APB2PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // Time base configuration TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Prescaler = (SYS_CLK / DELAY_TIM_FREQUENCY) - 1; TIM_TimeBaseStructure.TIM_Period = UINT16_MAX; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* Enable counter */ TIM_Cmd(TIM2, ENABLE); } Вот подпрограмма вывода на дисплей #include "init_gpio.h" #include "wh2004a.h" // void Delay_us (uint16_t uSecs) { // uint16_t Start = (uint16_t)TIM_GetCounter(TIM2); // while((uint16_t)((uint16_t)TIM_GetCounter(TIM2) - Start) <= uSecs); // } void Delay_us (uint16_t uSecs) { volatile uint32_t Start; Start = (uint32_t)uSecs*72; while(Start--); } void wh2004_write_4_bit (char Byte, char DI) { GPIO_ResetBits(GPIOD, GPIO_Pin_14); // E = 0 if (DI) GPIO_SetBits(GPIOD, GPIO_Pin_12); // RS = 1, Write Data else GPIO_ResetBits(GPIOD, GPIO_Pin_12); // RS = 0, Write Instruction GPIO_ResetBits(GPIOD, GPIO_Pin_13); // Wn/R = 0 Delay_us(2); GPIO_SetBits(GPIOD, GPIO_Pin_14); // E = 1 GPIO_SetBits(GPIOD, ((uint16_t)Byte << 8) & 0x0F00); GPIO_ResetBits(GPIOD, ~((uint16_t)Byte << 8) & 0x0F00); //GPIO_Write(GPIOB, (GPIOB->ODR & 0xC3FF) | ((((uint16_t)Byte) << 10) & 0x3C00)); // Write Data Delay_us(2); GPIO_ResetBits(GPIOD, GPIO_Pin_14); // E = 0 Delay_us(2); } void wh2004_write_8_bit (char Byte, char DI) { wh2004_write_4_bit (Byte >> 4, DI); wh2004_write_4_bit (Byte, DI); } void wh2004_write_data (char Byte, char Pos) { wh2004_write_8_bit((Pos & 0x7F) | 0x80, 0); // Set Position Delay_us(50); // Wait 50 us wh2004_write_8_bit(Byte, 1); // Write Data Delay_us(50); // Wait 50 us } void wh2004_init () { Delay_us(20000); // Wait 20 ms (Power On) wh2004_write_4_bit(3, 0); // Set 4-bit mode Delay_us(5000); // Wait 5 ms wh2004_write_4_bit(3, 0); Delay_us(500); wh2004_write_4_bit(3, 0); Delay_us(1000); wh2004_write_4_bit(2, 0); Delay_us(100); wh2004_write_8_bit(0x28, 0); Delay_us(2000); // Wait 100 us wh2004_write_8_bit(0x0C, 0); // Display Off Delay_us(2000); // Wait 100 us wh2004_write_8_bit(0x01, 0); // Display Clear Delay_us(5000); // Wait 100 us wh2004_write_8_bit(0x06, 0); // Display Clear Delay_us(5000); // Wait 100 us } Сейчас сделал на задержках функция таймера в верху программы заремлина ибо START при отладке всегда равен 0.
  7. Имееться девайс STM32F3Discovery с родным контроллером STM32F303VCT который заменен на STM32F373VCT. Есть проект вывод числа с плавующей точкой на дисплей WH2004A-TGK-CT#, пробывал запустить с помощью таймера, почему то не срабатывает вроде бы все делаю правильно. Потом в итоге сделал по задержкам, но мне теперь надо с АЦП работать, а там таймер нужен, который у меня не работает, может кто подскажет причину, начинающему почему не работает (код работы таймера заремен). Проект прикрепить не удалось даю ссылку на яндек диск http://yadi.sk/d/_XdJlLnw7cAH4. Заранее спасибо. И еще работаю в Keil uVision4.
  8. Может у кого есть реализация на верелоге или VHDL-е шифратора и дешифратора манчестерского кода. Заранее благодарен.
  9. Есть выражение outi(i) = in/n + (out(i-1)*(n-1))/n где n = 4, что-бы избавиться от дробной части я умножу правую часть на 1024 (другими словами сдвину на два бита), но затем мне надо убрать эти два бита и что-бы уменьшить ошибку округлить в большую или меньшую сторону. может кто подскажет как это сделать правильно. И если я сделаю так то будет правильно или нет out[15:0] = data[17:2] где out - выходной сигнал, а data - регистор в котором храниться конечный результат.
  10. Может кто подскажет как в Quartusе выделить область памяти занести туда коэффициент и произвести умножение данного коэффициента на входной сигнал на языке Verilog.
  11. Спасибо всем я разобрался со всем что хотел кто подскажет как закрыть данную тему
  12. В таком случае, "никто не знает начала того конца, которым оканчивается начало". В том смысле, как вы будете определять первый из 16 бит слова, которое надо представить в параллельном виде? clok появился начали передавать cloka нет даных нет
  13. спасибо но у меня есть тока три провода по одному происходит передачаданных по другому прием по третьему передаеться клок. Я знаю что передоваться будут 16 разрядные слова на выходе должен быть паралельный код. и shift мне не откуда брать.
  14. чего-то я совсем тупею? зачем здесь clk? где селектор (на основание какой информации выбирается один из 4х выходов)? как однобитовый вход может передавать 16 разрядные слова - он чего последовательный(к тому же как вход может что-то передавать, на него можно ток что-то принимать , потому что если б у бабушки были яйца она была бы не бабушкой а дедушкой ) ? выход 4 чего бит или штук каналов? вы сами понимаете о чём спросили? приведите техническое задание в нормальном словесном функциональном описание - не вставляйте технических терминов, если точно не уверены в их значение ( и вообще - будьте проще - сядьте на пол - этим здесь никого не смутишь ) все я сконцентрировался и пишу суть проблемы есть вход данных однобитный. есть клок. есть выходы. по входу передаем данные 16 разрядный последовательный код синхронизированный по клоку. а на выходе должен быть паралельный код. То есть первый бит на выходе q1 второй на q2 и тд. Или еще проще как сделать сдвиговый регистр в верелоге
  15. Мне надо описать дишефратор с двумя входами один data другой clk и четыре выхода, то есть 1:4. Или по другому вход однобитовый прердающий 16 разрядные слова, а выход 4. Как это сделать в vereloge/
×
×
  • Создать...