Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

ARM - From PIC

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[71] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 7 mar 2012, 23:14

Allora, dire che il codice è in sostanza questo :

Codice: Seleziona tutto

#include "stm32f10x.h"
#include "STM32vldiscovery.h"

/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;

/* Private function prototypes -----------------------------------------------*/
void Delay(__IO uint32_t nCount);

int main(void)
{
  /*!< At this stage the microcontroller clock setting is already configured,
       this is done through SystemInit() function which is called from startup
       file (startup_stm32f10x_xx.s) before to branch to application main.
       To reconfigure the default setting of SystemInit() function, refer to
       system_stm32f10x.c file
     */     
       
  /* Configure all unused GPIO port pins in Analog Input mode (floating input
     trigger OFF), this will reduce the power consumption and increase the device
     immunity against EMI/EMC *************************************************/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, DISABLE); 

  /* Initialize Leds LD3 and LD4 mounted on STM32VLDISCOVERY board */
  STM32vldiscovery_LEDInit(LED3);
  STM32vldiscovery_LEDInit(LED4);

  while (1)
  {
    /* Turn on LD2 and LD3 */
    STM32vldiscovery_LEDOn(LED3);
    STM32vldiscovery_LEDOn(LED4);   
   /* Insert delay */
    Delay(0xAFFFF);
    /* Turn off LD3 and LD4 */
    STM32vldiscovery_LEDOff(LED3);
    STM32vldiscovery_LEDOff(LED4);
    /* Insert delay */
    Delay(0xAFFFF);

  }
}

void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}



Ci sarebbe da capire un po' cosa fa la parte :
Codice: Seleziona tutto
/* Configure all unused GPIO port pins in Analog Input mode (floating input
     trigger OFF), this will reduce the power consumption and increase the device
     immunity against EMI/EMC *************************************************/
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, DISABLE);


Che sebbene è spiegata nei commenti, credo sia utile capire cosa fanno effettivamente quelle funzioni.
Le definizioni di tutte quelle funzioni/strutture le si trovano negli altri file inclusi, però non sono è così elementare comprenderle a fondo.
In fin dei conti non so nemmeno se sia così utile, voglio dire, alla fine ad esempio non so una printf cosa faccia esattamente al suo interno, però la utilizzo lo stesso anche senza saperlo.

Il dubbio maggiore , oltre alle inizializzazioni che sono comunque credo quasi sempre uguali, è che non capisco dove sia la parte di codice riferita alla pressione dei pulsanti e al pulsante reset..
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

1
voti

[72] Re: ARM - From PIC

Messaggioda Foto UtenteTardoFreak » 7 mar 2012, 23:19

Sono le inizializzazioni degli I/O. Come ti ho detto in passato prima bisogna dare il clock alla periferica che gestisce gli I/O, poi bisogna configurarli. Queste funzioni fanno parte della libreria standard fornita dalla ST.
L' RCC è il reset and clock control (o qualcosa del genere).
Ricorda sempre che i micro basati su ARM hanno il core che è quello che è (in questo caso il bellissimo Cortex-M3) ed ogni costruttore ci aggiunge le periferiche che preferisce. Quindi deve essere visto un po' come un sistema multichip integrato in un unico silicio. E come in un sistema fatto da diversi circuiti integrati collegati fra di loro le inizializzazioni sono più complesse, così succede con gli ARM.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[73] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 7 mar 2012, 23:23

Si dai, credo che per la parte di inizializzazione ci sono, approfondendo l'architettura dovrei capirci anche qualcosa in più.

Come ti dicevo , non riesco bene a capire DOVE sia la parte riferita alla pressione dei pulsanti, me l'aspettavo nel main, eppure no, nel main c'è un ciclo continuo di accensione e spegnimento dei led.
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

0
voti

[74] Re: ARM - From PIC

Messaggioda Foto UtenteTardoFreak » 7 mar 2012, 23:26

Ehm .. questo programma serve a far commutare le uscite.
Dove li vedi i pulsanti? :-M
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[75] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 7 mar 2012, 23:32

No , sulla schedina ho due pulsanti , uno chiamato USER e uno chiamato RESET.

Il programma caricato sulla schedina fa :

lampeggio led BLU - led VERDE spento
SE premo il pulsante USER :
led BLU spento - led VERDE lampeggia
SE premo ancora il pulsante USER :
led BLU lampeggia - led VERDE lampeggia
ripremendo il pulsante il ciclo ricomincia


premendo il pulsante RESET il programma riparte dall'inizio,in qualsiasi punto io mi trovi.
Non capisco però dove sia il codice relativo a questo :D

Spero di essermi spiegato abbastanza bene ;)
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

0
voti

[76] Re: ARM - From PIC

Messaggioda Foto UtenteTardoFreak » 7 mar 2012, 23:47

Domani darò uno sguardo a tutto il progetto.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[77] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 7 mar 2012, 23:55

Non c'è prorpio, o almeno, io non lo trovo.
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

0
voti

[78] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 8 mar 2012, 23:37

Trovato nulla ?
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

0
voti

[79] Re: ARM - From PIC

Messaggioda Foto UtenteTardoFreak » 8 mar 2012, 23:42

Non ho avuto modo di vedere.
Oggi è stata una giornata un po' particolare, avevo altri problemi. :(
Domani dovrei trovare un po' di tempo ... forse.

sorry
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[80] Re: ARM - From PIC

Messaggioda Foto Utentepierinter » 8 mar 2012, 23:49

Tranquillo! tanto mi è arrivata anche una schedina che aspettavo e la devo assolutamente provare.
Per quanto riguarda l'Arm, mi dovrei buttare sulla UART!
Avatar utente
Foto Utentepierinter
620 2 7 10
Expert EY
Expert EY
 
Messaggi: 1395
Iscritto il: 23 mar 2009, 0:05

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti