Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Gérard
Oled 128x64 piloté avec un PIC en Mikrobasic
Bonsoir pspic, et tout le forum,
Tu peux refaire la même chose en basic, ta juste à recopier ce qui est fait dans mon fichier code, et le traduire en basic.
Si tu ne comprends pas certaine ligne je peux les traduire on t’expliquant chaque détaille.
PS : content pour toi que ça fonction
A+
Tu peux refaire la même chose en basic, ta juste à recopier ce qui est fait dans mon fichier code, et le traduire en basic.
Si tu ne comprends pas certaine ligne je peux les traduire on t’expliquant chaque détaille.
PS : content pour toi que ça fonction
A+
Oled 128x64 piloté avec un PIC en Mikrobasic
Tu peux refaire la même chose en basic, ta juste à recopier ce qui est fait dans mon fichier code, et le traduire en basic.
Si tu ne comprends pas certaine ligne je peux les traduire on t’expliquant chaque détaille.
Bonjour Temps-x,
Ta proposition m'intéresse, car je n'ai pas encore réussi à afficher le moindre pixel en MikroBasic.
Merci pour ta persévérance.
J'ai testé ce code, mais ne fonctionne pas.
Code : Tout sélectionner
program TestOled2
'PIC 18F46K22, osc 16 MHz, librairie I2C
'SCL sur RC3 et SDA sur RC4
dim bc as byte
dim Soft_I2C_Scl as sbit at RC3_bit
Soft_I2C_Sda as sbit at RC4_bit
Soft_I2C_Scl_Direction as sbit at TRISC3_bit
Soft_I2C_Sda_Direction as sbit at TRISC4_bit
Const Tab1 as byte[23] = ($D5, $80,$A8,$3F,$D3,$00,$40,$8D,$14,$20,$00,$A1,$C8,$DA,$12,$81,$7F,$D9,$F1,$DB,$40,$A4,$A6)
'
'Main sub procedure
main:
I2C1_Init(100000) ' Init Soft I2C
delay_ms(1000)
I2C1_Start()
I2C1_Wr($78) 'Adresse module
I2C1_Wr($00) 'Mode commande
I2C1_Wr($AE) 'Eteindre l'écran
delay_ms(200)
for bc = 0 to 22
I2C1_Wr(Tab1[bc])
delay_ms(10)
next bc
Delay_ms(20)
I2C1_Wr($AF) 'Allumer l'écran
I2C1_Wr($40) 'Envoi donnée
I2C1_Stop()
end.
Pierre
Oled 128x64 piloté avec un PIC en Mikrobasic
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Oled 128x64 piloté avec un PIC en Mikrobasic
Oled 128x64 piloté avec un PIC en Mikrobasic
Bonjour,
Tu n'envoies pas de données après la commande 0x40. D'autre part je pense qu'il vaut mieux séparer init et affichage.
Essaie cela, il doit afficher quelque chose, peut être pas au bon endroit car les pages et colonnes ne sont pas sélectionnées.
Tu n'envoies pas de données après la commande 0x40. D'autre part je pense qu'il vaut mieux séparer init et affichage.
Essaie cela, il doit afficher quelque chose, peut être pas au bon endroit car les pages et colonnes ne sont pas sélectionnées.
Code : Tout sélectionner
main:
I2C1_Init(100000) ' Init Soft I2C
delay_ms(1000)
I2C1_Start()
I2C1_Wr($78) 'Adresse module
I2C1_Wr($00) 'Mode commande
I2C1_Wr($AE) 'Eteindre l'écran
delay_ms(200)
for bc = 0 to 22
I2C1_Wr(Tab1[bc])
delay_ms(10)
next bc
Delay_ms(20)
I2C1_Wr($AF) 'Allumer l'écran
I2C1_Stop()
delay_ms(1000)
I2C1_Start()
I2C1_Wr($78) 'Adresse module
I2C1_Wr($40) 'Envoi données
for bc = 0 to 7
I2C1_Wr($ff)
next bc
I2C1_Stop()
boucler ...
end
Oled 128x64 piloté avec un PIC en Mikrobasic
Bonjour,
Dans l'exemple de Temps-x qui fonctionne je trouve cette séquence 0xD5
Const Tab1 as byte[23] =
($D5, $80, $A8, $3F, $D3, $00, $40,$8D,
$14, $20, $00, $A1, $C8, $DA, $12, $81,
$7F, $D9, $F1, $DB, $40, $A4, $A6)
)
il me semble qu'il manque des données dans ta séquence d'init
Config_Ecran:
da 0xAE,0xD5,0x80,0xA8,0x3F,0xD3,0x00,0x40
da 0x8D,0x14,0x20,0x00,0xA1,0xC8,0xDA,0x12
da 0x81,0x7F,0xD9,0xF1,0xDB,0x40,0xA4,0xA6
da 0xAF,0x21,0x00,0x7F,0x22,0x00,0x07,0x2E
Dans l'exemple de Temps-x qui fonctionne je trouve cette séquence 0xD5
Const Tab1 as byte[23] =
($D5, $80, $A8, $3F, $D3, $00, $40,$8D,
$14, $20, $00, $A1, $C8, $DA, $12, $81,
$7F, $D9, $F1, $DB, $40, $A4, $A6)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Oled 128x64 piloté avec un PIC en Mikrobasic
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
bonsoir
Les explications des codes qui viens au départ de Temps-x
Ma config avec un 16f876 qui fonctionnent parfaitement et qui est la même que Temps-x (oled.asm)
Config_Ecran:
da 0xAE,0xD5,0x80,0xA8,0x3F,0xD3,0x00,0x40
da 0x8D,0x14,0x20,0x00,0xA1,0xC8,0xDA,0x12
da 0x81,0x7F,0xD9,0xF1,0xDB,0x40,0xA4,0xA6
da 0xAF,0x21,0x00,0x7F,0x22,0x00,0x07,0x2E
; Explication codage init
; 0xAE mettre hors fonction l'écran
; 0xD5 display clock div & param
; 0x80
; 0xA8 set multiplex & param
; 0x3
; 0xD3 set display offset & param
; 0x00
; 0x40 set start line
; 0x8D active l'élévation de tension pour l'écran
; 0x14 de 7 volts minimum à 15 vols maximum
; 0x20 sélection de la façon du balayage de l'écran méthode 1,
; 0x00 méthode 2, méthode 3 j'ai choisi la méthode 2
; 0xA1 segremap (A0/A1, flip horizontally)
; 0xC8 comscandec (C0/C8, flip vertically)
; 0xDA set compins () . . . . . (default)
; 0x12
; 0x81 contrast minimum 0x00 à un maximum de 0xFF
; 0x7F réglage au milieu de sa valeur
; 0xD9 set precharge
; 0xF1
; 0xDB set vcom detect
; 0x40
; 0xA4 display allon_resume . . (default)
; 0xA6 normal display . . . . . (default)
; 0xAF mettre l'écran en fonction
; 0x21 Dit à l'écran qu'on lui envoie les limites de colonnes
; 0x00 Valeur 1ere colonne
; 0x7F Valeur dernière colonne
; 0x22 Dit à l'écran qu'on lui envoie les limites des pages
; 0x00 Valeur de la première page
; 0x07 Valeur de la dernière page
; 0x2E désactive le défilement de l'écran
a+
Les explications des codes qui viens au départ de Temps-x
Ma config avec un 16f876 qui fonctionnent parfaitement et qui est la même que Temps-x (oled.asm)
Config_Ecran:
da 0xAE,0xD5,0x80,0xA8,0x3F,0xD3,0x00,0x40
da 0x8D,0x14,0x20,0x00,0xA1,0xC8,0xDA,0x12
da 0x81,0x7F,0xD9,0xF1,0xDB,0x40,0xA4,0xA6
da 0xAF,0x21,0x00,0x7F,0x22,0x00,0x07,0x2E
; Explication codage init
; 0xAE mettre hors fonction l'écran
; 0xD5 display clock div & param
; 0x80
; 0xA8 set multiplex & param
; 0x3
; 0xD3 set display offset & param
; 0x00
; 0x40 set start line
; 0x8D active l'élévation de tension pour l'écran
; 0x14 de 7 volts minimum à 15 vols maximum
; 0x20 sélection de la façon du balayage de l'écran méthode 1,
; 0x00 méthode 2, méthode 3 j'ai choisi la méthode 2
; 0xA1 segremap (A0/A1, flip horizontally)
; 0xC8 comscandec (C0/C8, flip vertically)
; 0xDA set compins () . . . . . (default)
; 0x12
; 0x81 contrast minimum 0x00 à un maximum de 0xFF
; 0x7F réglage au milieu de sa valeur
; 0xD9 set precharge
; 0xF1
; 0xDB set vcom detect
; 0x40
; 0xA4 display allon_resume . . (default)
; 0xA6 normal display . . . . . (default)
; 0xAF mettre l'écran en fonction
; 0x21 Dit à l'écran qu'on lui envoie les limites de colonnes
; 0x00 Valeur 1ere colonne
; 0x7F Valeur dernière colonne
; 0x22 Dit à l'écran qu'on lui envoie les limites des pages
; 0x00 Valeur de la première page
; 0x07 Valeur de la dernière page
; 0x2E désactive le défilement de l'écran
a+
Oled 128x64 piloté avec un PIC en Mikrobasic
Oled 128x64 piloté avec un PIC en Mikrobasic
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Oled 128x64 piloté avec un PIC en Mikrobasic
Retourner vers « Langage BASIC & PASCAL »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités