Atmega2560 i2C => IS31FL3731Board

Dirk

Administrator
Teammitglied
28 Jan 2007
4,326
159
63
Mittelhessen, Giessen
Sprachen
  1. ANSI C
  2. C++
  3. C#
  4. Java
  5. Kotlin
  6. Pascal
  7. Assembler
  8. PHP
Hallo zusammen,

ich habe mir kurz das Adafruit Beispiel für die Arduino Umgebung angeschaut ...
Kann es sein, dass du erst einmal das Function Register aufrufen musst, damit sich der Chip nicht im Soft-Shutdown oder ähnliches befindet?

Ja, könnte sein.
Es wird zunächst "aufgeweckt".

Ich habe einmal versucht, den Anfang in Bascom zu übersetzen. Vielleicht hilft dies weiter.

Dirk :ciao:




CodeBox BascomAVR
' #define ISSI_COMMANDREGISTER 0xFD
' #define ISSI_BANK_FUNCTIONREG 0x0B
' #define ISSI_REG_SHUTDOWN 0x0A

' shutdown
I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_COMMANDREGISTER
I2cwbyte ISSI_BANK_FUNCTIONREG
I2cstop

I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_REG_SHUTDOWN
I2cwbyte &H0
I2cstop


' delay 10ms

' out of shutdown
I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_COMMANDREGISTER
I2cwbyte ISSI_BANK_FUNCTIONREG
I2cstop

I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_REG_SHUTDOWN
I2cwbyte &H1
I2cstop

' picture mode
I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_COMMANDREGISTER
I2cwbyte ISSI_BANK_FUNCTIONREG
I2cstop

I2cstart
I2cwbyte ADDRESSE
I2cwbyte ISSI_REG_CONFIG
I2cwbyte ISSI_REG_CONFIG_PICTUREMODE
I2cstop

' ...
 

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo Dirk!

Deine Beispiele sind recht anschaulich.
Allerdings habe ich das Datenblatt anders verstanden, denn es steht da nichts von einem Restart wenn ich eine Write-Operation durchführe.

Ich würde zu Beginn mal folgendes ausprobieren:


CodeBox BascomAVR
I2cstart
I2cwbyte &HE8   'Chip-Adresse
I2cwbyte &FD     'Command Register
I2cwbyte &H0B   'Function Register
I2cwbyte &H00   'Configuration Register
I2cwbyte &B000_00_000   'Picture Mode & Start ab Frame 1
I2cstop

I2cstart
I2cwbyte &HE8   'Chip-Adresse
I2cwbyte &FD     'Command Register
I2cwbyte &H0B   'Function Register
I2cwbyte &H01   'Picture Display Register
I2cwbyte &H00   'Picture Frame 1 selected
I2cstop

I2cstart
I2cwbyte &HE8   'Chip-Adresse
I2cwbyte &FD     'Command Register
I2cwbyte &H0B   'Function Register
I2cwbyte &H0A   'Shutdown Register
I2cwbyte &H01   'Normal Operation
I2cstop

'Es müsste aber auch das automatische Incrementieren der Register funktionieren
I2cstart
I2cwbyte &HE8   'Chip-Adresse
I2cwbyte &FD     'Command Register
I2cwbyte &H0B   'Function Register
I2cwbyte &H02   'Auto Play Control Register 1
I2cwbyte &H00   'All Frames endlessplay
I2cwbyte &H00   'All Frames endlessplay für Auto Play Control Register 2
I2cstop



Wie es sich mit &H04 im Function Register verhält wenn man das Autoincrementieren verwendet weiß ich natürlich nicht.
Vielleicht schreibt man einfach ein &H00 und macht weiter.
Könnte aber natürlich auch sein, dass dieses Register übersprungen wird.

Können wir also nur hoffen, dass RoTo bald mal wieder Zeit findet dies alles mal auszuprobieren. :)

Grüße,
Cassio
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4,326
159
63
Mittelhessen, Giessen
Sprachen
  1. ANSI C
  2. C++
  3. C#
  4. Java
  5. Kotlin
  6. Pascal
  7. Assembler
  8. PHP
Hallo Cassio!
Allerdings habe ich das Datenblatt anders verstanden, denn es steht da nichts von einem Restart wenn ich eine Write-Operation durchführe.

Ja in das Datenblatt habe ich gar nicht reingeschaut und nur den Anfang vom Adafruit Arduino Source nach Bascom "übersetzt", in der Hoffnung, ihr könnt damit etwas anfangen oder dass es euch auf Ideen bringt ;)

Dirk :ciao:
 

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo Dirk!

Ach so.... das erklärt einiges. :)

Ich habe vorhin im Datenblatt auch noch zwei nette Hinweise im Kleingedruckten gefunden.

IS31FL3731_Notes-Register.jpg
Ich habe Note 6 so verstanden, dass man die Frame-Register erst initialisieren muss (also über das Function Register???), bevor man sie normal benutzen kann.

In Note 7 wird auf das &H04 Register eingegangen....
Demnach kann man das ruhig beschreiben.



Hier noch mal der WRITE-Ablauf:

IS31FL3731_I2C-Write.jpg



Erst folgt also das Anwählen des Command Registers:

IS31FL3731_Command-Register.jpg



Je nachdem anschließenden Byte wählt man das Frame-Register.....

IS31FL3731_Frame-Register.jpg

oder das Function Register.

IS31FL3731_Function-Register.jpg

Sollte doch eigentlich nicht so schwer sein.
Manchmal liegt es aber auch nur an einer Kleinigkeit....
kann mich da noch gut an die Adafruit-Siebensegmentanzeigen erinnern. ;)

Grüße,
Cassio
 

RoTo

Mitglied
18 Jul 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo Cassio, hallo Dirk,

erst mal DANKE euch beiden für euren Einsatz, aber ich Tappe wirklich im dunklen.

Ich habe jetzt mal das ausprobiert:


CodeBox BascomAVR

$regfile = "m2560def.dat"
$crystal = 16000000
$hwstack = 25
$swstack = 25
$framesize = 30


$lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
Config Scl = PortD.0                                        ' we need to provide the SCL pin name
Config Sda = PortD.1                                        ' we need to provide the SDA pin name

TWCR = &B00000100
Config Twi = 400000
'Twsr = 0                                                    ' Status und Prescaler Register
'Twbr = 12
I2cinit


'########################### Config LCD ########################
Config Lcd = 24 * 2 , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
Cls
Initlcd
Cursor Off                                                  'off Blink
cls
Locate 1 , 2 : Lcd "HALLO"
wait 2
Cls
 '######################### Variable ############################
Dim Ca As Byte , Cb As Byte , PWM As Byte

Const ADDRESSE = &HE8                                       '&HE8 Slave Busadresse
Const COMM_REG = &HFD                                       '&HFD - Befehlsregister
Const REG_CONFIG = &H00                                     'Frame 1 Register
Const FUNC_REG = &H0B

Ca = &H00                                                   'LED von 1 bis 8 alle an
Cb = &B1111_1111                                            'LED von 9 bis 16 alle an
PWM = 200
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



 I2cstart
 I2cwbyte &HE8                                               'Chip-Adresse
 I2cwbyte &HFD                                               'Command Register
 I2cwbyte &H0B                                               'Function Register
 I2cwbyte &H00                                               'Configuration Register
 I2cwbyte &B000_00_000                                       'Picture Mode & Start ab Frame 1
 I2cstop

 I2cstart
 I2cwbyte &HE8                                               'Chip-Adresse
 I2cwbyte &HFD                                               'Command Register
 I2cwbyte &H0B   'Function Register
 I2cwbyte &H01   'Picture Display Register
 I2cwbyte &H00   'Picture Frame 1 selected 
 I2cstop

 I2cstart
 I2cwbyte &HE8   'Chip-Adresse
 I2cwbyte &HFD                                               'Command Register
 I2cwbyte &H0B   'Function Register
 I2cwbyte &H0A   'Shutdown Register
 I2cwbyte &H01   'Normal Operation
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H00                                              'LED Control Register  CA1
 I2cwbyte &B100_0000
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H01                                              'LED Control Register  CA1
 I2cwbyte &B1000_0000
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H12
 I2cwbyte &B0000_0000
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H13                                              'LED Control Register  CA1
 I2cwbyte &B0000_0000
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H24
 I2cwbyte &B1111_1111
 I2cstop

 'waitms 25

 I2cstart
 I2cwbyte &HE8                                              '&HE8 Slave Busadresse
 I2cwbyte &HFD                                              '&B1110 1101 = &HFD - Befehlsregister
 I2cwbyte &H00                                              '&B0000 0000 = &H00 - Befehlsregister Page 1
 I2cwbyte &H2C                                              'LED Control Register  CA1
 I2cwbyte &B1111_1111
 I2cstop

 wait 2
End



Es ist einfach DUNKEL:angry::banghead:

Liebe Grüße
RoTo
 
Zuletzt bearbeitet:

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo RoTo!

Vielleicht solltest du das Deaktivieren des Softshutdowns als Erstes übertragen?

Hm.... können wir einen Hardwarefehler (Anschlussfehler, Leitungs- oder Kontaktfehler) auch wirklich ausschließen?

Hast du vielleicht mal einen kleinen Anschlussplan und ggf. ein Foto vom Aufbau?
Darf auch ruhig etwas wild oder nach "Kampfplatz" aussehen. ;)

Ach so....
stell bitte immer das vollständige Programm hier ein! :yes4:
Selbst wenn wir dann hier nur Teile der Verbesserung vermerken.

Grüße,
Cassio
 

RoTo

Mitglied
18 Jul 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo Cassio,

habe oben die Code korrigiert, bin leider nicht zu hause.
Fotos kann ich morgen machen, wenn ich da heim bin;).

Grüße,
RoTo
 

RoTo

Mitglied
18 Jul 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo Cassio,

neben bei eine Frage, geht es Markus gut? der wahr lange nicht mehr Aktiv hier.
Und wie versprochen das Anschlussbild als Foto.

Doch ich denke nicht das, es da dran liegt das ich falsch angeschlossen habe, die Daten werden über I²C Bus gesendet.
Anschluss.jpg

Viele Grüße
RoTo
 
Zuletzt bearbeitet:

dino03

Aktives Mitglied
27 Okt 2008
6,758
18
38
Sprachen
  1. BascomAVR
  2. Assembler
Hi RoTo,

neben bei eine Frage, geht es Markus gut? der wahr lange nicht mehr Aktiv hier.

... da sich auf seiner Homepage ab und zu mal was tut nehme ich mal an das es ihm gut geht.
Ich tippe mal auf ... viel zu tun ... Familie ... Arbeit ... usw. Das Übliche halt mit dem jeder so zu kämpfen hat.
Man setzt dann irgendwann ein paar andere Prioritäten und verteilt seine Zeit anders.

Gruß
Dino
 

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo RoTo!

Danke für das Foto vom Aufbau.
Sieht aber alles sehr übersichtlich und fehlerfrei aus. ;)

Du musst einfach mal etwas mit den Registern und den Anweisungen spielen.
Kann ja nicht sein, dass die Anzeige gar nichts macht. Irgendwann muss sie ja mal zucken. :D


Hier mal ein Testprogramm, mit dem ich beginnen würde.



CodeBox BascomAVR
$regfile = "m2560def.dat"
$crystal = 16000000
$hwstack = 25
$swstack = 25
$framesize = 30


$lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
Config Scl = PortD.0                                        ' we need to provide the SCL pin name
Config Sda = PortD.1                                        ' we need to provide the SDA pin name
I2cinit

'TWCR = &B00000100
Config Twi = 125000
'Twsr = 0                                                    ' Status und Prescaler Register
'Twbr = 12


Const ISSI = &HE8 'Chip-Adresse
Const CR = &HFD   'Command-Register
Const FR = &H0B   'Function-Register
Const Frame1 = &H00  'Frame 1

Dim Sb(57) as byte 'SendByte-Array (18x3=54 + 3 = 57)

Dim I as byte 'Indexzähler


'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Gosub Matrix_Init


Do

Gosub Bild1
Wait 3
Gosub Bild2
Wait 3

Loop

End


'#########################################
Matrix_Init:

Sb(1) = CR
Sb(2) = FR
Sb(3) = &H0A   'Shutdown-Register
Sb(4) = &H00   'Soft-Shutdown

I2csend ISSI , SB , 4


Sb(3) = &H00   'Configuration-Register
Sb(4) = &B000_00_000   'Picture Mode & Start ab Frame 1

I2csend ISSI , SB , 4


Sb(3) = &H01   'Picture Display Register
Sb(4) = &H00   'Picture Frame 1 selected

I2csend ISSI , SB , 4


Sb(3) = &H0A   'Shutdown-Register
Sb(4) = &H01   'Normal Operation

I2csend ISSI , SB , 4

Return


'#########################################
Bild1:

Sb(2) = Frame1
Sb(3) = &H00   'LED-Register

Sb(4) = &HAA    'DATA  C1-1 bis C1-8
Sb(5) = &H55    'DATA  C1-9 bis C1-16
Sb(6) = &HAA    'DATA  C2-1 bis C2-8
Sb(7) = &H55    'DATA  C2-9 bis C2-16
Sb(8) = &HAA    'DATA  C3-1 bis C3-8
Sb(9) = &H55    'DATA  C3-9 bis C3-16
Sb(10) = &HAA    'DATA  C4-1 bis C4-8
Sb(11) = &H55    'DATA  C4-9 bis C4-16

I2csend ISSI , SB , 11

Return


'#########################################
Bild2:

Sb(2) = Frame1
Sb(3) = &H00   'LED-Register

Sb(4) = &H55    'DATA  C1-1 bis C1-8
Sb(5) = &HAA    'DATA  C1-9 bis C1-16
Sb(6) = &H55    'DATA  C2-1 bis C2-8
Sb(7) = &HAA    'DATA  C2-9 bis C2-16
Sb(8) = &H55    'DATA  C3-1 bis C3-8
Sb(9) = &HAA    'DATA  C3-9 bis C3-16
Sb(10) = &H55    'DATA  C4-1 bis C4-8
Sb(11) = &HAA    'DATA  C4-9 bis C4-16

I2csend ISSI , SB , 11

Return




Ist letztlich nicht viel anders als deines. ;)
Probiere es einfach mal und nimm es ggf. als Ausgangsbasis.


Grüße,
Cassio
 
Zuletzt bearbeitet:

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo RoTo!

Nur mal so zur Info für mich und andere....

Geht es hier eigentlich noch weiter? :hmmmm:
Läuft die Anzeige inzwischen.....
und wenn Ja, mit welchem INIT und Testprogramm?


Grüße und guten Rutsch ins neue Jahr :ciao:
Cassio
 

RoTo

Mitglied
18 Jul 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo an alle hier im Forum,
Cassio ich habe es geschafft:trytofly:. Danke das du mir so SEHR geholfen hast :)
Den Ausschlagenden Tipp hat der Dirk geliefert in dem Beitrag hier 21, was Register betrifft :pleasantry:
Erst ein mal schnell das Video, Rest im Neuen Jahr.

Ich wünsche euch allen einen guten rutsch in das Neue Jahr 2017.

Gruß
RoTo
 

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo RoTo!

Ich hoffe, du bist gut ins neue Jahr gekommen!

Wie ich lesen konnte, kannst du inzwischen Erfolge vermelden und hast die Ansteuerung hinbekommen! :good2:

Da warte ich doch gern mal auf die Veröffentlichung des Videos....
und dem BASCOM-Code. :)

Wie gut das Dirk dir den entsprechenden Hinweis geben konnte, oder er dich auf die richtige Idee gebracht hat.

Dann lass uns jetzt aber mit der "Auflösung" nicht zu lange warten. ;)


Grüße,
Cassio
 

RoTo

Mitglied
18 Jul 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo Cassio,
Ich hoffe, du bist auch gut ins neue Jahr gekommen!

Sorry das ich nicht gleich Antworte auf deine Posting,
musste leider mal wieder Auswärts arbeiten.

So nun zum Thema "Auflösung".

Hatte leide nicht viel machen können, aber
das was ich versucht hatte ist schon Faszinierend, (für mich zumindest)

Hier die BASCOM Code:


CodeBox BascomAVR
$regfile = "m2560def.dat"
$crystal = 16000000
$hwstack = 60
$swstack = 60
$framesize = 90


$lib "i2c.lib"                                              ' we do not use software emulated I2C but the TWI
Config Scl = PortD.0                                        ' we need to provide the SCL pin name
Config Sda = PortD.1                                        ' we need to provide the SDA pin name
Config Twi = 400000
I2cinit

Const ISSI = &HE8                                           'Chip-Adresse
Const CR = &HFD                                             'Command-Register
Const FR = &H0B                                             'Function-Register
Const Frame1 = &H00                                         'Frame 1

Dim Sb(148) as byte                                         'SendByte-Array (18x3=54 + 3 = 57)  + Einzelne  PWM Register
Dim I as byte                                               'Indexzähler
Dim PWM as byte
Dim b as bit
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Gosub Matrix_Init
Gosub Loeschen
wait 1

PWM = &HFF
Gosub Pwm_
'set b

Do

'  if b = 1 then
'     PWM = PWM + 5
'     if pwm = 255 then toggle b
'     Gosub Pwm_
'  end if

'  if b = 0 then
'     PWM = PWM - 5
'     if pwm = 5 then toggle b
'    Gosub Pwm_
'  end if

  Gosub Bild1
  Waitms 100
  Gosub Bild2
  Waitms 100
  Gosub Bild3
  Waitms 100
  Gosub Bild4
  Waitms 100
Loop
End


'************************** Ship Init.****************************
Matrix_Init:

Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0A                                                'Shutdown-Register
Sb(2) = &H00                                                'Shutdown Mode
I2csend ISSI , SB , 2
waitms 10

Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0A                                                'Shutdown-Register
Sb(2) = &H01                                                'Normal Operation
I2csend ISSI , SB , 2


Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H01                                                'Picture Display Register
Sb(2) = &H00                                                'Picture Frame 1 selected
I2csend ISSI , SB , 2
'**************************************************************

Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H06                                                'Audio Synch.-Register
Sb(2) = &H01
I2csend ISSI , SB , 2
'Disabel &H00 reine Bild Modus oder Enabel &H01 um Audio Eingang (Audio Pin.)  mit zu nutzen.  (*)
' (*) Hatte man zuvor ein Muster in einen von 8 Ausgewählten wie hier ( Frame 1 Register ) übertragen,
'      so wird es für die Audio-Visualisierung genutzt.
'**************************************************************
Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H00                                                'Configuration-Register
Sb(2) = &B000_00_000
I2csend ISSI , SB , 2
'Die Konfiguration Registr setzt Betriebszustäne des IS31FL3731
'Sb(2) = &B000_00_000
'                         |,|   |,|,|___>  Picture Modus & Start: mit Auswahl von Frame 1 =000  bis Frame 8 =111
'                         |,|_______> Automatische Einzelbildwiedergabe Modus, Enabel (1) / Disabel ( 0 )
'                         |________>  Audio -Wiedergabe-Modus,  Enabel (1) / Disabel ( 0 )
'**************************************************************
Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0B                                                'AGC Control Register
Sb(2) = &B000_01_010
I2csend ISSI , SB , 4
' Sb(2) =&B000_00_000
'                         |,|   |,|,|__ > Audio-Signalverstärkung ( AGC ) einstellbar von 0dB ( 000 ) bis 21dB ( 111 )
'                         |,|_______> Audio-Signalverstärkung ( AGC ) Enabel (1) / Disabel ( 0 )
'                         |________ > Audio- Modus (AGCM) Fast Modus (1) / Slow Modus( 0 )
'**************************************************************
Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0C                                                'Audio-ADC Rate Register
Sb(2) = &B1111_1111                                         'Das Audio-ADC Abtastrate des Eingangssignals
I2csend ISSI , SB , 2                                       'in Audio Frame-Play-Modus

Return


PWM_:
'********** PWM Einstellung für einzelne LED's  24h bis B3h*************
Sb(1) = CR
Sb(2) = Frame1
I2csend ISSI , SB , 2


for i = 1 to 146
  if i = 1 Then
     Sb(i) = &H24                                           'PWM   Register  Matrix A
   else
     Sb(i) = PWM
  end if
next i
I2csend ISSI , SB , i
return


'********************* LED-Register Frame 1 *********************
Bild1:

Sb(1) = CR
Sb(2) = Frame1
I2csend ISSI , SB , 2

Sb(1) = &H00                                                'LED-Register

Sb(2) = &H00                                                'DATA  C1-1 bis C1-8
Sb(3) = &H00                                                'DATA  C1-9 bis C1-16
Sb(4) = &H80                                                'DATA  C2-1 bis C2-8
Sb(5) = &H00                                                'DATA  C2-9 bis C2-16
Sb(6) = &H83                                                'DATA  C3-1 bis C3-8
Sb(7) = &H41                                                'DATA  C3-9 bis C3-16
Sb(8) = &H8F                                                'DATA  C4-1 bis C4-8
Sb(9) = &HC3                                                'DATA  C4-9 bis C4-16
Sb(10) = &HCF                                               'DATA  C5-1 bis C5-8
Sb(11) = &HE7                                               'DATA  C5-9 bis C5-16
Sb(12) = &HDF                                               'DATA  C6-1 bis C6-8
Sb(13) = &HF7                                               'DATA  C6-9 bis C6-16
Sb(14) = &HFF                                               'DATA  C7-1 bis C7-8
Sb(15) = &HFF                                               'DATA  C7-9 bis C7-16
Sb(16) = &HFF                                               'DATA  C8-1 bis C8-8
Sb(17) = &HFF                                               'DATA  C8-9 bis C8-16
Sb(18) = &HFF                                               'DATA  C9-1 bis C9-8
Sb(19) = &HFF                                               'DATA  C9-9 bis C9-16
I2csend ISSI , SB , 19

Return

Bild2:

Sb(1) = CR
Sb(2) = Frame1                                              'LED-Register
I2csend ISSI , SB , 2

Sb(1) = &H00
Sb(2) = &H00                                                'DATA  C1-1 bis C1-8
Sb(3) = &H00                                                'DATA  C1-9 bis C1-16
Sb(4) = &H40                                                'DATA  C2-1 bis C2-8
Sb(5) = &H04                                                'DATA  C2-9 bis C2-16
Sb(6) = &H40                                                'DATA  C3-1 bis C3-8
Sb(7) = &H45                                                'DATA  C3-9 bis C3-16
Sb(8) = &HE2                                                'DATA  C4-1 bis C4-8
Sb(9) = &HCF                                                'DATA  C4-9 bis C4-16
Sb(10) = &HE3                                               'DATA  C5-1 bis C5-8
Sb(11) = &HEF                                               'DATA  C5-9 bis C5-16
Sb(12) = &HF7                                               'DATA  C6-1 bis C6-8
Sb(13) = &HFF                                               'DATA  C6-9 bis C6-16
Sb(14) = &HF7                                               'DATA  C7-1 bis C7-8
Sb(15) = &HFF                                               'DATA  C7-9 bis C7-16
Sb(16) = &HFF                                               'DATA  C8-1 bis C8-8
Sb(17) = &HFF                                               'DATA  C8-9 bis C8-16
Sb(18) = &HFF                                               'DATA  C9-1 bis C9-8
Sb(19) = &HFF                                               'DATA  C9-9 bis C9-16

I2csend ISSI , SB , 19

Return

Bild3:

Sb(1) = CR
Sb(2) = Frame1                                              'LED-Register
I2csend ISSI , SB , 2

Sb(1) = &H00
Sb(2) = &H00                                                'DATA  C1-1 bis C1-8
Sb(3) = &H00                                                'DATA  C1-9 bis C1-16
Sb(4) = &H80                                                'DATA  C2-1 bis C2-8
Sb(5) = &H00                                                'DATA  C2-9 bis C2-16
Sb(6) = &H81                                                'DATA  C3-1 bis C3-8
Sb(7) = &H00                                                'DATA  C3-9 bis C3-16
Sb(8) = &HCB                                                'DATA  C4-1 bis C4-8
Sb(9) = &H9A                                                'DATA  C4-9 bis C4-16
Sb(10) = &HEF                                               'DATA  C5-1 bis C5-8
Sb(11) = &HFA                                               'DATA  C5-9 bis C5-16
Sb(12) = &HFF                                               'DATA  C6-1 bis C6-8
Sb(13) = &HFE                                               'DATA  C6-9 bis C6-16
Sb(14) = &HFF                                               'DATA  C7-1 bis C7-8
Sb(15) = &HFE                                               'DATA  C7-9 bis C7-16
Sb(16) = &HFF                                               'DATA  C8-1 bis C8-8
Sb(17) = &HFF                                               'DATA  C8-9 bis C8-16
Sb(18) = &HFF                                               'DATA  C9-1 bis C9-8
Sb(19) = &HFF                                               'DATA  C9-9 bis C9-16

I2csend ISSI , SB , 19

Return

Bild4:

Sb(1) = CR
Sb(2) = Frame1                                              'LED-Register
I2csend ISSI , SB , 2

Sb(1) = &H00
Sb(2) = &H00                                                'DATA  C1-1 bis C1-8
Sb(3) = &H00                                                'DATA  C1-9 bis C1-16
Sb(4) = &H00                                                'DATA  C2-1 bis C2-8
Sb(5) = &H00                                                'DATA  C2-9 bis C2-16
Sb(6) = &H00                                                'DATA  C3-1 bis C3-8
Sb(7) = &H20                                                'DATA  C3-9 bis C3-16
Sb(8) = &H40                                                'DATA  C4-1 bis C4-8
Sb(9) = &H39                                                'DATA  C4-9 bis C4-16
Sb(10) = &H64                                               'DATA  C5-1 bis C5-8
Sb(11) = &H79                                               'DATA  C5-9 bis C5-16
Sb(12) = &H7E                                               'DATA  C6-1 bis C6-8
Sb(13) = &HFF                                               'DATA  C6-9 bis C6-16
Sb(14) = &HFF                                               'DATA  C7-1 bis C7-8
Sb(15) = &HFF                                               'DATA  C7-9 bis C7-16
Sb(16) = &HFF                                               'DATA  C8-1 bis C8-8
Sb(17) = &HFF                                               'DATA  C8-9 bis C8-16
Sb(18) = &HFF                                               'DATA  C9-1 bis C9-8
Sb(19) = &HFF                                               'DATA  C9-9 bis C9-16

I2csend ISSI , SB , 19

Return

Loeschen:

Sb(1) = CR
Sb(2) = Frame1
I2csend ISSI , SB , 2

Sb(1) = &H00                                                'LED-Register
Sb(2) = &H00                                                'DATA  C1-1 bis C1-8
Sb(3) = &H00                                                'DATA  C1-9 bis C1-16
Sb(4) = &H00                                                'DATA  C2-1 bis C2-8
Sb(5) = &H00                                                'DATA  C2-9 bis C2-16
Sb(6) = &H00                                                'DATA  C3-1 bis C3-8
Sb(7) = &H00                                                'DATA  C3-9 bis C3-16
Sb(8) = &H00                                                'DATA  C4-1 bis C4-8
Sb(9) = &H00                                                'DATA  C4-9 bis C4-16
Sb(10) = &H00                                               'DATA  C5-1 bis C5-8
Sb(11) = &H00                                               'DATA  C5-9 bis C5-16
Sb(12) = &H00                                               'DATA  C6-1 bis C6-8
Sb(13) = &H00                                               'DATA  C6-9 bis C6-16
Sb(14) = &H00                                               'DATA  C7-1 bis C7-8
Sb(15) = &H00                                               'DATA  C7-9 bis C7-16
Sb(16) = &H00                                               'DATA  C8-1 bis C8-8
Sb(17) = &H00                                               'DATA  C8-9 bis C8-16
Sb(18) = &H00                                               'DATA  C9-1 bis C9-8
Sb(19) = &H00                                               'DATA  C9-9 bis C9-16
I2csend ISSI , SB , 19

Return


Das beschreiben vom IS31Fl3731:


CodeBox BascomAVR
'#########################################
Matrix_Init:

Sb(1) = CR
Sb(2) = FR
Sb(3) = &H0A   'Shutdown-Register
Sb(4) = &H00   'Soft-Shutdown

I2csend ISSI , SB , 4


Wenn ich so zu Initialisieren versuchte, hatte ich keine Reaktion.
Also schaute ich mir das, was der Dirk vorgeschlagen hatte.

So geht es:


CodeBox BascomAVR
Matrix_Init:

Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0A                                                'Shutdown-Register
Sb(2) = &H00                                                'Shutdown Mode
I2csend ISSI , SB , 2
waitms 10

Sb(1) = CR
Sb(2) = FR
I2csend ISSI , SB , 2
Sb(1) = &H0A                                                'Shutdown-Register
Sb(2) = &H01                                                'Normal Operation
I2csend ISSI , SB , 2


Da du ja so scharf bist was Audio betrifft, habe ich
so ein kleine Demonstration als Video;)

Ich habe so zusagen, Spektrum Analyzer mit festen vier Bildern nachgebildet.
In der Do....Loop schleife werden einzelne Bilder in das Frame1 übertrage.
Dazu muss Audio Modus Aktivieren werden im Register H06.

Und so sieht es aus.


Ich habe die Bilder mit Hilfe meinen Excel Sheet erstellt.

Habe mir das bischen VBA Kenntnisse zunutze gemacht,
um Bilder, Buchstaben z.b Data: zu füllen:).

Falls jemand Interesse hat, unten die Datei.

Im großen und ganzen war das schon.

Mit einzelnen Register muss jeder selber Ausprobieren.

Gruß
RoTo
 

Anhänge

  • ISSI.zip
    291.3 KB · Aufrufe: 2

Cassio

Aktives Mitglied
29 Okt 2008
4,027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo RoTo!

Gratuliere! :party:

Genauso soll es doch sein!
Aus den Hinweisen, Ideen und Vorschlägen kommt man am Ende zur Lösung! :)

Damit hast du doch jetzt eine gute Ausgangsbasis, um etwas interessantes daraus zu machen.
Das Video sieht zumindest schon mal vielversprechend aus.

Dann wünsche ich dir jetzt schon mal viel Spaß und genug Freizeit dafür. ;)

Grüße,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)