コード例 #1
0
ファイル: Arglib.cpp プロジェクト: stg/arduboy-for-pc
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
}
コード例 #2
0
/*
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();
}
コード例 #3
0
ファイル: AsyncDriver.cpp プロジェクト: ArturFormella/barobot
void AsyncDriver::enableOutputs(){
	if(is_disabled){
		is_disabled = false;
		if (disablePin != 0xff){
			fastWrite(disablePin, LOW );
		}
		setOutput2(last_output, false);
	}
}
コード例 #4
0
ファイル: AsyncDriver.cpp プロジェクト: ArturFormella/barobot
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);
    
};
コード例 #8
0
ファイル: Arglib.cpp プロジェクト: stg/arduboy-for-pc
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();
}
コード例 #9
0
ファイル: tmp.c プロジェクト: raj454raj/algorithmic-questions
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;
}
コード例 #10
0
ファイル: AsyncDriver.cpp プロジェクト: ArturFormella/barobot
void AsyncDriver::setOutput2( boolean step, boolean dir ){
	fastWrite(_pin[0], dir);
	fastWrite(_pin[1], step);
	last_output = step;
}
コード例 #11
0
/*
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();
}