lptport1.c File Reference

#include "includes.h"

Go to the source code of this file.

Defines

#define Lpt1IdleState   0
#define Lpt1LedOnState   1
#define Lpt1LedOffState   2

Functions

void Lpt1Init (void)
void Lpt1Handler (void)
void Lpt1Svc (void)
U8 Lpt1DataPortRead (void)
void Lpt1DataPortWrite (U8 Data)
void Lpt1DataPortSetOutput (void)
void Lpt1DataPortSetInput (void)
U8 Lpt1StatusPortRead (void)
void Lpt1ControlPortWrite (U8 Data)

Variables

LPT1_CONTROL Lpt1Ctrl


Define Documentation

#define Lpt1IdleState   0

Definition at line 13 of file lptport1.c.

#define Lpt1LedOffState   2

Definition at line 15 of file lptport1.c.

#define Lpt1LedOnState   1

Definition at line 14 of file lptport1.c.


Function Documentation

void Lpt1ControlPortWrite ( U8  Data  ) 

Definition at line 85 of file lptport1.c.

00085                                   {
00086     Lpt1Ctrl.Control=Data;
00087     OutByte(LPT1_CONTROL_PORT,Lpt1Ctrl.Control);
00088 }

U8 Lpt1DataPortRead ( void   ) 

Definition at line 55 of file lptport1.c.

00055                          {
00056     if((Lpt1Ctrl.Control&LPT_CONTORL_DIR_READ)==0){
00057         Lpt1DataPortSetInput();
00058     }
00059     Lpt1Ctrl.Data=InByte(LPT1_DATA_PORT);
00060     return Lpt1Ctrl.Data;
00061 }

void Lpt1DataPortSetInput ( void   ) 

Definition at line 76 of file lptport1.c.

00076                                {
00077     Lpt1Ctrl.Control=Lpt1Ctrl.Control|LPT_CONTORL_DIR_READ; //dir bit=0 for output
00078     OutByte(LPT1_CONTROL_PORT,Lpt1Ctrl.Control);
00079 }

void Lpt1DataPortSetOutput ( void   ) 

Definition at line 71 of file lptport1.c.

00071                                 {
00072     Lpt1Ctrl.Control=Lpt1Ctrl.Control&(~LPT_CONTORL_DIR_READ); //dir bit=0 for output
00073     OutByte(LPT1_CONTROL_PORT,Lpt1Ctrl.Control);
00074 }

void Lpt1DataPortWrite ( U8  Data  ) 

Definition at line 63 of file lptport1.c.

00063                                {
00064     if((Lpt1Ctrl.Control&LPT_CONTORL_DIR_READ)==LPT_CONTORL_DIR_READ){
00065         Lpt1DataPortSetOutput();
00066     }
00067     Lpt1Ctrl.Data=Data;
00068     return OutByte(LPT1_DATA_PORT,Data);
00069 }

void Lpt1Handler ( void   ) 

Definition at line 33 of file lptport1.c.

00033                       {
00034     // no operation function
00035 }

void Lpt1Init ( void   ) 

Definition at line 19 of file lptport1.c.

00019                    {
00020     PicIrqDisable(IRQ7_LPT1);                   //no use interrupt at begining 
00021     Lpt1Ctrl.State=Lpt1LedOnState;
00022     Lpt1Ctrl.Data=0;
00023     Lpt1Ctrl.Status=0;
00024     Lpt1Ctrl.Control=LPT_CONTORL_DIR_READ|0xc0; //set data port read,
00025                                                 //disable interrupt,
00026                                                 //nSelectIn=1,nInit=1,nStrob=0,nAutoLF=0, 
00027     Lpt1Ctrl.Timer=0;
00028     Lpt1ControlPortWrite(Lpt1Ctrl.Control); //set data port read,disable interrupt,nStrob=0,nAutoLF=0 
00029     //InterruptIrqHandlerSet(IRQ7_LPT1,Lpt1Handler); //no use interrupt at begining 
00030     //PicIrqEnable(IRQ7_LPT1);                           //no use interrupt at begining 
00031 }

U8 Lpt1StatusPortRead ( void   ) 

Definition at line 81 of file lptport1.c.

00081                            {
00082     Lpt1Ctrl.Status=InByte(LPT1_STATUS_PORT);
00083 }

void Lpt1Svc ( void   ) 

Definition at line 37 of file lptport1.c.

00037                   {
00038     switch(Lpt1Ctrl.State){
00039         case Lpt1IdleState: 
00040             break;
00041         case Lpt1LedOnState: 
00042             Lpt1DataPortWrite(0x00);
00043             Lpt1Ctrl.State=Lpt1LedOffState;
00044             break;
00045         case Lpt1LedOffState: 
00046             Lpt1DataPortWrite(0xff);
00047             Lpt1Ctrl.State=Lpt1LedOnState;
00048             break;
00049         default:
00050             break;
00051     }
00052 }


Variable Documentation

Definition at line 17 of file lptport1.c.


Generated on Sat Apr 10 23:28:07 2010 for 80X86 MULTI-TASKING OPERATION SYSTEM by  doxygen 1.5.9