[OT ITA] Lo spamm bar (Part 1)

Ahhhhhhhhh vedi che c'è il trucco :slight_smile:

lesto:
Ahhhhhhhhh vedi che c'è il trucco :slight_smile:

Se vuoi dell'ottimo codice pronto all'uso su STM32F3 Discovery, per la funzionalità IMU e GPS, lo trovi qui.

:fearful: :fearful: :fearful:
e io che mi chiedevo cosa cambiasse dagli esempi....

che linguaggio mi consiglaito per svilupare un app per windows ce 5.0?

Madwriter:
che linguaggio mi consiglaito per svilupare un app per windows ce 5.0?

Su quali terminali gira ancora?

Io lo avevo sul mio Compaq Ipaq e poi sul Motorola MPX 200 e 220, i miei primi smartphone (quando ancora era un prodotto di nicchia), in versione WM 2003.
C.E. 5.... credevo fosse defunto. :fearful:

In ambito aziendale si USA ancora. Io jo un palmare cin wm6.1
Il problema è che le app non sono compatibili con wm7

se una il .net suppongo che il C# sia il meglio per prestazioni/facilità, alla fine è una brutta copia del C++

lesto:
se una il .net suppongo che il C# sia il meglio per prestazioni/facilità, alla fine è una brutta copia del C++

ci ho gia programmato in c # facilotto :smiley: grazie, io lo ho su un mini pc che pagai sui 30 euro :slight_smile:

Madwriter:
che linguaggio mi consiglaito per svilupare un app per windows ce 5.0?

Lascia perdere il C#, sopratutto se l'hardware non è recente, usa il il C++ o il Visual Basic.
Per scrivere software per CE è indispensabile avere Visual Studio 2010 e l'SDK della corretta versione di CE, in alternativa è possibile scrivere in Pascal tramite Lazarus (totalmente free e open source).

perfetto il pascal, e li esegue tranquillamente?

Mad per sfizio mi dici marca e modello di questo pc da 30€ ? :slight_smile:
Ha proprio windows ce, non windows mobile ? Che differenza c'è fra winCE e i relativi wm2003/wm6.1 ?

Testato:
Mad per sfizio mi dici marca e modello di questo pc da 30€ ? :slight_smile:
Ha proprio windows ce, non windows mobile ? Che differenza c'è fra winCE e i relativi wm2003/wm6.1 ?

Sono versioni di CE tagliate su misura per PDA e Smartphone, in pratica sono release abbastanza "castrate" dove viene eliminato tutto quello che non serve su questi device e non è possibile aggiungere le parti mancanti.
Tieni presente che una installazione completa di CE richiede circa 80 megabyte sull'HD/Flash e almeno 16 mega di Ram per girare, però è scalabile, più o meno come si fa con Linux, fino a farlo stare in meno di 8 Mega e richiede solo 4 mega di Ram.
L'installazione di CE non avviene tramite un cd/dvd come si fa per altri sistemi operativi, deve essere compilato appositamente per l'hardware su cui deve girare in modo da ottenere una immagine di installazione che è specifica solo per una tipologia di hardware.

Thanks

il mio è identico a questo
http://www.ebay.it/itm/PC-NETBOOK-MINI-COMPUTER-PORTATILE-7-WINDOWS-CE-FUNZIONANTE-/151022950057?pt=Computer_portatili&hash=item2329ab56a9
io l'ho preso da un amico a 30 euro non so dirti lui da dove l'abbia preso, ma credo dalla cina :grin:

astrobeed:

lesto:
non è abbastanza! quello sul sito no ha delle descrizioni dettagliate dei registri e delle periferiche!

Ti sei scordato di scaricare il reference manual degli STM32F303xx, quasi 1000 pagine di approfondimento sulle singole periferiche, hai preso solo il data sheet generico :slight_smile:

http://www.st.com/web/en/resource/technical/document/reference_manual/DM00043574.pdf

appena arrivato il kindle (ver.4, se non erro), ho caricato subito il PDF e sfogliato qualche pagina sia all'inizio che alla fine, tabelle, immagini e testo sono fedeli al 100% con quelle del PC.
Ottimo, stanotte ho un bel mattone da leggere!! :grin: :grin:

puff, finalmente ho messo in piedi qualcosa...
il PWM per la stm32f4, però non so se funziona (finito or ora!), posto il codice così magari qualcuno a caso ( :roll_eyes:) mi da una correzione

volatile uint16_t position[] = { 1000, 1000, 1000, 1000 }; //from 1000 to 2000

void TIM3_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
  {
    TIM_ClearITPendingBit(TIM3, TIM_IT_Update);

    TIM3->CCR1 = position[0]; //PB0
    TIM3->CCR2 = position[1]; //PB1
    TIM3->CCR3 = position[2]; //PB4
    TIM3->CCR4 = position[3]; //PB5
  }
}

void startPWM(){

	/*
	 * BASED ON https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32VLDiscovery/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/STM32VLDiscovery/Servo%20control%20using%20STM32VLDiscovery&FolderCTID=0x01200200770978C69A1141439FE559EB459D758000491D59B8574F8049B5DFA3E8B21CBA51&TopicsView=https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32VLDiscovery/AllItems.aspx&currentviews=397
	 * THANKS to Clive1
	 * */

	// clock for GPIO and AFIO (Remap) - WHY THIS?
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
	// clock for TIM3 - HERE DO WE ENABLE TIM3 HW?
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

	// PIN SETUP
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_StructInit(&GPIO_InitStructure); //Reset init structure
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	//THIS?
	GPIO_PinRemapConfig( GPIO_FullRemap_TIM3, ENABLE );        // Map TIM3_CH3 to GPIOB.Pin0, GPIOB.Pin1, GPIOB.Pin4, GPIOB.Pin5

	//OR THIS?
	//GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_TIM3);
	//GPIO_PinAFConfig(GPIOB, GPIO_PinSource1, GPIO_AF_TIM3);
	//GPIO_PinAFConfig(GPIOB, GPIO_PinSource4, GPIO_AF_TIM3);
	//GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_TIM3);


	//TIMER INTERRUPT SETUP
	NVIC_InitTypeDef NVIC_InitStructure;

	// Configure the NVIC Preemption Priority Bits
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

	// Enable the TIM3 Interrupt
	NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);


	//TIMER SETUP
	TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
	TIM_TimeBaseStructInit( &TIM_TimeBaseStructure ); // Reset init structure

	// Simplify the math here so TIM_Pulse has 1 us units
	// PWMFreq = SystemCoreClock / ((TIM_Prescaler + 1) * (TIM_Period + 1));
	
	// NOT VERY SURE THE TIM3 RUN AT 24MHz....
	
	TIM_TimeBaseStructure.TIM_Prescaler = 24 - 1;  // 24 MHz / 24 = 1 MHz
	TIM_TimeBaseStructure.TIM_Period = 20000 - 1; // 1 MHz / 20000 = 50 Hz (20 ms)
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

	TIM_OCInitTypeDef TIM_OCInitStructure;
	TIM_OCStructInit( &TIM_OCInitStructure );

	// PWM1: Channel1, PB0
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
	TIM_OCInitStructure.TIM_Pulse = position[0];
	TIM_OC1Init(TIM3, &TIM_OCInitStructure);

	// PWM1: Channel2, PB1
	TIM_OCInitStructure.TIM_Pulse = position[1];
	TIM_OC2Init(TIM3, &TIM_OCInitStructure);

	// PWM1: Channel3, PB4
	TIM_OCInitStructure.TIM_Pulse = position[2];
	TIM_OC3Init(TIM3, &TIM_OCInitStructure);

	// PWM1: Channel4, PB5
	TIM_OCInitStructure.TIM_Pulse = position[3];
	TIM_OC4Init(TIM3, &TIM_OCInitStructure);


	// ENABLE TIMER
	TIM_Cmd( TIM3, ENABLE );

    TIM_CtrlPWMOutputs(TIM3, ENABLE);

    // TIM IT enable
    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
}

perche' non usi arduino ? :stuck_out_tongue_closed_eyes:

lesto:
il PWM per la stm32f4, però non so se funziona (finito or ora!),

Che vuol dire che non sai se funziona ?
Se c'è il PWM sul pin vuol dire che va altrimenti vuol dire che non va :slight_smile:

Testato:
perche' non usi arduino ? :stuck_out_tongue_closed_eyes:

Perché Lesto si è evoluto, come il bruco che diventa una farfalla anche lui ha finito la sua metamorfosi, dal lento e imbranato Arduino è passato al veloce e aggraziato STM32 :grin:

astrobeed:

lesto:
il PWM per la stm32f4, però non so se funziona (finito or ora!),

Che vuol dire che non sai se funziona ?
Se c'è il PWM sul pin vuol dire che va altrimenti vuol dire che non va :slight_smile:

Vuol dire che era tardi e non ho caricato il codice... Poi senza oscilloscopio devo usare Arduino con uno sketch apposta....

@ testato: al giusto lavoro il giusto chip xD

@entrambi: ma a che orq vi svegliate la mattina?? O.o