Rev 368 | Blame | Last modification | View Log | Download
#include "motor.h"//#use i2c(Slave,Fast,sda=PIN_B1,scl=PIN_B4,force_hw,address=0xA0) // Motor 1//#use i2c(Slave,Fast,sda=PIN_B1,scl=PIN_B4,force_hw,address=0xA2) // Motor 2#define H1 PIN_A1#define L1 PIN_A2#define H2 PIN_A3#define L2 PIN_A4signed int8 command; // rozsah +-127#INT_SSPvoid ssp_interupt (){BYTE incoming, state;output_a(0); // vypnuti vsech budicustate = i2c_isr_state();if(state < 0x80) //Master is sending data{command = i2c_read();}if(state == 0x80) //Master is requesting data{i2c_write(command);}}void main(){int8 speed;setup_adc_ports(NO_ANALOGS|VSS_VDD);setup_adc(ADC_OFF);setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_144MS);setup_timer_1(T1_DISABLED);setup_timer_2(T2_DISABLED,0,1);setup_comparator(NC_NC_NC_NC);setup_vref(FALSE);setup_oscillator(OSC_8MHZ|OSC_INTRC);enable_interrupts(GLOBAL);enable_interrupts(INT_SSP);command=0; // zastaveni po resetuwhile(true){if ((0==command) || (command>127) || (command<-127)) // prikaz na odpojeni mustky nebo chybna hodnota{output_low(H1); // stopoutput_low(H2);output_low(L1);output_low(L2);continue;};speed=command+127; // posunuti 0 pro zaporna cislaoutput_a(0b10010); // vpreddelay_us(speed);output_a(0); // vypnuti vsech budicudelay_us(1);restart_wdt();output_a(0b01100); // vzaddelay_us(254-speed);output_a(0); // vypnuti vsech budicudelay_us(1);}}