Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <MsTimer2.h>
- int sw[5] ={2,3,4,5,6};
- int pin_STEP[8] = {8, 9, 10, 11};
- int pin_STEP2[8] = {11, 10, 9, 8};
- int sp=1000, ip_sw=0 ;
- void setup() {
- int i;
- for(i=0; i<5; i++)
- pinMode(sw[i],INPUT_PULLUP);
- for(i=0;i<4;i++)
- pinMode(pin_STEP[i], OUTPUT);
- STEP_out(0xF);
- MsTimer2::set(7, STEP_ISR);
- MsTimer2::start();
- }
- void loop() {
- //루프따위는 장식입니다.
- }
- void STEP_out(uint8_t da){
- if (digitalRead(sw[0]) == HIGH) {if(sp>0)sp-=100;} //SPEED UP
- else if (digitalRead(sw[1]) == HIGH) {if(sp<10000)sp+=100;}//SPEED DOWN
- else if(digitalRead(sw[2]) == HIGH) ip_sw = 2; //LEFT
- else if(digitalRead(sw[3]) == HIGH) ip_sw = 1; //RIGHT
- if(ip_sw==1){for(int i=0; i<4; i++){digitalWrite(pin_STEP[i], (da>>i)&0x01);}}
- else if(ip_sw==2){for(int i=0; i<4; i++){digitalWrite(pin_STEP2[i], (da>>i)&0x01);}}
- }
- void STEP_ISR(void)
- {
- static int i=0;
- STEP_out (0x0F);
- STEP_out(~(0x01<<i));
- delay(sp);
- if(i == 3){i=0;}
- else{i++;}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement