Zase STM32

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Listopad 29 20:22:09 CET 2020


Tak ted se mi zda, ze prece jen aspon pro prvni pokusy je dobre pouzit 
konfigurator a HAL - naklika se to, spusti se timer a jede to... Postup 
spusteni je primo soucasti zdrojaku kdyz nekdo nechce hledat.


Dne 29.11.2020 v 20:16 Fanda Kopriva napsal(a):
> posilam soukromne tak to snad dojde
> fanda
>
> Dne 29. 11. 2020 v 19:43 Pavel Hudecek napsal(a):
>>
>> Mohl bych poprosit o zaslání .h ve kteém jsou ty registry 
>> STM32F030K6T6 zadefinovaný?
>>
>> Stáhnul jsem několik takových fajlů a nefunguje ani jedno ani druhý
>>
>> TIM3_CCR0 = val;
>>
>> TIM3->CCR0 = val;
>>
>> Zajímavý je, že je v nich nadefinovaných spousta věcí, jako TIM1_..., 
>> nebo TIM17_... takže třeba s TIM1 by mi to tak šlo, ale k TIM3 je tam 
>> jen BASE.
>>
>> Díky,
>>
>> PH
>>
>> *Od: *Fanda Kopriva <mailto:info na elektronikavyvoj.cz>
>>
>> s STM32F030K6T6 jsem delal pro kamarada nastavovani modelarskeho  
>> serva opakovacka 20 ms a pulz 1-2ms
>>
>> void motor(char co)
>> {
>> unsigned int pwmx;
>>  switch (co) {
>>    case 'I':
>>             RCC_APB1ENR |=2;                   //servo inicializace
>>             GPIOB_MODER   |= 0x00000008;       //port pb1
>>             GPIOB_AFRL    |= 0x00000010;
>>           TIM3_CR1 = 0x1;
>>           TIM3_CCMR2_Output = 0x7000;
>>           TIM3_CCR4 = 0;      //togle
>>           TIM3_CCER = 0x3000;                 //11
>>           TIM3_CNT = 0;
>>           TIM3_PSC = 7;          //1us
>>           TIM3_ARR = 20000;      //20ms
>>           TIM3_CR1 = 0x1;     //43
>>           TIM3_CCR4 = 1000;      //1.5ms
>>            break;
>>    case 'P':
>>           pwmx = servo * 50 + 1000;     //servo nastaveni
>>           if (pwmx>2000) pwmx=2000;
>>           TIM3_CCR4 = pwmx;
>>            break;
>>    case 'S':TIM3_CCR4 = 1000;      //1.5ms    servo stop
>>             break;
>>                }
>> }
>>
>> jeste priklad pro stm32f446 -
>>
>> #define enc1 0     //pc7 T3ch2
>> #define enc2 0     //pc8 T3ch3
>>
>> void encod(unsigned char co){
>>    if (co=='I') { //inicializace
>>           GPIOC_MODER &=  0xfffc3fff;
>>           GPIOC_MODER |=  0x00028000;
>>           GPIOC_AFRH  |=  0x00000002;
>>           GPIOC_AFRL  |=  0x20000000;
>>           GPIOC_OSPEEDR |=0x00028000;
>>           RCC_APB1ENR  |= 0x2;         //tim3      168/4 42MHz
>>           TIM3_CR1 = 0x81;
>>           TIM3_CCMR1_Output = 0x7000;
>>           TIM3_CCMR2_Output = 0x0070;
>>           TIM3_CCER = 0x0110;
>>           TIM3_CNT = 0;
>>           TIM3_PSC = 0;
>>           TIM3_ARR = 20000;
>>           TIM3_CCR2 = 10000;
>>           TIM3_CCR3 = 10000;
>>           TIM3_CR1 = 0x81;     //zisk ad603 pwm1 ch1
>>                }
>>
>>   if (co=='P') { //nastaveni
>>
>>           if (laserA>18000) pwmx=18000; else pwmx=18000 - laserA;
>>           TIM1_CCR2 = pwmx;
>>           if (laserB>18000) pwmx=18000; else pwmx=18000 - laserB;
>>           TIM1_CCR3 = pwmx;
>>                }
>>                               }
>>
>> mam tady jeste priklad pro stm32f427 -
>>
>> //#define laspwm   0x200           //d14  T4ch3
>> //#define pwina         // d12  T4ch1   //zisk
>> //#define pwin          // d13  T4ch2
>>
>> unsigned int laseron ;
>> void laser(unsigned char co)
>> {
>> signed int laspoz;
>> switch (co) {
>>     case 'I':
>>            GPIOD_MODER &=  0xc0FFFFFF;
>>            GPIOD_MODER |=  0x2a000000;
>>            GPIOD_AFRH  |=  0x02220000;
>>           RCC_APB1ENR  |= 0x4;
>>           TIM4_CR1 = 0x1;
>>           TIM4_CCMR2_Output = 0x70;
>>           TIM4_CCMR1_Output = 0x7070;
>>           TIM4_CCER = 0x0111;                 //11
>>           TIM4_CNT = 0;
>>           TIM4_PSC = 10;
>>           TIM4_ARR = 256;
>>           TIM4_CCR3 = 255;
>>           TIM4_CR1 = 0x1;     //zisk ad603 pwm1 ch1 unsigned int 
>> lasset,lasproud,maxlaser;
>>              break;
>>     case 'P':
>>           TIM4_CCR3 = laserproud;
>>
>>           TIM4_CCR2 = zisk;
>>           TIM4_CCR1 = ziska;
>>              break;
>>              }
>> }
>>
>> fanda
>>
>> Dne 29. 11. 2020 v 11:15 Pavel Hudecek napsal(a):
>>
>>     Dobrý den všem,
>>
>>     Trápím se tady s STM32F030K6T6, k PC připojeno přes STM32F0308
>>     discovery, Cube IDE.
>>
>>     1. Jak udělat, aby program běžel i po disconnect?
>>
>>     2. Nedaří se mi zprovoznit PWM. Byla by nějaká ukázka, nejlépe
>>     pro TIM3?
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20201129/31137133/attachment-0001.html>


Další informace o konferenci Hw-list