Wednesday, October 15, 2008

Envy

Jack, as an English major you definitely get an education that provides you with eloquence and cohesion with your words. I will say that I wish I had the creativity and vocabulary to write as you do. Unfortunately, engineering majors don't really provide you with classes such as yours. However, deep into last night I realized that I learn a different type of poetry. Here is a sample of engineering poetry.


#include
#define FOREVER 1

code char *welcome = "Hello Mike and Greg! Today is 10/14/08 and this is Lab 7.\n";
char *pmsg = 0;
char nullTerm = 0;
char upper;

int counter = 0;
int rate = 3;
int reload1 = 0x87;
int reload2 = 0x6F;
sbit portbit = P2^7;
sbit portbit0 = P1^0;
sbit portbit1 = P1^1;


void init(void);


main()
{
init(); /*initialize UART for serial comm mode 1 9600 baud*/
while(FOREVER); /*run forever*/
}

void init(void)
{
EA=0; /*disable interrupts*/
TMOD = 0x21; /*Mode 2 Timer 1, Mode 1 Timer 0*/
TH0 = 0x87;
TL0 = 0x6F;
TR0 = 1;
TH1 = 0xfa; /*9600 baud reload value*/
TL1 = 0xfa;
TR1 = 1; /*turn on timer 1*/
SCON = 0x50; /*mode 1 serial port TI=1*/
portbit0 = 0;
ET1 = 0;
PS = 1;
PT0 = 0;
ES = 1;
EA = 1;
pmsg = welcome;
SBUF = *pmsg;

}

void SPISR(void) interrupt 4
{
if(TI==1)
{
TI=0; /*clear interrupt flag */
if (*pmsg != 0)
{
pmsg++;
SBUF = *pmsg;
}
else if (*pmsg == 0)
ET0 = 1;
}
else
{
RI=0; /*clear receive flag */
ACC=SBUF; /*copy recieve character */

if(ACC >= 0x61 && ACC <= 0x7A)
upper = ACC - 0x20;
else
upper = ACC;

if(upper == 0x53) /* S */
portbit0 = 0; /* Enable */

else if(upper == 0x4C) /* L */
{
portbit0 = 1;
portbit1 = 1; /* Direction - CW */
}
else if(upper == 0x52) /* R */
{
portbit0 = 1;
portbit1 = 0; /* Direction - CCW */
}

if(upper == 0x30)
{
rate = 3;
reload1 = 0x87;
reload2 = 0x6F;
}
else if(upper == 0x31)
{
rate = 30;
reload1 = 0x87;
reload2 = 0x6F;
}
else if(upper == 0x32)
{
rate = 15;
reload1 = 0x87;
reload2 = 0x6F;
}
else if(upper == 0x33)
{
rate = 5;
reload1 = 0x0E;
reload2 = 0xDF;
}
else if(upper == 0x34)
{
rate = 5;
reload1 = 0x4B;
reload2 = 0x27;
}
else if(upper == 0x35)
{
rate = 6;
reload1 = 0x87;
reload2 = 0x6F;
}
else if(upper == 0x36)
{
rate = 5;
reload1 = 0x87;
reload2 = 0x6F;
}
else if(upper == 0x37)
{
rate = 5;
reload1 = 0x98;
reload2 = 0xA8;
}
else if(upper == 0x38)
{
rate = 5;
reload1 = 0xA5;
reload2 = 0x93;
}
else if(upper == 0x39)
{
rate = 5;
reload1 = 0xAF;
reload2 = 0x9F;
}


SBUF = upper; /* echo recieve character */
}
}


void TOISR(void) interrupt 1
{
counter = counter + 1;

if(counter==rate)
{
portbit = !portbit;
counter = 0;
}

TH0 = reload1;
TL0 = reload2;
}

No comments: