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

DeL

Пользователи
  • Постов

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

  • Посещение

Сообщения, опубликованные DeL

  1. восстановил резервную копию  на другой жесткий диск акронисом, хотел с него запуститься 
    и выдает экран L 99 99 99 99 99. Гугл говорит, что надо восстановить загрузчик LILO следующим алгоритмом действий: 
    1. загрузиться с диска
    2. прописать mkdir /mnt
    3. mount /dev/sdb3 /mnt
    4. chroot /mnt
    5. /sbin/lilo
    6. sync
    7. exit

    Сделал все как написано, система выдает, что Mount: unknown filesystem type 'swap'
    пробовал тоже самое с sdb5, вроде все прошло, но с какими-то ошибками и выдает те же L 99 99 99 99
    в чем может быть проблема? 
     

     

  2. Вопрос : как выйти на человека, который сдает квартиры по 300-500 руб с человека?

    хорошую гостиницу за такие деньги можно со всеми удобствами.

    гугл явно выдает мне не самые дешевые варианты, может поделитесь ссылочками? :yes:

  3. Хотим с друзьями съездить летом сами в улан-батор, без турфирм, в общем студенты ;)

    Давно был там, особо ничего не помню, кроме как позы за 4 рубля/штучк *05

    Вопрос : как выйти на человека, который сдает квартиры по 300-500 руб с человека?

  4. 4pok

    #include

    #include

    #include

    #include

    #include "stm32f10x.h"

    int main(void)

    {

    GPIO_InitTypeDef PORT;

    //Включаем порты А и С

    RCC_APB2PeriphClockCmd((RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA) , ENABLE);

    GPIO_Init( GPIOC , &PORT);

    //Порт A настраивать смысла нет, все его ноги по умолчанию входы что нам и нужно

    RCC_APB2PeriphClockCmd(RCC_APB2ENR_ADC1EN, ENABLE); //Включаем тактирование АЦП

    ADC1->CR2 |= ADC_CR2_CAL; //Запуск калибровки АЦП

    while (!(ADC1->CR2 & ADC_CR2_CAL))

    ; //Ожидаем окончания калибровки

    ADC1->SMPR2 |= (ADC_SMPR2_SMP1_2 | ADC_SMPR2_SMP1_1 | ADC_SMPR2_SMP1_0); //Задаем

    // длительность выборки

    ADC1->CR2 |= ADC_CR2_JEXTSEL; //Преобразование инжектированной группы

    //запустится установкой бита JSWSTART

    ADC1->CR2 |= ADC_CR2_JEXTTRIG; //Разрешаем внешний запуск инжектированной группы

    ADC1->CR2 |= ADC_CR2_CONT; //Преобразования запускаются одно за другим

    ADC1->CR1 |= ADC_CR1_JAUTO; //Разрешить преобразование инжектированной группы

    //после регулярной. Не понятно зачем, но без этого не работает

    ADC1->JSQR |= (1<<15); //Задаем номер канала (выбран ADC1)

    ADC1->CR2 |= ADC_CR2_ADON;//Теперь включаем АЦП

    ADC1->CR2 |= ADC_CR2_JSWSTART; //Запуск преобразований

    while (!(ADC1->SR & ADC_SR_JEOC)) //ждем пока первое преобразование завершится

    ;

    //Теперь можно читать результат из JDR1

    void UART_init(void)

    {

    // тактируюсь от кварца на 12 МГц

    // включаю тактирование ЮАРТ1 и порта на которам он висит

    RCC->APB2ENR |= RCC_APB2ENR_USART1EN;

    RCC->APB2ENR|= RCC_APB2ENR_AFIOEN;

    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

    // настраиваю соответсв. порты на вход и выход от расшир. функций

    GPIOA->CRH &= ~GPIO_CRH_MODE9;

    GPIOA->CRH &= ~GPIO_CRH_CNF9;

    GPIOA->CRH &= ~GPIO_CRH_MODE10;

    GPIOA->CRH &= ~GPIO_CRH_CNF10;

    GPIOA->CRH |= GPIO_CRH_MODE9_1; // выход на 2 МГц

    GPIOA->CRH |= GPIO_CRH_CNF9_1;

    GPIOA->CRH |= GPIO_CRH_CNF10_0;

    // 12 МГц/16*115200 = 6.5

    USART1->BRR = (6 << 4) + 8;

    // включаю ЮАРТ

    USART1->CR1 |= USART_CR1_UE;

    USART1->CR1 |= USART_CR1_TE; // включил передатчик

    USART1->CR1 |= USART_CR1_RE; // включил приемник

    }

    // будет передавать данные с АЦП в ЮАРТ по инициативе АЦП, использую 1 канал ПДП

    void DMA_init (void)

    {

    RCC->AHBENR |= RCC_AHBENR_DMA1EN; // подаю такты на DMA1

    DMA1_Channel1->CPAR = (uint32_t) &ADC1->DR; // адрес периферии

    DMA1_Channel1->CMAR = (uint32_t) &USART1->DR; // адрес памяти

    DMA1_Channel1->CNDTR = 1; // количество передач данных, у меня цыклическая передача, счетчик после достижения 0 будет обновляться

    // так получилось что значения по умолчанию меня устраивают (т.е. чтение из периферии, 8 бит, без инкримента и т.д.)

    DMA1_Channel1->CCR |= DMA_CCR1_CIRC; // цыклическая передача

    DMA1_Channel1->CCR |= DMA_CCR1_EN; // включаем

    }

    void USART1_IRQHandler (void)

    {

    USART1->DR = USART1->DR; // эхо по приему, флаг прерывание автоматически сбрасывается после чтения

    }

    }

    получатеся у меня такой алгоритм:

    1. включаем порты, включаем АDC1, инжектированную группу

    2. включаем, настраиваем UART

    3. настраиваем DMA,чтоб читал с ADC1

    но ничего не работает

  5. stm32f100rb

    Задача состоит в том, чтобы подсоединить к МК датчик температуры и передавать показания с него с помощью радиомодуля(rs232) в эфир.

    Как это все организовать в программном коде?

    Используем COOCOX. В шитом примере есть разъяснения как сделать ADC+DMA. Вопрос: получается с датчика падает какое-то напряжение на МК, его мы оцифровываем по средству АЦП, потом цифра идет в ДМА память и передается через радомодуль? вот как связать ДМА и радиомодуль и вообще правильный ход мыслей?

×
×
  • Создать...