Está en la página 1de 1

Escribe el siguiente código en un fichero llamado LineFoll.

c:

1
2 # i n c l u d e < a v r / i o . h>
3
4 i n t main ( ) {
5 u n s i g n e d char s e n s ;
6
7 DDRB = 0xFF ; / / P u e r t o B como s a l i d a
8 PORTB = 0 x03 ; / / I n i c i a con d o s m o t o r e s e n c e n d i d o s
9 ADCSRA = 0 x00 ; / / Desc ADC
10 SFIOR = 0 x08 ; / / Con M u l t i p AC
11
12 while ( 1 ) {
13 s e n s = 0 x00 ;
14 ACSR = 0 x80 ; / / Desc AC
15 ADMUX = 0 x00 ; / / Selecc canal 0
16 ACSR = 0 x00 ; / / A c t i v a e l AC
17 asm ( "nop" ) ;
18 //
19 i f ( ! ( ACSR & 1 << ACO) ) / / s i s e n s o r 1 en z o n a
oscura
20 s e n s | = 0 x01 ; / / motor 1
encendido
21
22 ACSR = 0 x80 ; / / Desc AC
23 ADMUX = 0 x01 ; / / Selecc canal 1
24 ACSR = 0 x00 ; / / A c t i v a e l AC
25 asm ( "nop" ) ;
26 // //
27 i f ( ! ( ACSR & 1 << ACO) ) / / s i s e n s o r 2 en z o n a
oscura
28 s e n s | = 0 x02 ; / / motor 2
encendido
29
30 i f ( s e n s == 0 x01 | | s e n s == 0 x02 ) / / activa puerto
segun s e n s o r
31 PORTB = s e n s ;
32 else
33 PORTB = 0 x03 ; / / E n c i e n d e d o s m o t o r e s
34 }
35 }

También podría gustarte