Project

General

Profile

Revision cc9ca04e

IDcc9ca04e4d58158606627a644331754a3fd64e91

Added by Thomas Mullins over 11 years ago

Fixed pins to work with 128rfa1 instead of 2560

View differences:

scout_avr/src/bom.cpp
53 53

  
54 54
void bom_isr() {
55 55
  if (out_high) {
56
    BOM_EMIT ^= out_pin_mask;
56
    PORT_BOM_EMIT ^= out_pin_mask;
57 57
  }
58 58
}
59 59

  
......
66 66

  
67 67
static void start_38kHz_signal() {
68 68
  TCNT3 = 0;
69
  BOM_EMIT |= out_pin_mask;
69
  PORT_BOM_EMIT |= out_pin_mask;
70 70
  out_high = 1;
71 71
}
72 72

  
73 73
static void stop_38kHz_signal() {
74
  BOM_EMIT &= ~ out_pin_mask;
74
  PORT_BOM_EMIT &= ~ out_pin_mask;
75 75
  out_high = 0;
76 76
}
77 77

  
......
126 126
  PCICR |= _BV(PCIE0);
127 127
  
128 128
  // BOM_EMIT as output
129
  DDRH |= _BV(DDH4) | _BV(DDH5) | _BV(DDH6) | _BV(DDH7);
129
  DDRF |= _BV(DDF4) | _BV(DDF5) | _BV(DDF6) | _BV(DDF7);
130 130

  
131 131
  init_38kHz_signal();
132 132
  init_data_signal();
......
134 134

  
135 135
void bom_send(char dir) {
136 136
  switch (dir) {
137
    case BOM_FRONT: out_pin_mask = _BV(BOM_EMIT0); break;
138
    case BOM_LEFT:  out_pin_mask = _BV(BOM_EMIT1); break;
139
    case BOM_RIGHT: out_pin_mask = _BV(BOM_EMIT2); break;
140
    case BOM_BACK:  out_pin_mask = _BV(BOM_EMIT3); break;
137
    case BOM_FRONT: out_pin_mask = _BV(P_BOM_EMIT0); break;
138
    case BOM_LEFT:  out_pin_mask = _BV(P_BOM_EMIT1); break;
139
    case BOM_RIGHT: out_pin_mask = _BV(P_BOM_EMIT2); break;
140
    case BOM_BACK:  out_pin_mask = _BV(P_BOM_EMIT3); break;
141 141
  }
142 142
  out_counter = 16;
143 143
  out_msg = sharp_msg_make(0x2A, bom_msg_make(robot_id, dir));
......
188 188
}
189 189

  
190 190
ISR(PCINT0_vect) {
191
  uint8_t bom_sig = BOM_SIG;
191
  uint8_t bom_sig = PIN_BOM_SIG;
192 192
  uint8_t changed = bom_sig ^ prev_bom_sig;
193
  if (changed & _BV(BOM_SIG0)) recv_edge(bom_sig & _BV(BOM_SIG0), &bom_rx[0]);
194
  if (changed & _BV(BOM_SIG1)) recv_edge(bom_sig & _BV(BOM_SIG1), &bom_rx[1]);
195
  if (changed & _BV(BOM_SIG2)) recv_edge(bom_sig & _BV(BOM_SIG2), &bom_rx[2]);
196
  if (changed & _BV(BOM_SIG3)) recv_edge(bom_sig & _BV(BOM_SIG3), &bom_rx[3]);
193
  if (changed & _BV(P_BOM_SIG0)) recv_edge(bom_sig & _BV(P_BOM_SIG0), &bom_rx[0]);
194
  if (changed & _BV(P_BOM_SIG1)) recv_edge(bom_sig & _BV(P_BOM_SIG1), &bom_rx[1]);
195
  if (changed & _BV(P_BOM_SIG2)) recv_edge(bom_sig & _BV(P_BOM_SIG2), &bom_rx[2]);
196
  if (changed & _BV(P_BOM_SIG3)) recv_edge(bom_sig & _BV(P_BOM_SIG3), &bom_rx[3]);
197 197
  prev_bom_sig = bom_sig;
198 198
}
199 199

  

Also available in: Unified diff