int _main_dbgu(char key) { switch (key) { case 'o': if (duty_percent >= 1) duty_percent--; pwm_duty_set_percent(0, duty_percent); break; case 'p': if (duty_percent <= 99) duty_percent++; pwm_duty_set_percent(0, duty_percent); break; case 'k': pwm_stop(0); break; case 'l': pwm_start(0); break; case 'n': if (pwm_freq_idx > 0) { pwm_freq_idx--; pwm_stop(0); pwm_freq_set(0, pwm_freq[pwm_freq_idx]); pwm_start(0); pwm_duty_set_percent(0, 22); /* 22% of 9.43uS = 2.07uS */ } break; case 'm': if (pwm_freq_idx < ARRAY_SIZE(pwm_freq)-1) { pwm_freq_idx++; pwm_stop(0); pwm_freq_set(0, pwm_freq[pwm_freq_idx]); pwm_start(0); pwm_duty_set_percent(0, 22); /* 22% of 9.43uS = 2.07uS */ } break; case 'u': DEBUGPCRF("PA23 output high"); AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PIO_PA23); AT91F_PIO_SetOutput(AT91C_BASE_PIOA, AT91C_PIO_PA23); break; case 'y': DEBUGPCRF("PA23 output low"); AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PIO_PA23); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, AT91C_PIO_PA23); return 0; break; case 't': DEBUGPCRF("PA23 PeriphA (PWM)"); AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, 0, AT91C_PA23_PWM0); return 0; break; case 'f': DEBUGPCRF("%sabling Force100ASK", force_100ask ? "Dis":"En"); if (force_100ask) { force_100ask = 0; opcd_rc632_clear_bits(RAH, RC632_REG_TX_CONTROL, RC632_TXCTRL_FORCE_100_ASK); } else { force_100ask = 1; opcd_rc632_set_bits(RAH, RC632_REG_TX_CONTROL, RC632_TXCTRL_FORCE_100_ASK); } return 0; break; case 'v': if (mod_conductance > 0) { mod_conductance--; opcd_rc632_reg_write(RAH, RC632_REG_MOD_CONDUCTANCE, rsrel_table[mod_conductance]); } break; case 'b': if (mod_conductance < 0x3f) { mod_conductance++; opcd_rc632_reg_write(RAH, RC632_REG_MOD_CONDUCTANCE, rsrel_table[mod_conductance]); } break; case 'g': if (cw_conductance > 0) { cw_conductance--; opcd_rc632_reg_write(RAH, RC632_REG_CW_CONDUCTANCE, rsrel_table[cw_conductance]); } break; case 'h': if (cw_conductance < 0x3f) { cw_conductance++; opcd_rc632_reg_write(RAH, RC632_REG_CW_CONDUCTANCE, rsrel_table[cw_conductance]); } break; case '?': help(); return 0; break; case '<': tc_cdiv_phase_inc(); break; case '>': tc_cdiv_phase_dec(); break; case '{': if (cdiv_idx > 0) cdiv_idx--; tc_cdiv_set_divider(cdivs[cdiv_idx]); break; case '}': if (cdiv_idx < ARRAY_SIZE(cdivs)-1) cdiv_idx++; tc_cdiv_set_divider(cdivs[cdiv_idx]); break; #ifdef SSC case 's': ssc_rx_start(); break; case 'S': ssc_rx_stop(); break; #endif default: return -EINVAL; } DEBUGPCR("pwm_freq=%u, duty_percent=%u, mod_cond=%u, cw_cond=%u tc_cdiv=%u", pwm_freq[pwm_freq_idx], duty_percent, mod_conductance, cw_conductance, cdivs[cdiv_idx]); return 0; }
void vParTestInitialise( void ) { /* Start with all LED's off. */ AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED_MASK ); }
//------------------------------------------------------------------------------ // выбор памяти одного из мезонинов void Mez_Select(uint32_t MezMemoryLine) { AT91F_PIO_SetOutput(AT91C_BASE_PIOA, I2CCSE_1 | I2CCSE_2 | I2CCSE_3 | I2CCSE_4); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, MezMemoryLine); }