Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 4 Antworten
und wurde 1.425 mal aufgerufen
 Probleme
mf-fahrer Offline




Beiträge: 267

20.05.2013 17:30
Taster immer abfragen und LED immer blinken lassen mit ATtiny13 Antworten

Hallo,
ich arbeite zurzeit an meinem ersten größeren C Projekt.
Ich möchte das ein Taster immer Abgefragt wird und eine LED immer blinkt. Wie muss ich dass in meinem Angehängten Projekt einfügen damit beides gleichzeitig geht?

bit oldstate; // Old state flag

void main()
{
DDB3_bit = 0; // Set pin as input
DDB0_bit = 1; // Set pin as output
DDB1_bit = 1; // Set pin as output
DDB2_bit = 1; // Set pin as output
DDB4_bit = 1; // Set pin as output

oldstate = 0;
PORTB |= (1<<DDB0); // Licht einschalten

do
{

if(Button(&PINB, 3, 1, 0)) { // Detect logical one
oldstate = 1; // Update flag
}

if (oldstate && Button(&PINB, 3, 1, 1)) { // Detect one-to-zero transition
PORTB |= (1<<DDB2);
oldstate = 0;
Delay_ms(1000);
PORTB &= ~(1<<DDB2);
}

}while(1);
}


Dass soll eingefügt werden:

PORTB |= (1<<DDB1); // Blinker setzen
Delay_ms(600);
PORTB &= ~(1<<DDB1);
Delay_ms(600);


Ich habe gehört dass man die LED mit einem Timer blinken lassen kann, nur leider verstehe ich dass nicht wirklich. Vielleicht kann mir dass einer erklären oder hat einen hilfreichen Link.


Viele Grüße
Jonas Weßling

PS.: Ich werde wenn es fertig ist mal unter Projekte vorstellen.


diezel Offline



Beiträge: 709

20.05.2013 18:27
#2 RE: Taster immer abfragen und LED immer blinken lassen mit ATtiny13 Antworten

Hallo Jonas,

erwarte von mir keine Hilfe, "C" ist für mich ne fremde Welt.
Aber klar ist, daß Du mit dem Delay das komplette Programm unterbrichst. Kommt in dieser Zeit ein Tastebdruck rein, bleibt er unbemerkt. Also muß das Blinken in eine Timer-Routine ausgelagert werden.
Der schlaue Google-Nutzer findet schnell zig Beispiele:
http://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte#LED_blinken_lassen


Gruß
Gerhard

-------------------------------------------------------------------------------------------
hier mein aktueller TinyKatalog


mf-fahrer Offline




Beiträge: 267

20.05.2013 19:48
#3 RE: Taster immer abfragen und LED immer blinken lassen mit ATtiny13 Antworten

Danke schon mal. Ich hatte gegoogelt aber bin nicht auf diese Seite gestoßen.
Das mit dem Delay habe ich auf meinem Entwicklungsboard gemerkt, ich habe immer wieder einen Tastendruck abgegeben und es hat sich nichts getan.
Vielleicht hat einer noch eine Lösung, der sich mit C auskennt.


Viele Grüße
Jonas


Modelltüftler Offline



Beiträge: 198

20.05.2013 20:07
#4 RE: Taster immer abfragen und LED immer blinken lassen mit ATtiny13 Antworten

Hallo jonas

I kenn hab die grundlagen in der schule gelernt und kann dir nur mäßig weiterhelfen.

Also die Taster willst du ja immer abfragen deshalb würde ich es auch so machen wie du.

Delay ist ja sehr nützlich aber eben sehr oft versperrt es dir nötige rechenleistung des controllers da er einfach sein programm unterbricht und wartet.

Timer habe ich auch noch keinen geschrieben aber die seite von diezel ist da sehr gut damit habs sogar ich gecheckt!
Ich frage mich nur warum du die ausgänge bitweise definierst. schreib doch einfach DDRB= 0b10000000; dann sparst du dir viel schreiberei.

Gruß Fabian

Wer Schreibfehler findet darf sie behalten 8-)


Scotch Offline




Beiträge: 415

20.05.2013 20:36
#5 RE: Taster immer abfragen und LED immer blinken lassen mit ATtiny13 Antworten

Moin,
mit C kenne ich mich auch nicht aus.
Aber schau dir mal diese Seite an.
http://www.rn-wissen.de/index.php/Timer/Counter_%28Avr%29
Was für dich auch noch interessant ist, sind die Interrupts.
Damit sollte man auch aus einem Delay wieder heraus kommen.
Einfach mal googlen oder besorge dir Bascom.
Für kleine Projekte bis 4K ist es Kostenlos zu nutzen.
Gerhard (Diezel) Hat da ja schon einige gute Beispiele hier im Forum
vorgestellt.
Gruß Ingo

------------------------------------------

Meine Webseite


 Sprung  

disconnected Mikromodell-Chat Mitglieder Online 6
Xobor Xobor Community Software
Datenschutz