Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

STM32F3 + KEIL problem

[es] :: Elektronika :: Mikrokontroleri :: STM32F3 + KEIL problem

Strane: < .. 1 2 3 4

[ Pregleda: 9084 | Odgovora: 67 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15206
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2314 Profil

icon Re: STM32F3 + KEIL problem13.12.2013. u 15:55 - pre 76 meseci
dspic tera XC16 ne XC32 ?!
 
Odgovor na temu

npejcic
Nebojsa Pejcic
Nis

Član broj: 56690
Poruke: 109
212.178.236.*

Sajt: www.ePraktikum.iz.rs


+6 Profil

icon Re: STM32F3 + KEIL problem13.12.2013. u 16:08 - pre 76 meseci
dsPIC i PIC24 imaju 16bit core, znači XC16

PIC32xxx koriste XC32
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
93.87.86.*

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem13.12.2013. u 16:10 - pre 76 meseci
U pravu ste, moja greska, XC16 je za dsPIC.

Probacu malo kasnije samo neke majstore da ispratim ...
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

Risto.
Risto Pejasinovic
Crvena Crkva

Član broj: 192157
Poruke: 81
62.240.22.*



+10 Profil

icon Re: STM32F3 + KEIL problem13.12.2013. u 17:15 - pre 76 meseci
Ne znam da li ste videli biblioteke od mikroc-a for ARM za taj dsp.
Uploadovao sam sve posto nisam nasao na internetu, da cujem sta mislite o njima.

Stigla mi je f3discovery plocica juce.
Nisam se jos snasao najbolje u keil-u, treba mi jos dosta ucenja C-a, zbog onih struktura itd...
Da podesim eclipse sam probao ali vidim da taj codesourcery compiler nije free nego ima 30 dana probe. Pa nisam ni pokusavao dalje.
Mozda nisam nasao taj compiler o kojem pricate...

Inace vidim da je izasla nova verzija mikroc-a za arm 4.2.0.
Prikačeni fajlovi
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
93.87.86.*

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem13.12.2013. u 18:17 - pre 76 meseci
Citat:
mikikg: Probacu ako stignem danas ja ove opcije sa -O3 ili -Os


Probao sam, ovako na prvu ne vidim razliku, mozda je za "dlaku" brzi sa -Os. Dakle merio sam vreme sa osc trajanja te moje PID rutine.

Uzgred ovo su "optimisation level" swicevi, dostupni iskljucivo u XC16 PRO verziji.

Znaci nema od toga nista da kompajler umesto mene sam iskoristi DSP funkcije, mora da se drugacije napise code ako se hoce ubrzanje.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 08:39 - pre 76 meseci
Par pitanja/saveta u vezi STM32F3Dicsovery, hocu jedan mali enkoderic/pot (ima i taster na osovini) da ukacim sad tu na moj projekat za zadavanje nekih vrednosti koje se ocitavaju na LCD2x16, kako najlakse to osposobiti, da idem na dedicated HW kvadraturni enkoder ulaz (kad ga vec ima) ili na obicne ulaze? Imam I/O na pretek, mogu bilo sta da iskoriastim samo sta je lakse u SW da se odradi?

Drugo pitanje, jel ima neki standardan programski patern za baratanje menijem? Znam da je to smor malo pisati, gomila uslova nego da proverim pre nego sto to pocnem da pisem. Ili mozda neki primer (makar u vidu algoritma) kako se to inace radi?
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15206
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2314 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 08:47 - pre 76 meseci
ja obicno enkoder vezem na interapt pin (A na interapt B na bilo koji
input pin) i onda na interapt proveravam dal je + i - i menjam neku
globalnu varijablu (tj 2, jedna je uvek =1 u interaptu a druga se menja
u + ili u - u zavisnosti od toga na koju stranu enkoder ide).. a onda u
glavnoj petlji programa u meni ulazim samo ako je ta ==1, tu je i vratim
na nulu, a meni je klasicna state masina .. ja volim da implementiram
state masinu sam mada imas brdo vec gotovih resenja za to na netu (no
izadje jednostavnije da implementiras sam)
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 09:43 - pre 76 meseci
Ok hvala, nadam se da cu se snaci.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

macolakg
Dragoljub Aleksijevic
Kragujevac

Član broj: 301424
Poruke: 3053
*.adsl.eunet.rs.



+1023 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 10:14 - pre 76 meseci
Miki,
Evo ti jedno parče koda za inkrementalne enkodere, na 8 bit PIC, gde viši nibl B porta ima sposobnost provociranja hardverskog interrupta na bilo kakvu promenu.

Nije direktno ono što ti treba, ali će kao moguć pricip poslužiti.

Bio mi je potreban niži nibl od B porta, pa zato pravim gomilu šiftovanja.

U suštini to može i kraće kada se tretiraju samo potrebni pinovi.

Pozz




Code:


////////////////////////////////////////////
#define enc_blink        RC3
#define a_in               RB4
#define b_in               RB5 
#define z_in               RB6  
//ulevo se povecava broj encoder_count, za obrnuto zameniti a i b
///////////////////////////////////////////////////////////////////

unsigned char old_count=0,temp_count=0;
signed long encoder_count; //izlazna varijabla

const signed char table[] = {0,-1,+1,0,+1,0,0,-1,-1,0,0,+1,0,+1,-1,0};


void interrupt int_hand (void)
{    
    if(RBIF&&RBIE){
    temp_count=PORTB;
    if(temp_count & 0b01000000)encoder_count=0;
    temp_count <<= 2;
    temp_count >>= 6;
    old_count = (old_count | temp_count);
    encoder_count += table[old_count];
    old_count <<= 6;
    old_count >>= 4; 
        enc_blink^=1;  //RC4, test pin

        // citanje sve 4 tranzicije enkodera, max. 111KHz, tj. 9uS (za sve 4 tranzicije), kada je encoder_count int
        // kada je encoder_count long, onda max. 95KHz, tj. 10,5uS.
        // za letvu od 5um, max. brzina je 475mm/sek.
  }
  RBIF = 0;
}
//moguca je dodatna optimizacija, koriscen je ceo BPORT, nizi nibl se koristi za druge stvari.
//to je razlog ovih silnih siftovanja.



P.S.

Moguće je znatno ubrzanje i ovog kako stoji, korišćenjem asm SWAP za niži i viši nibl, no mrzelo me da pišem, a ovo mi je zadovoljavalo potrebe.

P.P.S.

Zaboravih,

U pitanju je bio PIC18F4620 na 40MHz (HSPLL)

[Ovu poruku je menjao macolakg dana 14.12.2013. u 11:30 GMT+1]

[Ovu poruku je menjao macolakg dana 14.12.2013. u 11:38 GMT+1]
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 10:36 - pre 76 meseci
Hvala puno, bice od koristi sigurno, shvatam sta treba uraditi za enkoder.

Nego nesto me vise brine ovaj menu i state machine, koliko vidim morace tu malo OOP da se koristi …
Ne znam odakle da pocnem, moram valjda prvo da definisem zahtev kakav menu hocu i sta on da radi pa da onda definicija tranzicija i … Nisam to radio do sad na takav nacin. Da crtam UML, ne znam gde da teram :)

Mislim nebitno sto mi mozda za ovaj projekat treba 2-3 parametra da menjam, interesuje me da to skontam za buduce projekte, mozda sa vecim display i slicno.


[Ovu poruku je menjao mikikg dana 14.12.2013. u 11:48 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

tomam
Tomislav Milicevic
Beograd

Član broj: 104895
Poruke: 151
95.180.40.*



+4 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 10:55 - pre 76 meseci
Pogledaj ovaj link :) mozda pomogne
http://winavr.scienceprog.com/...ects/avr-lcd-menu-routine.html
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 857
*.dynamic.isp.telekom.rs.



+78 Profil

icon Re: STM32F3 + KEIL problem14.12.2013. u 10:57 - pre 76 meseci
Miki,

Kad već imaš dosta slobodnih pinova što ne uzmeš neki touchscreen TFT? Pogubićeš malo više vremena ali ćeš za ubuduće imati gotovo rešenje. Da ne pričamo o prednosti nad 2x16 LCD. Moram da potražim malo po netu ali koliko znam ima i gotovih aplikacija koje te rešavaju muka oko menija.
gorankg
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem15.12.2013. u 05:33 - pre 76 meseci
Poterao sam enkoder, kao sto sam i ocekivao to je proslo bez problema.

Nisam koristio interapt na ulaz vec preko tajmera a razlog je zbog toga sto ovi enkoderi u obliku potenciometra jako prljav signal daju (zvoni, krcka), nije to "pravi" opticki enkoder gde je signal cist kao staklo.
Znaci oko 2kHz interapt rutina (super se ponasa tako kao filter smetnji) sa par IF uslova i to je to.

Evo i parce code kako izgleda ta logika:

Code:

        encoder_current = GPIO_ReadInputDataBit(ENC_a);
        if (encoder_last == 0 && encoder_current == 1) {
            if (GPIO_ReadInputDataBit(ENC_b) == 0) {
                moj_brojac ++;
            } else {
                if (moj_brojac > 0) {//necu u minus
                    moj_brojac --;
                }
            }
        }
        encoder_last = encoder_current;


Za MENU logiku sam odlucio da ovom prilikom resim to nesto prosto jer mi treba svega par parametra da podesavam, nekom drugom prilikom kad budem imao vise vremena cu se pozabaviti detaljnije sa tim.
Imam trenutno bitnije stvari da proguram a to je DAC i na kraju PWM modul.

@goran_68 Slobodne I/O imam ali touchscreen TFT trenutno nemam :) Docice i to na red verovatno pocetkom sledece godine ;)
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem15.12.2013. u 07:32 - pre 76 meseci
Imam jos jedan mali problemcic, resio sam ga drugacije ali me cisto interesuje sto to nece da radi kako ocekujem.

Dakle radi se o pointerima i prenosenju adrese umesto vrednosti (sad sam resio sa vrednostima), evo kako to izgleda:

Code:
//proto
void povecaj (int *ptr);

//func
void povecaj (int *ptr) {
    *ptr ++;
}

//main
int brojac = 10;

povecaj (&brojac);
//ovde ocekujem da brojac ima vrednost 11 ali se to ne desi, ostane 10, zasto?


Ako to ima veze mozda, ova funkcija povecaj() mi je u interapt rutini.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15206
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2314 Profil

icon Re: STM32F3 + KEIL problem15.12.2013. u 12:42 - pre 76 meseci
ovako:

Code:

void povecaj (int *ptr) {
    (*ptr) ++;
}


i naravno optimizacija, volatile etc etc gde treba
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem15.12.2013. u 18:54 - pre 76 meseci
Da, tako radi. Nikad se nebi setio da mora zagrada!
Hvala.

Sta kao bez zagrade prvo inkrementuje pointer pa onda uzme adresu i u prazno onda sve ode? :)
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15206
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2314 Profil

icon Re: STM32F3 + KEIL problem15.12.2013. u 23:52 - pre 76 meseci
da, ++ ima veci prioritet
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem16.12.2013. u 00:10 - pre 76 meseci
Dobro napredujem lagano sa ovim F3, razlikuje se od F4 u dosta nekih sitnih detalja.
Sad sam progurao i ADC. Menu, Encoder i LCD sam skockao.

Nego kad si vec tu, nesto ne mogu da se pohvatam za prioritetima interapta.
Dakle imam dva tajmera, TIM2 i TIM3 (TIM1 i TIM8 ce mi trebati kasnije za PWM), hocu recimo da mi TIM3 i njegova rutina bude najveceg prioriteta, dakle dok se njegova rutina ne zavrsi nista me drugo ne sme prekidati posto ce to bitni moja glavna PID petlja pa su mi precizna vremena tu vrlo bitna (eventualno od PWM, ali nisam dotle dosao jos, ne znam trenutno).

Ja sam tu nesto butao sa NVIC_IRQChannelPreemptionPriority i NVIC_IRQChannelSubPriority ali nesto me ne konta ili ja njega :)
Stavio sam za sad u rutini od TIM3 toggle jednog pina ali vidim jitter, dakle nije bas on "glavni" baja, ulece mu prekid od TIM2.

Ja se izvinjavam, malo sam dosadan sa silnim pitanjima ali ovo mi je prva malo ozbiljnija app na ovoj platformi.

Sad nesto razmisljam, mozda sam trebao u startu da izaberem neki RTOS ali tek sa tim nisam radio :(
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15206
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2314 Profil

icon Re: STM32F3 + KEIL problem16.12.2013. u 00:29 - pre 76 meseci
meni se sad malo mesa implementacija izmedju 16bit pic i msp430, mips i
cortex jezgra no ako se dobro secam nvic na cortex-u radi tako sto dok
traje higher prio interrupt ovi nizeg prioriteta se stekuju i onda se
izvrse kada se zavrsi ovaj high prio interrapt + za razliku od klasicnog
vic-a cortex ima tu neku trailing foru da kada zavrsi high prio
interrupt ako postoji na cekanju lower prio interrapt on umesto da vrati
sve sa steka, pa turi opet sve sto treba na stek on samo prodje u drugi
interrapt i tu cuva nekih 12tak taktova u odnosu na "normalan" vic ..
takodje ima foru da kada pocne manje bitan interapt ako se desi high
prio interapt tokom pripreme za ulazak (setap steka, dizanje na stek
cega treba etc) cortex ce odma da uleti u high prio umesto da zavrsi sta
je poceo i udje u low prio pa njega prekine (kao sto rade normalni
vicevi) ... e sad detalja se bas ne secam a i moguce da je ovo cela
prica vezana za npr mips a da sam je ja dodelio cortex-u :D mada mislim
da je to cortex prica ...

inace sa samom implementacijom i koristenjem toga nemam veliko iskustvo
posto ja za ove moje potrebe imam onaj glavi core clock koji uzima svega
nekoliko taktova i jedan timer i to je to ... ostalo su externi hw
interapti koji su sami po sebi spori
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 4898
*.dynamic.isp.telekom.rs.

Sajt: yu3ma.net


+467 Profil

icon Re: STM32F3 + KEIL problem16.12.2013. u 23:02 - pre 76 meseci
Joj sto je "dosadan" ovaj F3 sa svojim cakama, mislio sam da sam ADC prosao ali cim sam hteo jos kanala da dodam nastao je problem.
Vrtim se oko toda i ne mogu da ga pohvatam sto nece da radi.
Ne mogu da nadjem ni jedan normalan primer oko toga, sve sto sam nalazio je bilo za jedan kanal.
Ja sam na F4 to resio ali mi taj code isto nece radi na F3, zaglavi se na cekanju nekog flaga i nece dalje da ide.

Da li imate neki primer mozda za to?

Da li mozda ima varijanta da radi u kontinualnom modu stalno a ja recimo samo da iscitam prvi, drugi, x-ti registar od kanala?

UPDATE:
Uspeo sam da proguram preko DMA! Sad to radi kako treba, u "pozadini" nezavisno, puni jedan buffer i posle samo iscitavam ;)
Ovaj primer me je povadio, mada sam morao da prepravljam malo za ADC1/2 dok je u primeru koriscen ADC3/4 zbog OP-AMP-ova:
http://www.pezzino.ch/stm32-monitoring-multiple-analog-channels/

[Ovu poruku je menjao mikikg dana 17.12.2013. u 02:07 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: STM32F3 + KEIL problem

Strane: < .. 1 2 3 4

[ Pregleda: 9084 | Odgovora: 67 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.