XTAL auf Ausgang uebertragen und verarbeiten

OP #2559223
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
@  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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.