MUHKO Kildekode Dato: 03-07-2004 #include <90s8535.h> #include <delay.h> int i=0,j=0,k=0,n=0; long l=0,m=0; void sluk_drift(void) { PORTC=0b00000000; } void frem(void) { PORTD=0b10000000; PORTC=0b00000001; } void tilbage(void) { PORTD=0b00000000; PORTC=0b00000001; } void left_frem(void) { PORTD=0b10000000; PORTC=0b00000011; } void right_frem(void) { PORTD=0b10000000; PORTC=0b00000111; } void start(void) { delay_ms(200); for(i=0;i!=3;i++) { for(j=0;j!=50;j++){ PORTD=0b00000000; delay_ms(1); PORTD=0b01000000; delay_ms(1); } PORTD=0b00000000; delay_ms(900); } PORTD=0b01000000; delay_ms(1000); PORTD=0b00000000; } void left_tilbage(void) { PORTD=0b00000000; PORTC=0b00000011; l=0; while ((l != 150000) && (k != 1)) { if ((PINA.6) || (PINA.7)) k = 1; l++; } if (k) { right_frem(); delay_ms(1500); } k=0; l=0; } void right_tilbage(void) { PORTD=0b00000000; PORTC=0b00000111; l=0; while ((l != 150000) && (k != 1)) { if ((PINA.6) || (PINA.7)) k = 1; l++; } if (k) { left_frem(); delay_ms(1500); } k=0; l=0; } void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00^255; DDRB=0xFF; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xFF; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; GIMSK=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; start(); frem(); while (1) { if (PINA.4) { sluk_drift(); while ((l != 100000) && (k == 0)) { if (PINA.5) k = 1; l++; } l=0; if (k) { if (k == 1) { tilbage(); delay_ms(1000); right_tilbage(); left_frem(); delay_ms(1000); frem(); } k = 0; } else { right_tilbage(); frem(); } } if (PINA.5) { sluk_drift(); while ((l != 100000) && (k == 0)) { if (PINA.4) k = 1; l++; } l=0; if (k) { if (k == 1) { tilbage(); delay_ms(1000); left_tilbage(); delay_ms(500); right_frem(); delay_ms(1000); frem(); } k = 0; } else { left_tilbage(); frem(); } } } }