]> oss.titaniummirror.com Git - rgblamp.git/blobdiff - main.c
Fix comments about port assignments
[rgblamp.git] / main.c
diff --git a/main.c b/main.c
index 3e8a52d12cb75e375ce71b767fd62fe338a73ab0..5abba0107b3e38a843907e41ef0e90601224f71a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -9,9 +9,7 @@
 #include <pic16f1827.h>
 
 #define RUNAT32MHZ /* else 16 MHz */
-#define BRIGHT_STEP     16 /* starts at 0 */
-#define BRIGHT_STEPS    16 /* includes 0 */
-#define LEDBIT          0x01 /* PORTB.3 */
+#define LEDBIT          0x01 /* PORTB.0 */
 
 #if defined(RUNAT32MHZ)
 __CONFIG(WDTE_OFF & FOSC_INTOSC);
@@ -35,14 +33,14 @@ void pic_init()
 
 void pwm_init()
 {
-    /* Initialize PWM on PORTB.0
+    /* Initialize PWM on PORTB.3
      * - Fosc = 32MHz
      * - Prescale = 16
      * - PRx value = 0xff
      * = f(pwm) = 1.95 kHz
      */
 
-    /* Disable output on PORTB.0 */
+    /* Disable output on PORTB.3 */
     TRISB |= 0x08;
 
     /* Configure ECCP1 */
@@ -55,18 +53,18 @@ void pwm_init()
     PR2 = 0xff;
     T2CON = 0b00000111;
 
-    /* Enable PWM output, PORTB.0 */
+    /* Enable PWM output, PORTB.3 */
     while (!TMR2IF); /* wait until timer overflow */
     TRISB &= ~0x08;
 }
 
 void led_init()
 {
-    PORTB &= ~LEDBIT; /* Led is PORTB.3 */
+    PORTB &= ~LEDBIT; /* Led is PORTB.0 */
     TRISB &= ~LEDBIT;
 }
 
-void led_set(unsigned short led)
+void led_set(unsigned char led)
 {
     if (led)
         PORTB |= LEDBIT;
@@ -74,43 +72,42 @@ void led_set(unsigned short led)
         PORTB &= ~LEDBIT;
 }
 
-void pwm_set(unsigned short step)
+void pwm_set(unsigned char step)
 {
-    CCPR1L = step * BRIGHT_STEP;
+    CCPR1L = step;
 }
 
 void delay()
 {
-    for (unsigned counter = 0; counter < 50000; counter++);
+    for (unsigned counter = 0; counter < 10000; counter++);
 }
 
 int main(void)
 {
-    unsigned short fwd = 1;
-    short int step = 0;
-    short int led = 0;
+    unsigned char fwd = 1;
+    unsigned char step = 0;
 
     pic_init();
     led_init();
     pwm_init();
     while (1) {
-        led = 1 - led;
-        led_set(led);
         pwm_set(step);
         if (fwd == 0) {
             step--;
-            if (step == -1) {
+            if (step == 0xff) { /* rollover */
+                led_set(0);
                 fwd = 1;
-                step++;
+                step = 0;
             }
         } else /* fwd == 1 */ {
             step++;
-            if (step == BRIGHT_STEPS) {
+            if (step == 0) { /* rollover */
+                led_set(1);
                 fwd = 0;
-                step--;
+                step = 0xff;
             }
         }
-        delay(); delay();
+        delay();
     }
     return 0;
 }