void Arduboy::bootLCD() { fastWrite(DC, 1); // Command mode const uint8_t *p_seq = lcd_init_seq; while(1) { uint8_t cmd = pgm_read_byte(p_seq); if(cmd == 0xFF) break; SPI.transfer(cmd); p_seq++; } fastWrite(DC, 1); // Data mode }
/* Write input register values to each channel using fastwrite method. Values : 0-4095 */ uint8_t mcp4728::analogWrite(uint16_t value1, uint16_t value2, uint16_t value3, uint16_t value4) { _values[0] = value1; _values[1] = value2; _values[2] = value3; _values[3] = value4; return fastWrite(); }
void AsyncDriver::enableOutputs(){ if(is_disabled){ is_disabled = false; if (disablePin != 0xff){ fastWrite(disablePin, LOW ); } setOutput2(last_output, false); } }
AsyncDriver::AsyncDriver(uint8_t pin1, uint8_t pin2, uint8_t newDisablePin ){ init(); _pin[0] = pin1; _pin[1] = pin2; disablePin = newDisablePin; pinMode(_pin[0], OUTPUT); pinMode(_pin[1], OUTPUT); enableOutputs(); if (disablePin != 0xff){ pinMode(disablePin, OUTPUT); fastWrite(disablePin, true ); } }
void Shift74HC595::begin(uint8_t clk_pin, uint8_t data_pin, uint8_t latch_pin, uint16_t num_pins) { this->clk_pin = clk_pin; this->data_pin = data_pin; this->latch_pin = latch_pin; this->num_pins = num_pins; pinMode(this->clk_pin, OUTPUT); pinMode(this->data_pin, OUTPUT); pinMode(this->latch_pin, OUTPUT); fastWrite(this->clk_pin, LOW); fastWrite(this->data_pin, LOW); fastWrite(this->latch_pin, LOW); };
void Shift74HC595::begin(uint8_t clk_pin, uint8_t data_pin, uint8_t latch_pin) { this->clk_pin = clk_pin; this->data_pin = data_pin; this->latch_pin = latch_pin; this->num_pins = 8; // Sets default number of pins as 8 (Amount of Output pins on a single 8 bit shift register) pinMode(this->clk_pin, OUTPUT); pinMode(this->data_pin, OUTPUT); pinMode(this->latch_pin, OUTPUT); fastWrite(this->clk_pin, LOW); fastWrite(this->data_pin, LOW); fastWrite(this->latch_pin, LOW); };
void Shift74HC595::shiftOut() { for (int i = 0; i < this->num_pins; i++) { fastWrite(this->clk_pin, HIGH); delayMicroseconds(PULSE_DELAY); fastWrite(this->clk_pin, LOW); fastWrite(this->data_pin, this->out_value[i]); delayMicroseconds(PULSE_DELAY); // Serial.print(this->out_value[i]); } fastWrite(this->clk_pin, LOW); fastWrite(this->data_pin, LOW); // Serial.println(""); fastWrite(this->latch_pin, HIGH); delayMicroseconds(PULSE_DELAY); fastWrite(this->clk_pin, HIGH); fastWrite(this->latch_pin, LOW); delayMicroseconds(PULSE_DELAY); fastWrite(this->clk_pin, LOW); delayMicroseconds(PULSE_DELAY); };
void Arduboy::start() { #if F_CPU == 8000000L slowCPU(); #endif SPI.begin(); fastMode(DC, OUTPUT); fastMode(CS, OUTPUT); fastMode(RST, OUTPUT); fastMode(PIN_LEFT_BUTTON, INPUT); fastWrite(PIN_LEFT_BUTTON, HIGH); fastMode(PIN_RIGHT_BUTTON, INPUT); fastWrite(PIN_RIGHT_BUTTON, HIGH); fastMode(PIN_UP_BUTTON, INPUT); fastWrite(PIN_UP_BUTTON, HIGH); fastMode(PIN_DOWN_BUTTON, INPUT); fastWrite(PIN_DOWN_BUTTON, HIGH); fastMode(PIN_A_BUTTON, INPUT); fastWrite(PIN_A_BUTTON, HIGH); fastMode(PIN_B_BUTTON, INPUT); fastWrite(PIN_B_BUTTON, HIGH); /* // TODO: Initialize elsewhere, only if asked for (requires lots of flash) startAudio(); */ //csport = portOutputRegister(digitalPinToPort(CS)); //cspinmask = digitalPinToBitMask(CS); //dcport = portOutputRegister(digitalPinToPort(DC)); //dcpinmask = digitalPinToBitMask(DC); /** * Setup reset pin direction (used by both SPI and I2C) */ // fastWrite(RST, HIGH); // delay(1); // VDD (3.3V) goes high at start, lets just chill for a ms // fastWrite(RST, LOW); // bring reset low delay(10); // wait 10ms fastWrite(RST, HIGH); // bring out of reset bootLCD(); #ifdef SAFE_MODE if(getInput() & (LEFT_BUTTON+UP_BUTTON)) safeMode(); #endif saveMuchPower(); }
int main() { seive(); /* for(i=0;i<1000;i++) printf("%d ",prime[i]); */ int m,n,t,i,sq,flag; //scanf("%d",&t); t=readnum(); while(t--) { //scanf("%d%d",&m,&n); m=readnum(); n=readnum(); if(m<=2) { printf("2\n"); m=3; } else if(m%2==0) m=m+1; for(i=m;i<=n;i+=2) { flag=0; sq=sqrt(i); for(j=1;prime[j]<=sq;j++) { if(i%prime[j]==0) { flag=1; break; } } if(flag==0) fastWrite(i); } } return 0; }
void AsyncDriver::setOutput2( boolean step, boolean dir ){ fastWrite(_pin[0], dir); fastWrite(_pin[1], step); last_output = step; }
/* Write input resister value to specified channel using fastwrite method. Channel : 0-3, Values : 0-4095 */ uint8_t mcp4728::analogWrite(uint8_t channel, uint16_t value) { _values[channel] = value; return fastWrite(); }