Ardudro (4 / 7 steg)

Steg 4: Min kod. Ännu mer yay.




Detta är den aktuella versionen av koden (rev2), och det endast stöd för x och y reset knappar och lite annat (fortfarande arbetar på fräsning funktioner).
Bara kopiera och klistra in i arduino och det bör fungera om du redan har den kodare och tv biblioteken.

Ardudro program, revidering 2

#define ENCODER_OPTIMIZE_INTERRUPTS
har inte provat med raden ovan ännu, kan göra det snabbare, men kan inte.
#include < Encoder.h >
#include < TVout.h >
int xminus = 0;
int yminus = 0;
Encoder myEnc (2, 7); //flip "myEnc" och "Karaktarsegenskaper" om X och Y-axlarna bakåt
Encoder karaktarsegenskaper (3, 6);
flyta anaval = 0;
flyta value01 = 0;
flyta val = 1000;
flytvärdet;
float value10;
float value100;
int ut;
int r = 0;
flyta pos = 0;
int rd = 4;
långa np = 0;
flyta incr = 0.000390625; 1/2560, detta nummer kan ändras för dina inställningar. Se till att använda en decimal, inte en bråkdel.
int onx = 12.
int negx = 0;
långa npy = 0;
int ty = 0;
TVout TV;
CONST int buttonx = 11. //flip dessa två (x och y eller nummer) om knapparna är avstängda.
CONST int buttony = 10;
unsigned char x, y;
char jag = 48.
int ic = 6;
void setup() {
pinMode(buttonx,INPUT);
pinMode(buttony,INPUT);
digitalWrite(buttonx,HIGH);
digitalWrite(buttony,HIGH);
x = 0;
y = 0;
TV.begin(_NTSC,110,30);
}

void loop() {
IF(digitalRead(buttonx) == 0) {//this behöver inte läsas direkt, så vi använder slingan
i stället för ett avbrott. Plus använda kodare andra avbrotten.
myEnc.write(0);
}
IF(digitalRead(buttony) == 0) {//same här.
Ecy.write(0);
}

NP = myEnc.read();
NP = np *-1; avkommentera om X-axeln är vänt
Delay(1);
Ty = 0;
TV.print_char(onx,ty,'X');
om (val! = np) {
om (np < 0) {
Val = -1 * np;
negx = 1;
} annat {
Val = np;
negx = 0;
}
}
Disp();
NP = Ecy.read();
NP = np *-1; //uncomment om Y-axeln är vänt
Delay(1);
Ty = 10;
TV.print_char(onx,ty,'Y');
om (val! = np) {
om (np < 0) {
Val = -1 * np;
negx = 1;
} annat {
Val = np;
negx = 0;
}
}
Disp();
}

void stringer() {
value01 = val;
värde = val / 10;
value10 = val / 100;
value100 = val / 1000;
värde = int(value);
value10 = int(value10);
value100 = int(value100);
value01 = int(value01);
value01 = value01 - (värde * 10);
värde = värde - (value10 * 10);
value10 = value10 - (value100 * 10);
}

void disp() {
Val = val * incr;
Val = int(val * 1000);
Stringer();
om (negx == 1) {
TV.print_char(onx-ic,ty,'-');
} annat {
TV.print_char (onx-ic, ty,' ");
}
TV.print_char(onx+ic,ty,char(value100)+48);
TV.print_char(onx+(ic*2),ty,char(value10)+48);
TV.print_char(onx+(ic*3),ty,char(value)+48);
TV.print_char(onx+(ic*4),ty,char(value01)+48);

}

Se Steg
Relaterade Ämnen