XTAL auf Ausgang uebertragen und verarbeiten

OP #2559223
Lesenswert?

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
}
#2559236
Lesenswert?

@  Hannes Bubar (hannesb1980)

>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.

Versuchs mal mit Netiquette. Dein Geschreibsel ist konfus.

>1. ich wuerde gerne das am XTAL anliegende Signal auf 1 Abfragen

Was für ein Signal? Wie schnell?

>dazu
>hab ich mal was geschrieben aber das geht wohl so nicht oder?

Konfuser Unsinn.

>2. wuerde ich gerne dieses Signal 1 zu 1 auf die Ausgaenge PA3 und PA5
>uebertragen. Geht dies????

Nur, wenn es ein relativ langsames Signal mit ein paar kHz ist.

>3. macht das Sinn was ich geschrieben hab oder eher nicht?

Nicht!

MfG
Falk
Gast #2559272
Lesenswert?

Hannes Bubar schrieb:
> ich wuerde gerne das am XTAL anliegende Signal auf 1 Abfragen

Der komplette C-Code ist Unsinn, teilweise völlig falsch, der Rest passt 
nicht zu deiner etwas konfusen Problembeschreibung.

Kannst du mal in eigenen Worten genauer erklären, WAS du überhaupt 
machen willst? Was meinst du mit XTAL? Was für ein Signal liegt da an? 
Was willst du ausgeben? Und welchen AVR genau verwendest du?

Wenn dir (!!!) das klarer ist, und du es dann so formulieren kannst, daß 
auch jemand hier im Forum das verstehen kann, dann kann man über eine 
Umsetzung in ein Programm nachdenken.

Hilfreich wäre es, wenn du dich mal durch das Tutorial durcharbeitest, 
zumindest durch die Kapitel über die IOs.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren