Guest User

Untitled

a guest
Aug 14th, 2013
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. Merge branch 'v2.5_branch'
  2.  
  3. Conflicts:
  4. src/hal/drivers/mesa-hostmot2/hostmot2.h
  5. src/hal/drivers/mesa-hostmot2/resolver.c
  6.  
  7. ------------------- src/hal/drivers/mesa-hostmot2/hostmot2.h -------------------
  8. index 63093c9,f3eebb4..8311149
  9. @@@ -340,33 -332,31 +340,33 @@@ typedef struct
  10. hal_s32_t *count;
  11. hal_float_t *angle;
  12. hal_float_t *position;
  13. hal_float_t *velocity;
  14. hal_bit_t *reset;
  15. hal_bit_t *index_enable;
  16. hal_bit_t *error;
  17. } pin;
  18.  
  19. struct {
  20. hal_float_t scale;
  21. hal_float_t vel_scale;
  22. + hal_u32_t index_div;
  23. } param;
  24.  
  25. } hal;
  26.  
  27. - long long accum;
  28. - long long offset;
  29. - u32 old_reg;
  30. - u32 index_cnts;
  31. + __s64 accum;
  32. + __s64 offset;
  33. + __u32 old_reg;
  34. ++ __u32 index_cnts;
  35.  
  36. } hm2_resolver_instance_t;
  37.  
  38. typedef struct {
  39. struct {
  40. hal_float_t excitation_khz;
  41. } param;
  42. } hm2_resolver_global_t;
  43.  
  44. typedef struct {
  45. int num_instances;
  46. int num_resolvers;
  47.  
  48. ------------------- src/hal/drivers/mesa-hostmot2/resolver.c -------------------
  49. index b52d4d4,fe460e6..f678c62
  50. @@@ -311,32 -301,29 +311,32 @@@ void hm2_resolver_process_tram_read(hos
  51. // sanity check
  52. if (res->hal.param.scale == 0.0) {
  53. HM2_ERR("resolver.%02d.scale == 0.0, bogus, setting to 1.0\n", i);
  54. res->hal.param.scale = 1.0;
  55. }
  56. if (res->hal.param.vel_scale == 0.0) {
  57. HM2_ERR("resolver.%02d.velocity-scale == 0.0, bogus, setting to 1.0\n", i);
  58. res->hal.param.vel_scale = 1.0;
  59. }
  60.  
  61. // PROCESS THE REGISTERS, SET THE PINS
  62.  
  63. - res->accum += (signed long)(hm2->resolver.position_reg[i] - res->old_reg );
  64. + res->accum += (__s32)(hm2->resolver.position_reg[i] - res->old_reg );
  65. - if (*res->hal.pin.index_enable){
  66. - if ((res->old_reg ^ hm2->resolver.position_reg[i]) & 0x80000000){
  67. - res->offset = res->accum & 0xFFFFFFFF00000000LL;
  68. - *res->hal.pin.index_enable = 0;
  69. + if ((res->old_reg ^ hm2->resolver.position_reg[i]) & 0x80000000){
  70. + if (++(res->index_cnts) >= res->hal.param.index_div){
  71. + res->index_cnts = 0;
  72. + if (*res->hal.pin.index_enable){
  73. + res->offset = res->accum & 0xFFFFFFFF00000000LL;
  74. + *res->hal.pin.index_enable = 0;
  75. + }
  76. }
  77. }
  78.  
  79. if (*res->hal.pin.reset){
  80. res->offset = res->accum;
  81. }
  82.  
  83. res->old_reg = hm2->resolver.position_reg[i];
  84.  
  85. *res->hal.pin.angle = hm2->resolver.position_reg[i] / 4294967296.0;
  86. *res->hal.pin.rawcounts = (res->accum >> 8);
  87. *res->hal.pin.count = (res->accum - res->offset) >> 8;
Advertisement
Add Comment
Please, Sign In to add comment