|
|
Code examples |
High Level Code generation in C, C++, Visual C++ |
|
Boards with MC9S12XEP100 Demo Board connected to PC Evaluation-Board with MC9S12XEP100 Custom Board with MC9S12XEP100 1 PORTB blink or shift 1.0 PORTB blinking 1.1 PORTB shift left 1.2 PORTB shift left and right 2 Analog conversion 2.0 Analog conversion -> PORTA 2.1 Analog conversion - view steps 2.2 Send ADC-result to RS232 feedback:orgler@tin.it |
a program to view the value of bytes over RS232 from HCS12 download scanbyte.zip
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
unsigned char cChan10;
unsigned char cStatus;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0xAA; // initialize PORTB
DDRA = 0xFF; // PORTA all outputs
DDRC = 0xFF; // only for EVBS12XEP100
DDRD = 0xFF;
PORTC = 0;
PORTD = 0;
// SCI init
SCI0BDH = 0;
SCI0BDL = 13; // 9600 Baud at 4Mhz E-clock
SCI0CR1 = 0; //Initialize for 8-bit Data Format
SCI0CR2 = 0x0C; //[TIE,TCIE,RIE,ILIE,TE,RE,RWU,SBK] no interrupt
// Configures the ATD peripheral
ATD0CTL1 = 0x10; // 0001 0000 8 Bit Data Resolution and discharge before convert
// 0000 1000 left justified data, 1 conversion sequence and non-FIFO mode
ATD0CTL3 = 0x08;
// fBUS=2MHz, fATDCLK = 1 MHz (PRESCALER=0) Select 24 Sample Time
ATD0CTL4 = 0xE0; // 1110 0000
ATD0CTL5 = 0x0A; // start a conversion on channel 10
for(;;) {
iCounter = 30000; // delay time
while(iCounter > 0) iCounter--;
PORTB ^= 0xFF; // PORTB blinking
cChan10 = ATD0DR0H;
PORTA = 0;
if(cChan10 >= 0x10) PORTA=0x01;
if(cChan10 >= 0x30) PORTA=0x03;
if(cChan10 >= 0x50) PORTA=0x07;
if(cChan10 >= 0x70) PORTA=0x0F;
if(cChan10 >= 0x90) PORTA=0x1F;
if(cChan10 >= 0xB0) PORTA=0x3F;
if(cChan10 >= 0xD0) PORTA=0x7F;
if(cChan10 >= 0xE0) PORTA=0xFF;
ATD0CTL5 = 0x0A; // start a new conversion
cStatus = SCI0SR1;
SCI0DRL = cChan10;
}// end loop
}
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
unsigned char cChan10;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0xAA; // initialize PORTB
DDRA = 0xFF; // PORTA all outputs
DDRC = 0xFF; // only for EVBS12XEP100
DDRD = 0xFF;
PORTC = 0;
PORTD = 0;
// Configures the ATD peripheral
ATD0CTL1 = 0x10; // 0001 0000 8 Bit Data Resolution and discharge before convert
// 0000 1000 left justified data, 1 conversion sequence and non-FIFO mode
ATD0CTL3 = 0x08;
// fBUS=2MHz, fATDCLK = 1 MHz (PRESCALER=0) Select 24 Sample Time
ATD0CTL4 = 0xE0; // 1110 0000
ATD0CTL5 = 0x0A; // start a conversion on channel 10
for(;;) {
iCounter = 30000; // delay time
while(iCounter > 0) iCounter--;
PORTB ^= 0xFF; // PORTB blinking
cChan10 = ATD0DR0H;
PORTA = 0;
if(cChan10 >= 0x10) PORTA=0x01;
if(cChan10 >= 0x30) PORTA=0x03;
if(cChan10 >= 0x50) PORTA=0x07;
if(cChan10 >= 0x70) PORTA=0x0F;
if(cChan10 >= 0x90) PORTA=0x1F;
if(cChan10 >= 0xB0) PORTA=0x3F;
if(cChan10 >= 0xD0) PORTA=0x7F;
if(cChan10 >= 0xE0) PORTA=0xFF;
ATD0CTL5 = 0x0A; // start a new conversion
}// end loop
}
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0xAA; // initialize PORTB
DDRA = 0xFF; // PORTA all outputs
DDRC = 0xFF; // only for EVBS12XEP100
DDRD = 0xFF;
PORTC = 0;
PORTD = 0;
// Configures the ATD peripheral
ATD0CTL1 = 0x10; // 0001 0000 8 Bit Data Resolution and discharge before convert
// 0000 1000 left justified data, 1 conversion sequence and non-FIFO mode
ATD0CTL3 = 0x08;
// fBUS=2MHz, fATDCLK = 1 MHz (PRESCALER=0) Select 24 Sample Time
ATD0CTL4 = 0xE0; // 1110 0000
ATD0CTL5 = 0x0A; // start a conversion on channel 10
for(;;) {
iCounter = 30000; // delay time
while(iCounter > 0) iCounter--;
PORTB ^= 0xFF; // PORTB blinking
PORTA = ATD0DR0H;
ATD0CTL5 = 0x0A; // start a conversion
}// end loop
}
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
int direction;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0x01; // initialize PORTB
direction = 1;
for(;;) {
iCounter = 60000; // delay time
while(iCounter > 0) iCounter--;
if(direction == 0)
{ PORTB = PORTB << 1;
if(PORTB == 0 ) {direction = 1; PORTB= 0x80; }
}
else
{ PORTB = PORTB >> 1;
if(PORTB == 0 ) {direction = 0; PORTB= 0x01; }
}
}// end loop
}
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0x01; // initialize PORTB
for(;;) {
iCounter = 60000; // delay time
while(iCounter > 0) iCounter--;
PORTB = PORTB << 1; // shift left
if(PORTB == 0) PORTB = 0x01;
}// end loop
}
#include <hidef.h> /* common defines and macros */
#include <MC9S12XEP100.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xep100"
unsigned int iCounter;
void main(void)
{
DDRB = 0xFF; // PORTB all outputs
PORTB = 0x01; // initialize PORTB
for(;;) {
iCounter = 60000; // delay time
while(iCounter > 0) iCounter--;
PORTB ^= 0xFF; // invert all bits
}// end loop
}
|