Exemple #1
0
void InitFlash(void)
{
	// Inicializa o módulo de memória FLASH
	if (FLASHPointer == NULL)
	{
		FLASHPointer = FLASH1_Init(NULL);
	}
}
Exemple #2
0
/*
** ===================================================================
**     Method      :  PE_low_level_init (component MC9S08SH8_20)
**
**     Description :
**         Initializes beans and provides common register initialization. 
**         The method is called automatically as a part of the 
**         application initialization code.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
void PE_low_level_init(void)
{
  /* Common initialization of the CPU registers */
  /* PTCD: PTCD0=0 */
  clrReg8Bits(PTCD, 0x01);              
  /* PTCPE: PTCPE0=0 */
  clrReg8Bits(PTCPE, 0x01);             
  /* PTCDD: PTCDD0=1 */
  setReg8Bits(PTCDD, 0x01);             
  /* PTAPE: PTAPE5=0,PTAPE0=0 */
  clrReg8Bits(PTAPE, 0x21);             
  /* PTADD: PTADD5=0,PTADD0=0 */
  clrReg8Bits(PTADD, 0x21);             
  /* PTBPE: PTBPE6=0 */
  clrReg8Bits(PTBPE, 0x40);             
  /* PTBDD: PTBDD6=0 */
  clrReg8Bits(PTBDD, 0x40);             
  /* PTASE: PTASE4=0,PTASE3=0,PTASE2=0,PTASE1=0,PTASE0=0 */
  clrReg8Bits(PTASE, 0x1F);             
  /* PTBSE: PTBSE7=0,PTBSE6=0,PTBSE5=0,PTBSE4=0,PTBSE3=0,PTBSE2=0,PTBSE1=0,PTBSE0=0 */
  setReg8(PTBSE, 0x00);                 
  /* PTCSE: PTCSE3=0,PTCSE2=0,PTCSE1=0,PTCSE0=0 */
  clrReg8Bits(PTCSE, 0x0F);             
  /* PTADS: ??=0,??=0,??=0,PTADS4=1,PTADS3=1,PTADS2=1,PTADS1=1,PTADS0=1 */
  setReg8(PTADS, 0x1F);                 
  /* PTBDS: PTBDS7=1,PTBDS6=1,PTBDS5=1,PTBDS4=1,PTBDS3=1,PTBDS2=1,PTBDS1=1,PTBDS0=1 */
  setReg8(PTBDS, 0xFF);                 
  /* PTCDS: ??=0,??=0,??=0,??=0,PTCDS3=1,PTCDS2=1,PTCDS1=1,PTCDS0=1 */
  setReg8(PTCDS, 0x0F);                 
  /* ### Shared modules init code ... */
  /* ### BitIO "Bit1" init code ... */
  /* ### Timer capture encapsulation "Cap1" init code ... */
  Cap1_Init();
  /* ### TimerInt "TI1" init code ... */
  TI1_Init();
  /* ### External interrupt "EInt1" init code ... */
  /* IRQSC: ??=0,IRQPDD=1,IRQEDG=0,IRQPE=1,IRQF=0,IRQACK=0,IRQIE=0,IRQMOD=1 */
  IRQSC = 0x51;
  IRQSC_IRQACK = 0x01;
  IRQSC_IRQIE = 0x01;
  /* ### BitIO "Bit2" init code ... */
  /* ### Init_FLASH "FLASH1" init code ... */
  FLASH1_Init();
  __EI();                              /* Enable interrupts */
}
/*
** ===================================================================
**     Method      :  PE_low_level_init (bean MC9S12GC16_80)
**
**     Description :
**         Initializes beans and provides common register initialization. 
**         The method is called automatically as a part of the 
**         application initialization code.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
void PE_low_level_init(void)
{
  /* Int. priority initialization */
  /* HPRIO: PSEL7=1,PSEL6=1,PSEL5=0,PSEL4=1,PSEL3=0,PSEL2=0,PSEL1=1,??=0 */
  setReg8(HPRIO, 210);                 /* Set the highest interrupt priority to the ivVatd0 interrupt */ 
  /* Common initialization of the CPU registers */
  /* PORTA: BIT7=0,BIT6=0,BIT5=0,BIT4=0,BIT3=0,BIT2=0,BIT1=0,BIT0=0 */
  setReg8(PORTA, 0);                    
  /* PUCR: PUPEE=0,PUPAE=0 */
  clrReg8Bits(PUCR, 18);                
  /* DDRA: BIT7=1,BIT6=1,BIT5=1,BIT4=1,BIT3=1,BIT2=1,BIT1=1,BIT0=1 */
  setReg8(DDRA, 255);                   
  /* PORTB: BIT7=0,BIT6=0,BIT5=0,BIT4=0,BIT3=0,BIT2=0,BIT1=0,BIT0=0 */
  setReg8(PORTB, 0);                    
  /* DDRB: BIT7=1,BIT6=1,BIT5=1,BIT4=1,BIT3=1,BIT2=1,BIT1=1,BIT0=1 */
  setReg8(DDRB, 255);    
  /* PTM: PTM5=0,PTM4=0,PTM3=0,PTM2=0,PTM1=0,PTM0=0 */
  clrReg8Bits(PTM, 63);                 
  /* WOMM: WOMM5=0,WOMM4=0,WOMM3=0,WOMM2=0,WOMM1=0,WOMM0=0 */
  clrReg8Bits(WOMM, 63);                
  /* DDRM: DDRM5=1,DDRM4=1,DDRM3=1,DDRM2=1,DDRM1=1,DDRM0=1 */
  setReg8Bits(DDRM, 63);                
  /* PIEJ: PIEJ7=0,PIEJ6=0 */
  clrReg8Bits(PIEJ, 192);               
  /* PTJ: PTJ7=0,PTJ6=0 */
  clrReg8Bits(PTJ, 192);                
  /* PERJ: PERJ7=0,PERJ6=0 */
  clrReg8Bits(PERJ, 192);               
  /* DDRJ: DDRJ7=1,DDRJ6=1 */
  setReg8Bits(DDRJ, 192);               
  /* PTS: PTS2=0,PTS1=1 */
  clrSetReg8Bits(PTS, 4, 2);            
  /* WOMS: WOMS2=0 */
  clrReg8Bits(WOMS, 4);                 
  /* DDRS: DDRS2=1,DDRS1=1,DDRS0=0 */
  clrSetReg8Bits(DDRS, 1, 6);           
  /* TSCR1: TEN=0,TSWAI=1,TSFRZ=1,TFFCA=0 */
  clrSetReg8Bits(TSCR1, 144, 96);       
  /* PTT: PTT6=0,PTT5=0,PTT4=0,PTT3=0,PTT2=0,PTT1=0 */
  clrReg8Bits(PTT, 126);                
  /* PERT: PERT3=0,PERT2=0 */
  clrReg8Bits(PERT, 12);                
  /* DDRT: DDRT6=1,DDRT5=1,DDRT4=1,DDRT3=1,DDRT2=1,DDRT1=1 */
  //#ifndef RPM
   //setReg8Bits(DDRT, 126);
   //#else
  // setReg8Bits(DDRT, 114);
   //#endif                
  /* PEAR: RDWE=0 */
  clrReg8Bits(PEAR, 4);                 
  /* DDRE: BIT2=0 */
  clrReg8Bits(DDRE, 4);
   
  setReg8Bits(CRGINT, 18);       ///DDD clrReg8Bits(CRGINT, 18) BLOQUEO LA INT DEL RTI. PERMITO LA DEL LOCK Y LA DEL SELF CLOCK;         
  /* PACTL: CLK1=0,CLK0=0 */
  clrReg8Bits(PACTL, 12);               
  /* OC7M: OC7M0=0 */
  clrReg8Bits(OC7M, 1);                 
  /* TCTL2: OM1=0,OL1=0,OM0=0,OL0=0 */
  clrReg8Bits(TCTL2, 15);               
  /* TIE: C6I=0,C5I=0,C4I=0,C1I=0,C0I=1 */
  clrSetReg8Bits(TIE, 114, 1);          
  /* TIOS: IOS6=1,IOS5=1,IOS4=1,IOS1=1,IOS0=1 */
  setReg8Bits(TIOS, 255);               
  /* TTOV: TOV6=0,TOV5=0,TOV4=0,TOV1=0,TOV0=0 */
  clrReg8Bits(TTOV, 0);               
  /* TSCR2: TCRE=0,PR2=1,PR1=0,PR0=1 */
  clrSetReg8Bits(TSCR2, 10, 5);         
  /* TFLG1: C7F=1,C6F=1,C5F=1,C4F=1,C3F=1,C2F=1,C1F=1,C0F=1 */
  setReg8(TFLG1, 255);                  
  /* MODRR: ??=0,??=0,MODRR4=0,MODRR1=0 */
  clrReg8Bits(MODRR, 114);              
  /* TCTL1: OM6=0,OL6=0,OM5=0,OL5=0,OM4=0,OL4=0 */
  clrReg8Bits(TCTL1, 63);               
  /* PIEP: PIEP7=0,PIEP5=0,PIEP3=0,PIEP1=0 */
  clrReg8Bits(PIEP, 170);               
  /* PTP: PTP7=0,PTP5=0,PTP3=0,PTP1=0 */
  clrReg8Bits(PTP, 170);                
  /* PERP: PERP7=0,PERP5=0,PERP3=0,PERP1=0 */
  clrReg8Bits(PERP, 170);               
  /* DDRP: DDRP7=1,DDRP5=1,DDRP3=1,DDRP1=1 */
  setReg8Bits(DDRP, 170);               
  /* ATDDIEN: IEN3=1,IEN2=1 */
  setReg8Bits(ATDDIEN, 12);               
  /* VREGCTRL: LVIE=0 */
  clrReg8Bits(VREGCTRL, 2);             
  /* RDRIV: RDPE=0,RDPB=0,RDPA=0 */
  clrReg8Bits(RDRIV, 19);               
  /* RDRAD: RDRAD7=0,RDRAD6=0,RDRAD5=0,RDRAD4=0,RDRAD3=0,RDRAD2=0,RDRAD1=0,RDRAD0=0 */
  setReg8(RDRAD, 0);                    
  /* RDRJ: RDRJ7=0,RDRJ6=0 */
  clrReg8Bits(RDRJ, 192);               
  /* RDRM: RDRM5=0,RDRM4=0,RDRM3=0,RDRM2=0,RDRM1=0,RDRM0=0 */
  clrReg8Bits(RDRM, 63);                
  /* RDRP: RDRP7=0,RDRP6=0,RDRP5=0,RDRP4=0,RDRP3=0,RDRP2=0,RDRP1=0,RDRP0=0 */
  setReg8(RDRP, 0);                     
  /* RDRS: RDRS3=0,RDRS2=0,RDRS1=0,RDRS0=0 */
  clrReg8Bits(RDRS, 15);                
  /* RDRT: RDRT7=0,RDRT6=0,RDRT5=0,RDRT4=0,RDRT3=0,RDRT2=0,RDRT1=0,RDRT0=0 */
  setReg8(RDRT, 0);                     
  /* INTCR: IRQEN=0 */
  clrReg8Bits(INTCR, 64);               
  /* ### MC9S12GC16_80 "Cpu" init code ... */
  /* ### ByteIO "Display1" init code ... */
  /* ### BitsIO "bits5ULN" init code ... */
  /* ### BitsIO "bits2ULN" init code ... */
  /* ### BitIO "trx" init code ... */
  /* ### BitsIO "PTSL" init code ... */
  /* ### BitIO "PWSN" init code ... */
  /* ### InputPin "PUL" init code ... */
  /* ###  WatchDog "WDog1" init code ... */
  /* ### Asynchro serial "AS1" init code ... */
  
  
  
  AS1_Init();
  /* ### Init_ADC "ADC1" init code ... */
  #ifndef RPM
  
  ADC1_Init();
  #endif
  /* ### Init_FLASH "FLASH1" init code ... */

 
  
  FLASH1_Init();
  /* ### TimerInt "TI1" init code ... */
  
  TI1_Init();
  /* ### TimerOut "PWM" init code ... */


  PWM_Init();
  /* ### TimerOut "PWM4" init code ... */
  

  PWM4_Init();
  /* ### TimerOut "PWM5" init code ... */
 

  PWM5_Init();
  /* ### TimerOut "PWM6" init code ... */
 
  PWM6_Init();
  
  EI2C1_Init();
 
 
  
  /* TSCR1: TEN=1 */
  setReg8Bits(TSCR1, 128);              
  __EI();                              /* Enable interrupts */
}