Hallo,
als erstes möchte ich mich mal eben Vorstellen.
Mein Name ist Daniel. 26J, Energieelektroniker und auf dem Weg zum staatl. gepr. Elektrotechniker.
Programmierkentnisse: SPS- und Delphiprogrammierung. Beides nicht perfekt , aber man lernt ja immer dazu![]()
Vor zwei Tagen habe ich den µController Einstieg gewagt und mir bei Pollin das Evulation Board gekauft. Es war schön billig, so daß ich erst mal probieren kann. Jetzt habe ich hier die ganzen Tutorials gelesen um mir einen Überblick zu verschaffen. Einfache Programme, wie z.B. das Schalten einer LED auf Knopfdruck, laufen. Jetzt möchte ich aber doch mal eine "echte" Schaltung mit Programm entwickeln.
Folgendes Projekt hab ich im Auge:
Eine Radlampe über PWM gedimmt. Nach drei Sekunden Betätigen eines Schalters soll die Lampe in der kleinsten Dimmstufe einschalten. Nach drücken des Tasters soll man in die nächst höhere Dimmstufe wechseln können. Ist die dritte Stufe erreicht (Max Stufe), soll nach Betätigen des Tasters wieder in die erste Stufe gewechselt werden.
Wenn der Taster wieder 3 Sekunden betätigt wird, schaltet man die Lampe aus.
Folgenden Quelltext habe ich mal getippt (hier nur zwei PWM Stufen, und in den Sprüngen werden zum test nur led´s getogglet):
Leider läuft es nicht so wie geplant, vielleicht kann mir ja hier jemand einen Tipp geben.Code:'Tell the compiler which AVR chip we use $regfile = "m16def.dat" 'Tell the compiler which crystal frequency was used $crystal = 16000000 '16.00000 MHz 'Specify baud rate for serial port $baud = 9600 '################### Ausgänge ###################################### config portd.5 = Output 'Port D5 als Ausgang konfigurieren led1 alias portd.5 config portd.6 = output 'Port D6 als Ausgang konfigurieren led2 alias portd.6 '################### Eingänge ###################################### config pind.2 = input 'Pin D2 als Eingang konfigurieren taster1 alias pind.2 '################### Variablen ###################################### Dim EIN as Bit Dim A as Integer do 'Beginn Hauptschleife main: if taster1=1 then 'Wenn Taster 3s gedrückt waitms 3000 if taster1=1 then goto schalten end if end if if EIN =1 then 'Wenn EIN if taster1=1 then 'Und Taster gedrückt waitms 50 if taster1=1 then incr A 'Variable um 1 erhöhen end if end if end if if A = 2 then 'Wenn Variable = 2 A = 0 'Variable wieder auf 0 end if if EIN =1 then 'Wenn EIN if A = 0 then ' UND A=0 goto PWM1 ' Gehe zu PWM1 end if end if if EIN =1 then 'Wenn EIN if A=1 then ' UND A=1 goto PWM2 'Gehe zu PWM2 end if end if if EIN =1 then led2 = 1 end if loop 'ENDE schalten: 'Eischalten toggle EIN A = 0 'Variable auf 0 goto main PWM1: toggle led1 goto main PWM2: toggle led2 goto main
Ich wäre euch sehr dankbar!
Gruß
Daniel







Zitieren

Lesezeichen