Problem mit AVR Bitte Hilfe Dringend

OP #1685987
Lesenswert?

Hallo,
Ich habe folgenden Code geschrieben:

int main(void)
{
  while(1)
  {
        DDRB &= ~( 1 << PB0 );
        PORTB |= ( 1 << PB0 );

    DDRC &= ~( 1 << PC0 );
    PORTC |= ( 1 << PC0 );
    PORTC |= (1 << PC1) | (1 << PC2) | (1 << PC3);
    PORTC &= ~(1 << PC2);

  }
}

Mein Problem ist das Ich am Pin PC2 5,2V messe trotz: PORTC &= ~(1 << 
PC2);
Wo liegt hier der Fehler.

Danke schon mal in voraus für eure Antworten,
Heinz Peter
Gast #1685993
Lesenswert?

Werde dir erstmal darüber klar, was der Code überhaupt macht.
Die Bedeutung und den Unterschied zwischen DDR und PORT solltest du auch 
verstehen.

Weißt du was while(1) macht?

Topic: Bitte Hilfe Dringend
Wenn du noch bei den Grundlagen bist, kann es ja wohl nicht so dringend 
sein.
Gast #1686054
Lesenswert?

Du hast die Befehle in einer Endlosschleife.

Dh:

    PORTC |= ( 1 << PC0 );
    PORTC |= (1 << PC1) | (1 << PC2) | (1 << PC3);
    PORTC &= ~(1 << PC2);


wird laufend hintereinander ausgeführt. Genauso wie die DDR Register...

Ist dir das bewusst?
Gast #1686111
Lesenswert?

>Die Idee, mehrere _delay_ms hintereinander zu schreiben anstatt in
>eine Schleife finde ich übrigens gut.
>Gegenüber einer for-Schleife spart das nämlich toll Rechenzeit.

Könnte man auch mit while machen. Oder "do please" ;)

>Also über das ganze noch ein while(1) geben?!

Ja.
OP #1686121
Lesenswert?

Ja da hast du eigentlich recht... lol
Ich hab das aus der OOP entnommen, da man hier die Funktionen auch in 
eigene Methoden schreibt (allerdings um Codezeilen einzusparen).
Naja hab für das Projekt vorher nicht wirklich ein Konzept erstellt, 
sonder eher drauf los programmiert, ist wie man sieht nicht zum 
weiterempfehlen.
Aber der Durchlauf ist geglückt, also Danke für deine Hilfe!!!
Mit freundlichen Grüßen,
Heinz Peter
Gast #1686124
Lesenswert?

>    DDRC &= ~( 1 << PC0 );
> Mein Problem ist das Ich am Pin PC2 5,2V messe trotz: PORTC &= ~(1 <<
PC2);

Warum hat von euch Schlaumeiern Peter nicht darauf hingewiesen, dass es

DDRC |= ( 1 << PC2 );

heißen muss, wenn man PC2 als Ausgang betreiben möchte?
(Firma: Nisch-Aufzüge) Persönliche Seite #1687191
Lesenswert?

Eine bedingte Programmsequenz wird nicht ausgeführt wenn:

die If abfrage nicht erreicht wird
die if Bedingung nicht erfüllt werden kann
die if Bedingung nicht zur rechten Zeit erfüllt ist.

Such dir was aus

ein PAP oder ein Programstrukturplan hilft weiter, wenn ma nicht aus der 
Hüfte zu schießen vermag.
Pampen dagegen eher nicht.

;-)
#1687192
Lesenswert?

Also, noch ein Versuch.

Es gibt hier etliche Leute, die ihren Mitmenschen gerne
helfen und großteils enormes Wissen herumschleppen.
Das zu nutzen, indem man sich helfen lässt, ist
sinnvoll und legitim.

Das setzt aber auch eine gewisse Höflichkeit voraus, oder wie
man es auch immer nennen möchte (Netiquette...).

Wenn jetzt jemand sich aber nicht daran halten mag, darf
er sich nicht wundern, wenn er mehr oder weniger schnell
unfreundliche Antworten bekommt oder zumindest keine
sinnvollen mehr.

Einer der Punkte, die mir sauer aufstossen, ist daß du
keinerlei Bemühen zeigst, denen das Leben zu erleichtern,
die dir helfen sollen.
Das beginnt mit einem unformatierten Quelltext, der halt
schwerer zu erfassen ist als ein sauber formatierter und
deinen Helferlein also schon mal unnötig Zeit stiehlt.

Dann steht bei jedem Verfassen eines Postings direkt drüber
ein Hinweis zur Formatierung mit [c]..., was du elegant
ignorierst. Auch das würde die Lesbarkeit verbessern.

Irgendwann kommt dann mal ein Quelltext, vollkommen
unverständlicherweise als irgendwas.txt.txt.
Er ist wieder mies formatiert, praktisch unkommentiert
(außer etwas hirnrissigem in der Art "Ende Zeile 1").
Was soll das?
Es wäre nett, das Problem auf ein möglichst kleines,
vollständiges Beispiel zu reduzieren, das ordentlich
beschrieben ist. Zusammen mit der Information, was
du dir davon erwartest und einer klaren Aussage, was
stattdessen passiert, würde man auch gerne helfen.
Stattdessen bekommt man etwas vorgesetzt, durch das
man sich mühsam durchquält.
Weil du keine Zeit investierst, sollen deine Sklaven
hier mehr Arbeit haben? Das ganze natürlich laut
Threadtitel "Dringend".

Zu dem "Dringend": Du machst jetzt bislang den Eindruck,
als ob du - hm, naja, nur begrenzt Ahnung von der
Materie hast.
Genau genommen stehst du vor dem Wissensstand, den man
mit dem Tutorial erwirbt.
Auch das ist wieder ein Punkt, den ich irgendwo zwischen
unhöflich und dreist ansiedle: Du lässt dir hier Sachen
erklären, die du auch selber lernen könntest - ohne
anderen die Zeit zu stehlen.

Was willst du also Tolles entwickeln, wenn du
 a) keine Ahnung hast (was ja erstmal nicht verwerflich
    ist, solange man sich bemüht das zu verbessern), und
 b) nicht mal die elementaren Sachen lernen willst?

Aber zurück zu den Unhöflichkeiten/Dreistigkeiten:
Hier einen mageren Quelltext hin zu werfen mit der
selten dämlichen Frage "wo ist hier der Fehler"
(wie soll man aus dem Quelltext auf deine 5.2Volt
schließen, wenn man die Schaltung nicht kennt?),
hier die Zeit deiner ehrenamtlichen Helferlein zu
verplempern, nur um dann irgendwann zu verkünden:
> Mein original Code lautet ja ganz anders.
qualifiziert einen für das Arschloch des Monats.
Ich bin ja ein weitgehend friedlicher Mensch, aber
da schwillt mir dann doch der Kamm.

Nächster Punkt ist die Beratungsresistenz.
Musterbeispiel: Auch durch häufiges Wiederholen
des Worts gibt es keine if-Schleifen.
Wenn du hier Wissen holen willst, darfst du gerne
vernünftig formulieren.
Jeder fängt klein an, aber man darf sich durchaus
steigern.
Davon kann ich hier nichts erkennen.

Noch klarer werde ich mich jetzt aber nicht ausdrücken,
sonst wird es beleidigend.
Schönen Sonntag!
OP #1687198
Lesenswert?

Also bezüglich JTAG das kanns nicht sein, denn ICh arbeite mit nem 
ATMEGA 8 der hat ja so viel Ich weis kein JTAG.

Nun zu dir Klaus:
Ich wollte eigentlich nur einen Code ausschnitt reinstellen damit das 
ganze leichter wird, wenn du das mal in meiner txt Datei suchst wirst du 
ziehmlich schnell auf diesen Code treffen.
Die kommentare die Ich da gemacht habe sind für die anderen 
programmieren die an diesem Projekt arbeiten, da wir nach einem 
Masterplan zu arbeiten haben.

@ Winfried
Hast wohl Recht, ohne einen Ordentlichen Plan wird das wohl nichts.
#1687201
Lesenswert?

Heinz peter Posch schrieb:
> Ich wollte eigentlich nur einen Code ausschnitt reinstellen damit das
> ganze leichter wird, wenn du das mal in meiner txt Datei suchst wirst du
> ziehmlich schnell auf diesen Code treffen.

Nein, das finde ich so nicht dort.
Was die beiden Quelltexte gemeinsam haben, ist vor allem
die Formatierung :-)

Und genau das ist das Problem: hilfreich wäre ein kleines,
vollständiges Beispiel, das den Fehler aufweist, und
zwar dieses Beispiel im Original - nicht etwas, was
stellenweise ähnlich ist.
Was du geliefert hast, ist etwas anderes.

Ist mir aber auch egal, ich gehe lieber mit dem Hund raus.
Gast #1687205
Lesenswert?

Erlebnisse in diesem Forum:

Ich habe eine Frage ....

Antwort: das kannst du selbst, wenn du nach denkst ...

Ich wiederhole die Frage ...

Antwort: Du musst erst lernen ...

Nochmal gefragt ...

Jonas schreibt: Wer lesen kann ist klar im Vorteil

Max schreibt an Jonas: Das steht aber nicht in Wiki..

Jonas schreibt: Du hast keine Ahnung und bist doof

Max wird ausfallend (Text liegt unter der Gürtellinie)

Ich frage erneut nach ....
Zitate:

Antwort: oben steht doch, das findest du im Datenblatt
Antwort: Du kannst doch im Forum suchen ....
Antwort: googeln
Antwort: erst mal lernen
Antwort: Arschloch
Antwort: gehirnlos
.
.
.
.
Nach dem 32. Beitrag von insgesamt 15 Schreibern schreibt ein bisher 
nicht in Erscheinung getretener Gast: .... einen externen Takt an den 
Oszillatoreingang anlegen und ....

Nach diesem brauchbaren Beitrag gab es keine weiteren Beiträge.
Dieser Beitrag war passend zur ersten Frage.

Fazit: alle vorherigen Schreiber waren nicht in der Lage eine 
qualifizierte Antwort zu geben.

==> In diesem Forum kann einer von 15 Schreibern eine brauchbare Hilfe 
geben.

Danke
(Firma: Nisch-Aufzüge) Persönliche Seite #1687210
Lesenswert?

@ klaus

es ist ein typisches Anfängerprolem, vollkommen unabhängig vom 
Fachgebiet, sich eine "Fachmann/(Fachidioten)" nicht klar und 
verständlich ausdrücken zu können.
Er kann es nicht aus Unhöflichkeit nicht, sondern weil er die 
Terminologie geauso wenig beherrscht wie das Problem an sich oder dessen 
zweckmäsige Darstellung. Könnte er all dies von dir Geforderte, so hätte 
er das Problem gar nicht und müsste dich nicht belästigen.

Hier ist der Effizenz suchende Scholar an den Wiedrigkeiten der 
Kommunikation gescheitert. Man sehe es ihm nach, denn er weis nicht was 
er tut, er glaubt es nur, da er seine wahre Unwissenheit nicht zu 
erkennen vermag.

Sein Verstand gaukelt ihm vor das Problem zu erkennen, ihm fehle nur die 
Lösung. In Wahrheit sieht er nur das Problem vor dem Problem.

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