mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik vorwärtzähler in c programm


Autor: J.Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich versucht ein vorwärt zähler in c zu programmieren. für das themas 
microcontreller bin ich eine anfänger. ich habe ein klein programm 
geschrieben aber es fonstioniert nicht richtig es fonstionniert 
überhaupt nicht. deshalb möchte ich das ihr mein algorithme schaut und 
sagt ihr mich was ist falsch drin



#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>
int main(void){
DDRB = 0xFF;
uint8_t I;
I=0;
schl:
        {

    PORTB = I;
  _delay_ms(1000);
     I++;
  }
 goto schl;

 return 0;
}

danke

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ja, da ist einiges nicht so gelungen :-)

Du solltest uns vielleicht zuerst mal sagen, was dein Programm überhaupt 
tun sollte und wie es das deiner Meinung nach tut.

Gruss

Michael

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> _delay_ms(1000);

Schon mal in die Doku zu _delay_ms geschaut?
Da gibt es eine Beschränkung. Du kannst nicht
beliebig hohe Zahlen da hineinstopfen.
Die maximale Verzögerungszeit liegt bei 240/Taktfrequenz_in_Mhz

Wenn du deinen AVR also mit 4 Mhz betreibst, dann
ist die maximale Verzögerungszeit  240/4 also rund
60 Millisekunden.

Wenn dir das nicht reicht, dann musst du halt _delay_ms
in einer Schleife entsprechend oft aufrufen.

  for( j = 0; j < 100; ++j )
    _delay_ms( 10 );

10 * 100 macht wieder 1000 Millisekunden.

>  goto schl;

den goto solltest du dir gleich wieder abgewöhnen oder
besser gesagt: gar nicht erst angewöhnen.

   while( 1 ) {
     PORTB = I;
     for( j = 0; j < 100; ++j )
       _delay_ms(10);
     I++;
   }
}


Autor: J.Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mein programm soll zaehlen es ist ein 8bit binär zaehler von 0 bis 255 
un es muss ein endlos schleife sein. das programm das ich geschrieben 
habe tut es nicht. Es zählt nich richtig
gruss
J.Pascal

Autor: J.Pascasl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke Karl du hast mich sehr geholfen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.