Forum: Mikrocontroller und Digitale Elektronik attiny 2313 code problem


von jonas (Gast)


Lesenswert?

hallo ich habe disen code von 
http://www.sachsendreier.com/msw/projekte/tastendruckzaehlen/tastendruckzaehlen.html
für den attiny2313 verändert es geht soweit gabz gut aber ich möchte nun 
noch eine zurück funktion programmieren
P.S ich habe noch nicht so ne erfahrun beim programmieren


Schon mal danke für eure antworten :)

von Oliver J. (skriptkiddy)


Lesenswert?

jonas schrieb:
> ich möchte nun
> noch eine zurück funktion programmieren

Du musst schon etwas genauer werden.

von jonas (Gast)


Lesenswert?

also wenn man auf den einen taster drückt wander der balkem immer eine 
stufe höher und ich möchte noch ein taster haben wo das umgekerte der 
fall ist hir der code :


#include <avr/io.h>

#define F_CPU 1000000UL  // 1 MHz
#include <util/delay.h>

#include "boarddefs.h"



int main(void){

  //Zaehlvariable
  int z=0;

  //alle PORTS sind Ausgaenge
  DDRB = 255;  DDRD = 255;

  //PC0 wieder loeschen -> PC0 ist nun Eingang
  DDRD &= ~_BV(PD3);

  //alle LEDs aus bzw. alle PULL UPs an, wo Eingänge definiert
  PORTB = 255;    PORTD = 255;

  while (1){

    //Wenn Taste gedrueckt
    if (bit_is_clear(PIND,3)) {

      z++;
      if (z==15) z=1;

      PORTB=255;  PORTD=255;


   if (z==1) led11on ;
      if (z==2) led9on ;
      if (z==3) led8on ;
      if (z==4)  led7on ;
      if (z==5)led6on;
      if (z==6) led5on;
      if (z==7) led4on ;
      if (z==8)  led14on;
      if (z==9)  led13on;
      if (z==10)  led2on ;


      //warten, bis Taste losgelassen wird
      while (bit_is_clear(PIND,3)) {_delay_ms(100);}

    }

    //nochmal warten
    _delay_ms(100);

  }
return(0);
}

von Oliver J. (skriptkiddy)


Lesenswert?

Eine weitere If-Anweisung, die nach einem anderen Taster fragt und wenn 
gedrückt wird, dann dekrementierst du den den Zähler z.
Könnte dir zwar auch den fertigen Code geben, aber da lernst du nicht 
soviel dabei, als wenn du dir selbst darüber den Kopf zerbrichst.

von jonas (Gast)


Lesenswert?

so z.b ?  if (bit_is_clear(PIND,4)) {

von jonas (Gast)


Lesenswert?

und if (z==15) z=2;

von Oliver J. (skriptkiddy)


Lesenswert?

jonas schrieb:
> so z.b ?  if (bit_is_clear(PIND,4)) {
ja

von Oliver J. (skriptkiddy)


Lesenswert?

Skript Kiddy schrieb:
> und if (z==15) z=2;
Was soll diese Zeile denn bringen?

von jonas (Gast)


Lesenswert?

keine ahnung

von Oliver J. (skriptkiddy)


Lesenswert?

jonas schrieb:
> keine ahnung
Na dann fang lieber erst mal mit den Basics an und lass ein Licht 
blinken, bevor du dich an solche Sachen wagst.
Hier findest du einen guten Leitfaden:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von jonas (Gast)


Lesenswert?

ich habe schon lichter blinken lassen

von jonas (Gast)


Lesenswert?

while (bit_is_clear(PIND,4)) {_delay_ms(100);}
 ist das auch richtig ?

von holger (Gast)


Lesenswert?

>> und if (z==15) z=2;
>Was soll diese Zeile denn bringen?

>keine ahnung

Dann mach dich vom Acker. Vollidioten kann man nicht helfen.

von Oliver J. (skriptkiddy)


Lesenswert?

holger schrieb:
> Dann mach dich vom Acker. Vollidioten kann man nicht helfen.

Danke für die Ansage. Ich habs nicht übers Herz gebracht.

von jonas (Gast)


Lesenswert?

ihr seit aber nett -.-

von Karl H. (kbuchegg)


Lesenswert?

jonas schrieb:
> ihr seit aber nett -.-

Was erwartest du?

Programmieren funktioniert nun mal nicht nach dem Muster:
Ich schreib einfach mal irgendwas hin.

Du musst dir dabei ja auch was gedacht haben. Was soll daher die Ansage 
"keine Ahnung"

Wenn du mein Schüler wärst, würde ich dir den Source Code wegnehmen und 
du müsstest die ganze Aufgabe noch einmal, aber diesmal eigenständig(!) 
bearbeiten.
Programme von Webseiten abschreiben - dabei lernt man nichts.

Übrigens:
Der Programmaufbau deines Musters ist zwar für die gegebene 
Aufgabenstellung einigermassen ok. Er verallgemeinert allerdings 
schlecht, von daher ist er eher unbrauchbar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.