infosystems
25.06.2006, 07:29
Hallo Jungs,
ich habe da ein großes Problem und kommen nicht weiter.
Die Schaltung ist wie folgt: ATMega16, danach über I2C an den PCF 8574, von da an den Treiber ULN2003, Widerstand, LED und an V+.
Ich schaffe es nicht die LED dauernd anzusteuern.
Je mehr PCF 8574's ich ansteure, um so kleiner wird die Helligkeit der LED Anzeigen.
Was ist da bloß zu machen?
In meinem Programm werden die LEDs, nacheinander angesteuert, dadurch die Helligkeit Abnahme. Leider fällt mir nichts ein, wie ich eine Dauer Ansteuerung mit dieser Beschaltung schaffen könnte...
Habt Ihr da eine Idee???
Hier mein Programm Code:
regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 7372800
$baud = 9600
Const Dekaden = 5 ' Anzahl der Anzeigen (dekaden)
Const Pulsdauer = 10000 ' Dauer eines Impulses
'Variablen 7 Segment Dekodierung
Dim Segment(dekaden) As Byte
Dim Zahl(dekaden) As Byte ' Array für die fertig berecheten Segmente
Dim Digit As Byte
Dim Adress As Integer
Config 1wire = Portd.6 ' Eingang Temperatur Sensor
'LED's in den Gradzeichen setzen
Config Porta = Output
Config Portb = Output
Porta.4 = 1 ' Led im Gradzeichen oben
Porta.3 = 1 ' Led im Gradzeichen unten
Portb.2 = 0 ' INT Eingang des PCF8574
'i2C Konfigurieren
Config Scl = Portc.0 ' Ports fuer I2C-Bus
Config Sda = Portc.1
I2cinit
'Slave adressen des PCF 8574 I/O IC
Const Adr_digit1 = &B1001110 ' Adresse Stelle 1
Const Adr_digit2 = &B1001100 ' &B1001110
Const Adr_digit3 = &B1001010 ' |||
Const Adr_digit4 = &B1001000 ' ||A0
' |A1
' A2
'Daten über I2C an die Anzeigen senden
Do
I2csend Adr_digit1 , &B01111111
I2csend Adr_digit2 , &B01111111
I2csend Adr_digit3 , &B01111111
I2csend Adr_digit4 , &B01111111
Loop
Vielen Dank und ein schönes Wochenende.
Gruß
Rici
ich habe da ein großes Problem und kommen nicht weiter.
Die Schaltung ist wie folgt: ATMega16, danach über I2C an den PCF 8574, von da an den Treiber ULN2003, Widerstand, LED und an V+.
Ich schaffe es nicht die LED dauernd anzusteuern.
Je mehr PCF 8574's ich ansteure, um so kleiner wird die Helligkeit der LED Anzeigen.
Was ist da bloß zu machen?
In meinem Programm werden die LEDs, nacheinander angesteuert, dadurch die Helligkeit Abnahme. Leider fällt mir nichts ein, wie ich eine Dauer Ansteuerung mit dieser Beschaltung schaffen könnte...
Habt Ihr da eine Idee???
Hier mein Programm Code:
regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 7372800
$baud = 9600
Const Dekaden = 5 ' Anzahl der Anzeigen (dekaden)
Const Pulsdauer = 10000 ' Dauer eines Impulses
'Variablen 7 Segment Dekodierung
Dim Segment(dekaden) As Byte
Dim Zahl(dekaden) As Byte ' Array für die fertig berecheten Segmente
Dim Digit As Byte
Dim Adress As Integer
Config 1wire = Portd.6 ' Eingang Temperatur Sensor
'LED's in den Gradzeichen setzen
Config Porta = Output
Config Portb = Output
Porta.4 = 1 ' Led im Gradzeichen oben
Porta.3 = 1 ' Led im Gradzeichen unten
Portb.2 = 0 ' INT Eingang des PCF8574
'i2C Konfigurieren
Config Scl = Portc.0 ' Ports fuer I2C-Bus
Config Sda = Portc.1
I2cinit
'Slave adressen des PCF 8574 I/O IC
Const Adr_digit1 = &B1001110 ' Adresse Stelle 1
Const Adr_digit2 = &B1001100 ' &B1001110
Const Adr_digit3 = &B1001010 ' |||
Const Adr_digit4 = &B1001000 ' ||A0
' |A1
' A2
'Daten über I2C an die Anzeigen senden
Do
I2csend Adr_digit1 , &B01111111
I2csend Adr_digit2 , &B01111111
I2csend Adr_digit3 , &B01111111
I2csend Adr_digit4 , &B01111111
Loop
Vielen Dank und ein schönes Wochenende.
Gruß
Rici