File: main.c

package info (click to toggle)
simulavr 1.0.0%2Bgit20160221.e53413b-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 5,748 kB
  • sloc: cpp: 35,491; python: 6,991; ansic: 3,567; makefile: 1,072; sh: 653; asm: 414; tcl: 320
file content (39 lines) | stat: -rw-r--r-- 923 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* Example of the simulavrxx delivery.
 * This example shows the usage of the analog comparator
 * of the AVR mega devices the output of the ersult on Port B.
 * Compare AIN0 and ANI1. If AIN0 > AIN1 port B=0xff, else port B=0
 *
 * Status: in work
 *
 * $Id$
 */

#include <avr/io.h>

int main () {
   int i;
   volatile int x;     // For future use
   DDRB=0xff;          // Set all pins of port B to output
//   SFIOR |= (1<<ACME); // Enable Analog Multiplexer

#ifdef CONNECT_TO_WRITEPIPE
// To use this feature simulavrxx needs to be connect to
// a write pipe e.g. by the commandline switch -W0x20,-
   for( i=0; i<10000; ++i )
       *( (volatile char*) 0x20)='*';
#endif
//--------------------------------------------
   do {
       if (ACSR & (1<<ACO) ) { // Check the result
          PORTB=0xff;
          x=1;
        } else {
          PORTB=0x00;
          x=0;
        }
   } while(1);   // do forever
}