home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / text / Led-Fade.c < prev    next >
C/C++ Source or Header  |  2014-05-19  |  3KB  |  96 lines

  1. From comp.sys.amiga.programmer Sat Jun 27 02:22:00 1992
  2. Path: cs.tu-berlin.de!news.netmbx.de!Germany.EU.net!mcsun!uunet!overload!dillon
  3. From: dillon@overload.Berkeley.CA.US (Matthew Dillon)
  4. Newsgroups: comp.sys.amiga.programmer
  5. Subject: Re: LED fade
  6. Distribution: world
  7. Message-ID: <dillon.0hjx@overload.Berkeley.CA.US>
  8. References:  <David_Cole.04b0@guru.pub.uu.oz.au>
  9. Date: 25 Jun 92 10:51:08 PST
  10. Organization: Not an Organization
  11. Lines: 82
  12.  
  13. In article <David_Cole.04b0@guru.pub.uu.oz.au> David_Cole@guru.pub.uu.oz.au (David Cole) writes:
  14. >G'day all!
  15. >
  16. >     I recently received a demo of a program called "Aspro".  This is
  17. >probably pretty old, but that is not the issue.
  18. >     When you activate it, the power LED on the A500 (maybe 2000 as well, I
  19. >don't know), fades to off, and then fades back to full brightness.
  20. >
  21. >     I was wondering if anyone out there can tell me how this is done
  22. >(source-code), in Asm.  Also, could you please document it clearly, as I am
  23. >only just a beginner in 68k.
  24. >
  25. >Thanks
  26. >
  27. >Dave.
  28. >
  29. >
  30. >-- Via DLG Pro v0.991
  31.  
  32.     I dunno how he did it, but the easiest way to do it is to use a
  33.     constant frequency envelope and vary the duty cycle going to the LED.
  34.  
  35.                     ______________________________
  36.     |______________________________|        (half bright)         |
  37.                               ____________
  38.     |________________________________________________|    (dim)     |
  39.           ____________________________________________________
  40.     |________|            (full bright)                     |
  41.  
  42.  
  43. --
  44.  
  45.     Matthew Dillon        dillon@Overload.Berkeley.CA.US
  46.     891 Regal Rd.        uunet.uu.net!overload!dillon
  47.     Berkeley, Ca. 94708
  48.     USA
  49.  
  50.  
  51. /*
  52.  *  Simple STUPID program
  53.  *
  54.  *  note 1: using timing loops is bad
  55.  *
  56.  *  note 2: you may have to modify <n> depending on your machine, but
  57.  *        hopefully not by too much due to the enforced synchronization
  58.  *        with the CIA's 6800 interface.
  59.  *
  60.  *  note 3: Program presumes the CIA is accessed in an atomic instruction
  61.  *
  62.  *  note 4: This really is a stupid program...
  63.  */
  64.  
  65. #include <exec/types.h>
  66. #include <exec/tasks.h>
  67. #include <dos/dos.h>
  68. #include <clib/exec_protos.h>
  69. #include <clib/dos_protos.h>
  70.  
  71. main()
  72. {
  73.     struct Task *task = FindTask(NULL);
  74.     short n = 500;
  75.  
  76.     /*
  77.      *    actual loop
  78.      */
  79.  
  80.     while ((task->tc_SigRecvd & SIGBREAKF_CTRL_C) == 0) {
  81.     short i;
  82.     short j;
  83.  
  84.     for (i = 0; i < n; ++i) {
  85.         for (j = 0; j < i; ++j)
  86.         *(char *)0xBFE001 |= 0x02;
  87.         for (j = i; j < n; ++j)
  88.         *(char *)0xBFE001 &= ~0x02;
  89.     }
  90.     }
  91.     return(0);
  92. }
  93.  
  94.  
  95.  
  96.