quadro78
09.04.2009, 22:15
Ich habe mir im Wiki einige Artikel zu AVR und Bascom durchgelesen und überlegt einen ATMega32 so zu programmieren das er 2 verschiedene Effekte mit 4 leds erzeugt (über einen Taster). Diese sind in einem Kreuz angeordnet:
http://www.bilder-hochladen.net/files/afj4-1.png
Das sind die Leds:
http://img.webme.com/pic/d/dataspace/1139_1.jpg
Diese Spannung wird für die jeweiligen farben benötigt:
rot=2.0V - grün=3.2V - blau=3.2V
Diese Ports habe ich für die Leds festgelegt:
Led 1: PA0
PA1
PA2
Led2: PA3
PA4
PA5
Led3: PC0
PC1
PC2
Led4: PC3
PC4
PC5
(1. Port ist für Rot, der 2. für Grün, der 3. für Blau)
Der Microcontroller soll mit 5V betrieben werden...ich habe die Beispiele aus dem Wiki für einen Bascom- Code genommen und ihn erweitert, dabei ist das heraus gekommen:
$regfil$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
Config Pina.7 = Input
Porta.7 = 1
Do
If Pina.7 = 1 Then
Porta.0 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 1.Led
Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Pink
Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
Porta.3 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 2.Led
Porta.4 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (grün) 2.Led Farbe Gelb
Porta.5 = 0 'Pin soll auf 0 Volt gestellt werden (blau) 2.Led
Portc.0 = 0.64 'folgende Pins sind wie die für die 2. Led eingestellt, also Gelb
Portc.1 = 0.4
Portc.2 = 0
Portc.3 = 0.64
Portc.4 = 0.4
Portc.5 = 0
Else
Porta.0 = 0.25 'Pin soll auf 1 Volt gestellt werden (rot) 1. Led
Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Violett
Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
Porta.3 = 0.4
Waitms 100
Porta.3 = 0
Waitms 200
Porta.4 = 0
Waitms 100
Porta.4 = 0.64 'Hier soll ein Farbwechel
Waitms 200 von Pink -> Türkis -> Blau
Porta.5 = 0.64 enstehen (bei Led 2 und 4)
Portc.0 = 0.4
Portc.1 = 0.64 'Led 3 hat die Farbe Gelb
Portc.2 = 0
Waitms 100
Portc.3 = 0
Waitms 200
Portc.4 = 0
Waitms 100
Portc.4 = 0.64 'Hier soll ein Farbwechel von
Waitms 200 Pink -> Türkis -> Blau
Portc.5 = 0.64 enstehen (bei Led 2 und 4)
End If
End
und hier noch der gedachte Schaltplan(den habe ich mit Paint gemacht):
http://img.webme.com/pic/d/dataspace/spannung.gif
Gehen wir mal davon aus das die leds an den richtigen Ports angeschlossen sind, ist es richtig das alle leds am längsten beinchen mit Gnd verbunden sind oder muss da die Spannung Erst runter gesetzt werden??
Ist es Richtig das der Minus Pol ( Gnd ) beim Spannungsregler angeschlossen ist, wenn man den Schaltplan umsetzen würde(gäbe das nicht einen Kurzschluss)??
Würde das programm funktionieren??
Gibt es sonst noch Fehler?
Hoffentlich war das nicht zu viel auf einmal 8-[ 8-[ 8-[
Naja freue mich auf eure Antworten O:)
http://www.bilder-hochladen.net/files/afj4-1.png
Das sind die Leds:
http://img.webme.com/pic/d/dataspace/1139_1.jpg
Diese Spannung wird für die jeweiligen farben benötigt:
rot=2.0V - grün=3.2V - blau=3.2V
Diese Ports habe ich für die Leds festgelegt:
Led 1: PA0
PA1
PA2
Led2: PA3
PA4
PA5
Led3: PC0
PC1
PC2
Led4: PC3
PC4
PC5
(1. Port ist für Rot, der 2. für Grün, der 3. für Blau)
Der Microcontroller soll mit 5V betrieben werden...ich habe die Beispiele aus dem Wiki für einen Bascom- Code genommen und ihn erweitert, dabei ist das heraus gekommen:
$regfil$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
Config Pina.7 = Input
Porta.7 = 1
Do
If Pina.7 = 1 Then
Porta.0 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 1.Led
Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Pink
Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
Porta.3 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 2.Led
Porta.4 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (grün) 2.Led Farbe Gelb
Porta.5 = 0 'Pin soll auf 0 Volt gestellt werden (blau) 2.Led
Portc.0 = 0.64 'folgende Pins sind wie die für die 2. Led eingestellt, also Gelb
Portc.1 = 0.4
Portc.2 = 0
Portc.3 = 0.64
Portc.4 = 0.4
Portc.5 = 0
Else
Porta.0 = 0.25 'Pin soll auf 1 Volt gestellt werden (rot) 1. Led
Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Violett
Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
Porta.3 = 0.4
Waitms 100
Porta.3 = 0
Waitms 200
Porta.4 = 0
Waitms 100
Porta.4 = 0.64 'Hier soll ein Farbwechel
Waitms 200 von Pink -> Türkis -> Blau
Porta.5 = 0.64 enstehen (bei Led 2 und 4)
Portc.0 = 0.4
Portc.1 = 0.64 'Led 3 hat die Farbe Gelb
Portc.2 = 0
Waitms 100
Portc.3 = 0
Waitms 200
Portc.4 = 0
Waitms 100
Portc.4 = 0.64 'Hier soll ein Farbwechel von
Waitms 200 Pink -> Türkis -> Blau
Portc.5 = 0.64 enstehen (bei Led 2 und 4)
End If
End
und hier noch der gedachte Schaltplan(den habe ich mit Paint gemacht):
http://img.webme.com/pic/d/dataspace/spannung.gif
Gehen wir mal davon aus das die leds an den richtigen Ports angeschlossen sind, ist es richtig das alle leds am längsten beinchen mit Gnd verbunden sind oder muss da die Spannung Erst runter gesetzt werden??
Ist es Richtig das der Minus Pol ( Gnd ) beim Spannungsregler angeschlossen ist, wenn man den Schaltplan umsetzen würde(gäbe das nicht einen Kurzschluss)??
Würde das programm funktionieren??
Gibt es sonst noch Fehler?
Hoffentlich war das nicht zu viel auf einmal 8-[ 8-[ 8-[
Naja freue mich auf eure Antworten O:)