Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed APA102b Ping SLCD
Revision 6:27f43abd16e2, committed 2015-04-14
- Comitter:
- rosienej
- Date:
- Tue Apr 14 00:15:32 2015 +0000
- Parent:
- 5:0b6842abebac
- Commit message:
- added a few more modes;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Apr 07 14:31:11 2015 +0000
+++ b/main.cpp Tue Apr 14 00:15:32 2015 +0000
@@ -53,7 +53,14 @@
rgb[1]=g;
rgb[2]=b;
}
+/// pseudo random number
+unsigned int m_z=12434,m_w=33254;
+unsigned int rnd() {
+ m_z = 36969 * (m_z & 65535) + (m_z >>16);
+ m_w = 18000 * (m_w & 65535) + (m_w >>16);
+ return ((m_z <<16) + m_w);
+}
int main()
{
@@ -70,7 +77,7 @@
int rgb[3];
unsigned char r,g,b;
const int N=66; // Number of APA-102 Elements
- //const int N=144;
+ // const int N=144;
int range;
unsigned int Pixel;
unsigned int Pixels[N];
@@ -123,11 +130,13 @@
int colors=0x000000;
int Mode=0;
- const int NModes = 4;
+ const int NModes = 8;
LEDs.SetBuffer(Pixels,1,N, N,0, false,false);
slcd.Home();
slcd.printf("%d",Mode);
+
+
while (true) {
ping.Send();
@@ -143,6 +152,10 @@
}
+ for(int i = 0;i<19;i++) RaySats[i] = 0.8;
+ for(int i = 0;i<19;i++) RayInts[i] = 0.8;
+
+
switch(Mode){
case 0: hue_adjust =0;
break; // just display the last "static" image
@@ -152,6 +165,15 @@
break;
case 3: hue_adjust++; // spin at a fixed rate
break;
+ case 4: for(int i = 0;i<19;i++) RaySats[i] = 1.0/(1.0*(rnd()%16+1));
+ break;
+ case 5: for(int i = 0;i<19;i++) RayInts[i] = 1.0/(1.0*(rnd()%16+1));
+ break;
+ case 6: for(int i = 0;i<19;i++) RayInts[i] = 1.0/(1.0*(rnd()%16+1));
+ for(int i = 0;i<19;i++) RaySats[i] = 1.0/(1.0*(rnd()%16+1));
+ break;
+ case 7: hue_adjust = rnd()%16;
+ break;
}
@@ -160,8 +182,7 @@
{
for(int j=0;j<RayLengths[i];j++)
{
- for(int k=0;k<j;k++)
- {
+
hue = RayHues[i]+ hue_adjust;
sat = RaySats[i];
ints = RayInts[i];
@@ -171,8 +192,8 @@
b = rgb[2];
Pixel=LEDs.IRGB(7,r,g,b);
- Pixels[Rays[i][k]-1]=Pixel; // arrays in C++ start at zero. Need to subtract 1.
- }
+ Pixels[Rays[i][j]-1]=Pixel; // arrays in C++ start at zero. Need to subtract 1.
+
}
}
/*