// timer8b.h #include #include #include #include "outcont.h" // defines output control structure #include "extern.h" // DA structures, prototypes & variables unsigned eoc; extern unsigned base; int DA_Enabled = 0; int CurrentChannel = 0; struct anachan { int data; int status; } AnnalogChannel[8]; enum anastat { INACTIVE, START_CONVERSION, DATA_READY }; unsigned InitializeAnalog(void); int TurnOnAnalog(int channel); int TurnOffAnalog(int channel); int GetChannelValue(int channel); // pwm prototypes & variables long get_timer_counter(void); int set_up_new_timer(double freq); void wait(double seconds); void restore_old_timer(void); double get_frequency(void); double get_mintime(void); double get_maxtime(void); int pwm(int arraynumber, int type, int ForwardPortNumber, int ReversePortNumber, int DirectionPortNumber, int BrakePortNumber, double ForwardOnTime, double ForwardOffTime, double ReverseOnTime, double ReverseOffTime, int StartDirection); // set up a uni-directioanl pwm channel int UniPwm(int arraynumber, int ForwardPortNumber, double ForwardOnTime, double ForwardOffTime); // set up a uni-directioanl pwm channel using duty cycle int UniPwmDuty(int arraynumber, int ForwardPortNumber, double ForwardDutycycle); // set up a dual pwm channel using duty cycle int DualPwmDuty(int arraynumber, int StartDirection, int ForwardPortNumber, double ForwardDutycycle, int ReversePortNumber, double ReverseDutycycle); // set up a channel with a pwm line and a direction line -- no brake // using duty cycle int PwmAndDirectionDuty(int arraynumber, int StartDirection, int PwmPortNumber, int DirectionPortNumber, double ForwardDutycycle, double ReverseDutycycle); // set up an L289 int L289PwmDuty(int arraynumber, int StartDirection, int PwmPortNumber, double ForwardDutycycle, double ReverseDutycycle, int Direction1Port, int Direction2Port); // go forward int Forward(int arraynumber); // go in reverse int Reverse(int arraynumber); // stop int Stop(int arraynumber); // brake a dual pwm channel // taking both lines high brakes int BrakeDualPwm(int arraynumber); // brale am L298 int BrakeL298(int arraynumber); Blink(int arraynumber, int BlinkPort, double BlinkOnTime, double BlinkOffTime); void interrupt new_timer(); void interrupt (far *old_timer)(); void showall(void); void show(int location); unsigned long timer_counter; double frequency; int OutputControlActive = 0; double MinTime; double MaxTime; double minpulse; // minimum pwm pulse double oldfreq; // end timer8b.h