Project

General

Profile

Revision 890

Changed some odometry stuff. Interrupt is called now.
Still some problem that is not updating x and y data.

View differences:

odometry.c
25 25
void odometry_init(void){
26 26
	encoder_init();
27 27
	odometry_reset();
28
	
29
	//CTC Mode. CLK / 1024
30
	TCCR2 = 0; // (Fully disconnected)
31
	TCCR2 = _BV(WGM21) | _BV(CS22) | _BV(CS20); //CLK/1024 , CTC Mode.
32

  
33
	TIMSK |= _BV(OCIE2);
34

  
35
	OCR2 = ODOMETRY_CLK;
28 36
}
29 37

  
30 38
void odometry_reset(void){
31 39
	diff_x = 0;
32 40
	diff_y = 0;
33 41
	angle = 0.0;
34
	
35
	//CTC Mode. CLK / 1024
36
	TCCR2 = 0; // (Fully disconnected)
37
	TCCR2 = _BV(WGM32) | _BV(CS32) | _BV(CS30); //CLK/1024 , CTC Mode.
38

  
39
	OCR2 = ODOMETRY_CLK;
40 42
}
41 43

  
42 44
void odometry_run(void){
43
	usb_puts("*");
44 45
	int v_l, v_r;
45 46
	float omega;
46 47
	int encoder_left, encoder_right;	

Also available in: Unified diff