Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
nikityan
Встал на лапы
Сообщения: 91
Зарегистрирован: Сб авг 11, 2012 22:31:57

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение nikityan »

Спасибо, попробую)
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

Alexeyslav писал(а):Нельзя. По той простой причине, что как правило FAT-таблица отъедает приличный кусок. У вас есть микросхема FRAM на 4Мб чтобы под файлы реально использовать только два?
На 4Мб использовать FAT32 ??? Вы наверное забыли, что такое дискета 5.25" на 1.2Мб. :) Сколько там занимал FAT ? Никак не половину дискеты! Пусть и FAT12.
Человек спрашивал о возможности как таковой, а не о рациональности этого действа.

На счёт эмуляции FAT - повеселили. :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
kocmoc
Родился
Сообщения: 2
Зарегистрирован: Вт окт 30, 2012 08:37:51

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение kocmoc »

Привет котоводы!
Решил написать в этой теме дабы не плодить топики, я новичёк на этом форуме (хотя странно форум уже давно знаю и даже регался по моему) и у мня вопрос по поводу книг (поиск юзал хотя признаюсь через строку т.к. времени в обрез), есть ли книги по мк51 под си/с++?
В частности меня интересует не столько книга, сколько система комманд С/С++ (общение с МК), если есть у вас выложите сюда плз.
Спс!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

kocmoc писал(а):система комманд С/С++ (общение с МК)

Таки вроде команды-то у всех общие. Это уже от конкретного компилятора будут зависеть нюансы.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
kocmoc
Родился
Сообщения: 2
Зарегистрирован: Вт окт 30, 2012 08:37:51

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение kocmoc »

Спойлер

    Код: Выделить всё

    #include "stm32f10x.h"
    #include "STM32_Init.h"
    #include "rtl.h"

    #define Set_PortC_Pin_8_output ((GPIOC->CRH |= 0x2)|(GPIOC->CRH &= ~0xC))
    #define Set_PortC_Pin_9_output ((GPIOC->CRH |= 0x20)|(GPIOC->CRH &= ~0xC0))

    const unsigned long led_mask[] = { 1UL<<8, 1UL<<9 };

    OS_TID t_LED1;
    OS_TID t_LED2;

    void DevsInit(void)
    {
       RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;

       Set_PortC_Pin_8_output;
       Set_PortC_Pin_9_output;

    }

    void LEDOn (uint32_t num)
    {
       GPIOC->BSRR = led_mask[num];
    }

    void LEDOff (uint32_t num)
    {
       GPIOC->BRR = led_mask[num];
    }

    __task void f_LED1 (void)
    {
       while (1)
       {
          LEDOn (0);
          os_dly_wait (200);
          LEDOff (0);
          os_dly_wait (200);
       }
    }

    __task void f_LED2 (void)
    {
       while (1)
       {
          LEDOn (1);
          os_dly_wait (400);
          LEDOff (1);
          os_dly_wait (400);
       }
    }

    __task void init (void)
    {
       os_tsk_prio_self (100);

       t_LED1 = os_tsk_create (f_LED1, 20);
       t_LED2 = os_tsk_create (f_LED2, 20);

       os_tsk_delete_self ();
    }

    int main (void)
    {
       SystemInit ();
       stm32_Init();
       DevsInit();
       os_sys_init(init);
       return 0;
    }

    Если нужен UART, можно использовать STM32_Init.c. Использовать его можно и как визард, наставить нужных галочек, а можно прямо из него выдрать готовый код инициализации uart-а. Типа такого:
    Код
    RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;                                    // enable clock for Alternate Function
    AFIO->MAPR   &= ~(1 << 2);                                            // clear USART1 remap
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;                                   // enable clock for GPIOA
    GPIOA->CRH   &= ~(0xFFUL  << 4);                                      // Clear PA9, PA10
    GPIOA->CRH   |=  (0x0BUL  << 4);                                      // USART1 Tx (PA9)  alternate output push-pull
    GPIOA->CRH   |=  (0x04UL  << 8);                                      // USART1 Rx (PA10) input floating
    RCC->APB2ENR |= RCC_APB2ENR_USART1EN;                               // enable clock for USART1
    USART1->BRR  = (0x9C << 4);
    USART1->BRR  = 0x4;
    USART1->CR1 |= (USART_CR1_RE | USART_CR1_TE);                       // RX, TX enable
    USART1->CR1 |= USART_CR1_UE;                                        // USART enable

    А чтобы потом вывести что нить, достаточно дописать две короткие функции:

    Код
    void UartSendChar (char ch)
    {
        while (!(USART1->SR & USART_SR_TXE)) {}
        USART1->DR=ch;
    }

    void UartSendStr (char *str)
    {
        while (*str != 0)
        {
            UartSendChar (*str++);
        }
    }


Это вырезка с форума, нашёл первый попавшийся код, это что за дефы? - #define Set_PortC_Pin_8_output ((GPIOC->CRH |= 0x2)|(GPIOC->CRH &= ~0xC))
#define Set_PortC_Pin_9_output ((GPIOC->CRH |= 0x20)|(GPIOC->CRH &= ~0xC0)) - т.е. извиняюсь за выражение что, какие то люди хрен знает что понаписали в хидерах и я должен знать что GPIOC->CRH |=0х20 - установка битов какого то именованного порта (имя которого они придумали и зыбили это в хидеры, а я должен эти имена выучить?)? Какая то бессмыслица получается .... поправьте если не так.
ЗЫ а спойлер реально сделать тут?

Реально. Gudd-Head
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DX168B »

Господа коты, есть маленькая проблема.
Имеем ATMEGA8 с драйвером RS485 на ногах USARTа.
Функция передачи следующая:

Код: Выделить всё


void usart_send
(char *s, unsigned char Ln)
{
        PORTC |= (1<<PC3);             // RS485 на передачу

        for(uchar r = 0;r<Ln;r++)
        {
          while(!(UCSRA & (1<<UDRE))){_wdr();} //Тупим, пока не освободится регистр UDR
          UDR = s[r];
        }

        PORTC &= ~(1<<PC3);             // RS485 на прием
}
 


Все вроде нормально, пока шлю подряд массив за массивом. Но как только заканчиваю с передачей, то в конце теряются два байта.
Как я понял, это связано с FIFO буфером передачи USARTа, который как раз имеет размер в два байта.
Мне приходится пихать в конце передачи еще два нуля, чтобы решить эту проблему. Можно-ли как-то без этого?


UPD:
Вот я дурынь!!! :oops: Я отрубаю передатчик RS485 раньше времени. Все, проблема понятна.
Правильнее так:

Код: Выделить всё

void usart_send(char *s, unsigned char Ln)
{
        PORTC |= (1<<PC3);             // RS485 на передачу

        for(uchar r = 0;r<Ln;r++)
        {
          while(!(UCSRA & (1<<UDRE))){_wdr();} //Тупим, пока не освободится регистр UDR
          UDR = s[r];
        }
}
///////////////////////////////////////////////////////////////////////////////
void USART_TXC_vect() //Прерывание по окончанию передачи
{
        PORTC &= ~(1<<PC3);             // RS485 на прием
}
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
shinji2009
Электрический кот
Сообщения: 1057
Зарегистрирован: Ср мар 17, 2010 18:19:09
Откуда: новосибирск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение shinji2009 »

привет. скажите пожалуйста... вот есть контроллер с включенным ср, и он не отдает программу... а что, нельзя прошить отдельно фьюзы, сбросив ср, и считать программу?
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение akl »

Низзя. :dont_know:
Аватара пользователя
shinji2009
Электрический кот
Сообщения: 1057
Зарегистрирован: Ср мар 17, 2010 18:19:09
Откуда: новосибирск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение shinji2009 »

akl
а почему? в программе к программатору можно же убрать все галочки кроме «шить фьюзы»... что произойдет при попытке? ошибку выдаст?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

На то она и защита. Можно стереть всё, и использовать контроллер как новый. А считать нельзя.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение rus084 »

возможно ли написать прошивку мк , чтобы вместо карбюратора поставить инжектор
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ploop »

Вообще-то МК от кварца тактируется. Иногда от внутреннего или внешнего генератора. Но чтобы от карбюратора или инжектора :shock:
Не, не слышал.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

"О сколько нам открытий чудных..." :)
Docendo discimus
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение rus084 »

ну чтобы карбюраторный мотор переделать на моновпрыск ?
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

(Устало): можно.
(Я уже слышу, как вопрошавший рассказывает чётким пацанам, что читал на форуме, что "можно". Эти пацаны потом докапываются до местного кулибина. Кулибин им отвечает, мол вы чё, рехнулись? Пацаны ему - в интернете все это делают. Кулибин ныряет и пишет (мне) сделай! ps. А я-то думаю, откуда ноги растут у этой бредятины...)
Docendo discimus
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение rus084 »

програмно нужно только высчитывать момент и длительность открытия форсунки и момент искроообразования .
больше ничего ведь ненадо?
з.ы. спрашиваю только теоретически
Меня зовут Димон .
Изображение
Изображение
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Где то в старых журналах "За рулём" описывалась система зажигания чуть ли не на транзисторах с похожей функциональностью. Возможно имеет смысл переделать под МК. Но делать Вы скорее всего будете на AVR - я тут не помощник, увы!
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение rus084 »

а что насчет ATtiny13 ?
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

Вот блин зажатый народ какой, может на паре транзисторов тогда слепить?Зачем себя ограничивать одним килобайтом, когда есть Мк на 20 рублей дороже и 8 килобайт памяти на борту
Вообще-то МК от кварца тактируется. Иногда от внутреннего или внешнего генератора. Но чтобы от карбюратора или инжектора

это больше похоже на стеб какой то, вопрос был не о том откуда тактировать Мк, а о том, как написать прошивку для Мк, чтобы его использовать вместо блока управления двигателем.
Кстати я где то висел в похожей теме, но там хотели всего лишь угол опережения регулировать.
Там как то тема заглохла, наверно терпения не хватило доделать.

И вообще есть ветка специально для авто-вело-мото.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeyslav »

убрать все галочки кроме «шить фьюзы»... что произойдет при попытке?

Ничего не произойдет. Биты защиты можно установить только один раз и сбрасываются только после окончания процесса полной очистки. В первых контроллерах были баги позволяющие разлочить контроллер без стирания программы - играться с напряжением питания и временем прерывания процесса стирания так что биты защиты стирались а программа нет - но этот процесс требует тонкой настройки на сотне подопытных из одной партии. Сейчас эта проблема решена и просто так не разлочишь. Остается только один выход - при помощи напильникаазотной кислоты снимать кристалл послойно и электронным микроскопом считывать состояния ячеек, потом по известной топологии кристалла восстановить содержимое FLASH-памяти побитно. Но сам представь сколько для этого потребуется ресурсов. Стоит ли того содержимое памяти контроллера?
Ответить

Вернуться в «Разные вопросы по МК»