int main(void) { Stm32_Clock_Init(9); //system clock init always init first IO_Init(); delay_init(72); //delay init uart_init(72,115200); //uart init PWM4_Init(150,18000); // ultra ping sig // PWM2_2Init(100,1800); //count to 100, freq/1800 //IR aqusition pulse Timer3_Init(65535,256); //time refrence for echo/ultrasonic // setup 5 for motors? Timer2_Init(65535,10); // motor try1 motor_Init(); EXTIX_Init(); // Adc_Init(); // LED0_PWM_VAL2_2=0x44; // LED0_PWM_VAL2_1=0x34; LED0_PWM_VAL4=0x34; IRO=0;//turn on IR LEDs while(1) { printf("adcx1\tadcx2\tadcx3\tadcx4\tGyro\tBatt\techo\n"); printf("%u\t%u\t%u\t%u\t%u\t%u\t%u",adcx1,adcx2,adcx3,adcx4,Gyro_raw,Batt,echo); printf("\n"); // USART1->DR=echo/0xff; // while((USART1->SR&0X40)==0);//wait for transfer to compleate LED0=!LED0; delay_us(100000);//wait for the end of transmission } }
/* ** =================================================================== ** 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 */ }