Hi, nun bin ich ein uebelst schlechter c programmierer und von µC hab ich auch mal keine Ahnung aber da mich jemand gebeten hat versuch ich einfach mal mein Glueck. 1. ich wuerde gerne das am XTAL anliegende Signal auf 1 Abfragen dazu hab ich mal was geschrieben aber das geht wohl so nicht oder? 2. wuerde ich gerne dieses Signal 1 zu 1 auf die Ausgaenge PA3 und PA5 uebertragen. Geht dies???? 3. macht das Sinn was ich geschrieben hab oder eher nicht? Wiegesagt hab nicht wirklich ahnung.
1 | /*
|
2 | * AVRGCC1.c
|
3 | *
|
4 | * Created: 21.02.2012 05:43:36
|
5 | * Author: ich
|
6 | */
|
7 | |
8 | #include <avr/io.h> |
9 | #include <stdint.h> |
10 | |
11 | |
12 | int main(void) |
13 | {
|
14 | DDRA = 0xff; // Ausgang |
15 | DDRB = 0x00; // Eingang |
16 | DDRC = 0xff; // Ausgang |
17 | |
18 | int i; |
19 | int x=0; |
20 | int y = 0; |
21 | unsigned char old=0, new; |
22 | unsigned char XTAL1; |
23 | |
24 | |
25 | while(1) |
26 | {
|
27 | |
28 | if ( i = 0, i < 1000, i++) // Schleife Flankenabfrage |
29 | {
|
30 | |
31 | |
32 | |
33 | |
34 | new = (XTAL1 != 0); //steigende Flanke an XTAL1 soll erkannt werden. |
35 | if(!old && new) |
36 | {
|
37 | x=x+1; |
38 | }
|
39 | old=new; |
40 | |
41 | } // Ende Schleife Flankenabfrage. |
42 | |
43 | |
44 | |
45 | |
46 | if (x < 200) { y == 1; } |
47 | if (x < 400) { y == 2; } |
48 | if (x < 600) { y == 2; } |
49 | if (x < 800) { y == 3; } |
50 | if (x < 1000) { y == 4; } |
51 | if (x == 1000) { y == 0; } |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | switch(y) // Ausgänge Ansteuern .... y aus Flankenabfrage. |
60 | {
|
61 | case 1: |
62 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7); |
63 | PORTC |= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3) | (1<<PC4) | (1<<PC5) | (1<<PC6) | (1<<PC7); |
64 | break; |
65 | |
66 | case 2: |
67 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7); |
68 | PORTC |= (1<<PC0) | (1<<PC1) | (0<<PC2) | (0<<PC3) | (0<<PC4) | (0<<PC5) | (0<<PC6) | (0<<PC7); |
69 | break; |
70 | |
71 | case 3: |
72 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7); |
73 | PORTC |= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3) | (0<<PC4) | (0<<PC5) | (0<<PC6) | (0<<PC7); |
74 | break; |
75 | |
76 | case 4: |
77 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7); |
78 | PORTC |= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3) | (1<<PC4) | (1<<PC5) | (0<<PC6) | (0<<PC7); |
79 | break; |
80 | |
81 | case 5: |
82 | PORTA |= (1<<PA0) | (1<<PA1) | (1<<PA2) | (1<<PA3) | (1<<PA4) | (1<<PA5) | (1<<PA6) | (1<<PA7); |
83 | PORTC |= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3) | (1<<PC4) | (1<<PC5) | (1<<PC6) | (1<<PC7); |
84 | break; |
85 | }
|
86 | |
87 | |
88 | |
89 | }
|
90 | return 0; |
91 | |
92 | }
|