void init(void) { // configure pins DDRB |= (1 << DSKY_DISPLAY_PIN_CLR); // output DDRD |= (1 << DSKY_DISPLAY_PIN_PWRCLR); // output DDRD &= ~(1 << DSKY_DISPLAY_PIN_PWRCLR); // configure pins for SPI master SPI_init(); // initialize UART uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); // intialize KSP plugin kspio_init(); clearRegisters(); // resets the shift registers and the decade counter // initialize bargraph PWM pins as outputs DSKY_BARGRAPH_CTRL_PORT |= (1 << DSKY_BARGRAPH_PIN_B1); DSKY_BARGRAPH_CTRL_PORT |= (1 << DSKY_BARGRAPH_PIN_B2); DSKY_BARGRAPH_CTRL_PORT |= (1 << DSKY_BARGRAPH_PIN_B3); // configure PWMs for bargraph displays TCCR0A |= (1 << COM0A1); // set non-inverting mode for OC0A TCCR0A |= (1 << COM0B1); // set non-inverting mode for OC0B TCCR0A |= (1 << WGM01) | (1 << WGM00); // set fast PWM mode TCCR0B |= (1 << CS02) | (1 << CS00); // set prescaler to 1024 and start PWM TCCR2A |= (1 << COM2B1); // set non-inverting mode for OC2B //TCCR2A |= (1 << WGM21) | (1 << WGM20); // set fast PWM mode - done in millis.c //TCCR2B |= (1 << CS22) | (1 << CS21) | (1 << CS20); // set prescaler to 1024 and start PWM - done in millis.c // multiplexing the displays TCCR1A |= (1 << WGM10); // timer/counter control register 1 A: fast PWM TCCR1B |= (1<<WGM12) | (1<<CS11) | (1<<CS10); // timer/counter control register 1 B: clock select 64th frequency TIMSK1 |= (1<<TOIE1); // timer/counter interrupt mask register: timer/counter 1 overflow interrupt enable }
Machine::Machine(Memory memory) : memory(std::move(memory)) , skipNext(false) { this->memory.resize(MemorySizeInWords); clearRegisters(); }
void setup() { // Shift Register pinMode(PIN_SR_SER, OUTPUT); pinMode(PIN_SR_RCLK, OUTPUT); pinMode(PIN_SR_SRCLK, OUTPUT); clearRegisters(); // Set all registers to LOW writeRegisters(); // Save changes }
void display_bit_pattern(int cycle) { clearRegisters(); int index; for (index = 0 ; index < SR_MAX ; index++) { setRegisterPin(index, (cycle & (1 << index)) > 0 ? HIGH : LOW); } writeRegisters(); }
void initialize(){ initializeFuncPtrArray(); clearMemory(); clearRegisters(); clearFregister(); clearDregister(); clearEregister(); clearMregister(); clearWregister(); }
void initialize() { clearMemory(); clearRegisters(); clearFregister(); clearDregister(); clearEregister(); clearMregister(); clearWregister(); initInstructions(); }
int main(void) { cli(); init(); clearRegisters(); sei(); while (1) { // grab most recent flight data from KSP switch (kspio_input()) { case 0: // handshake clearRegisters(); break; case 1: // vessel data - update stuff // fix negative periapsis if (kspio_vData.PE < 0) { kspio_vData.PE = 0; } // decide whether radar altimetry is available or not if (kspio_vData.RAlt < 20000 && kspio_vData.Alt - kspio_vData.RAlt > 1) { isRAlt = TRUE; } else { isRAlt = FALSE; } // update bargraphs OCR0A = (147 * (kspio_vData.LiquidFuelS / kspio_vData.LiquidFuelTotS)); OCR0B = (147 * (kspio_vData.MonoProp / kspio_vData.MonoPropTot)); OCR2B = (210 * (kspio_vData.ECharge / kspio_vData.EChargeTot)); // calculate infolight values setInfolights(); // calculate 7-segment digits setDisplayData(); break; } } }
/* initialize * Initializes a bunch of stuff. * Params: none * Returns: void * Modifies: W_valE, W_dstE */ void initialize() { clockCount = 0; stop = FALSE; initFwdStruct(); initializeFuncPtrArray(); initializeCC(); clearMemory(); clearRegisters(); clearFregister(); clearDregister(); clearEregister(); clearMregister(); clearWregister(); }
int GoldCodeGenerator::generateChipSequence(unsigned int lengthOfSequence, int tapOne, int tapTwo, int rotation) { clearRegisters(); std::cout << "{ "; for (size_t i = 0; i < lengthOfSequence; i++) { bool upper, lower; upper = shiftUpperRegister(upperRegister, LENGTH); lower = shiftLowerRegister(lowerRegister, LENGTH, tapOne, tapTwo); //cout << upper << " XOR " << lower << " "<< (upper ^ lower) << endl; std::cout << (upper ^ lower); std::cout << ','; } std::cout << "}, "; std::cout << std::endl; return 42; }
Machine::Machine() : skipNext(false) { clearRegisters(); }