Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 02 Mar 2003 05:54:15

Guest
Invité

Question d'un débutant en programmation

Salut a tous!
Je suis un débutant ds la prog en c et je voudrais d'abord remercier casioworld pour son excellent tutorial.
Seulement, en suivant ce tuto, g eu un problme pr afficher une bmp:
en utilisant la fonction disp_bmp de casio2.h de cette manière:
"disp_bmp(picture,0);", (où picture est une image codée par bmp2c), je n'obtient qu'une espèce de purée de pixels affichés à l'écran, rien a voir avec l'image initiale.
Pourtant, ça marche si j'utilise directement la fonction de cette manière:
asm{ mov ax,0
     shl ax,6
     add ax,0x1a20
     mov es,ax
     mov si,offset picture
     xor di,di
     mov cx,0x200
     cld
     rep movsw }
Pouvez vous me dire où est mon erreur, parceque je vois vraiment pas ce qui ne vas pas.
Merci d'avance!

 

#2 02 Mar 2003 06:15:43

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Question d'un débutant en programmation

connaissant casioworld ca doit venir du tuto  :ptdr:


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#3 02 Mar 2003 07:01:32

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Question d'un débutant en programmation

normalement ca doit marcher
enleve le mot clé offset, je pense que la lecture des données ne doit pas se faire au bon endroit (j'en suis pas sûr)


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#4 02 Mar 2003 08:00:59

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Question d'un débutant en programmation

"connaissant casioworld ca doit venir du tuto "
lol

Tu pourrais pas m'envoyer ton prog pour voir ou se trouve ton erreure. Car le soucis vient peut etre d'une erreure dans mon tuto !


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#5 02 Mar 2003 10:08:10

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Question d'un débutant en programmation

oui c'est le mot offset qui merde

Hors ligne

 

#6 02 Mar 2003 10:44:02

Guest
Invité

Re: Question d'un débutant en programmation

Je sais pas si c'est le mot offset qui merde car comme je vous l'ai déja dit, l'image s'affiche très bien si j'écris le code directement (voir plus haut).
Mais c'est très embettant de la réécrire à chaque fois et on peut normalement l'utiliser directement puisqu'elle est dans casio2.h

En gros le prog ça donne:
#include <stdio.h>
#include <conio.h>
#include <CASIO2.h>
BMPTabType picture = {0x0,...};    //image codée par bmp2c
int main()
{
clrscr();
disp_bmp(picture,0);                 //fonction include ds casio2.h qui m'affiche une purée de pixels roll
getch();
...                                           //le reste du prog

Estce que c'est l'appel de la fonction qui n'est pas fait correctement? Ou il faut que j'enlève le mot offset de la fonction dans casio2.h?

 

#7 02 Mar 2003 15:42:55

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Question d'un débutant en programmation

Je confirme, tu n'as qu'a supprimer le mot "offset" et ca marchera !
Comme quoi le probleme ne venait pas de mon tuto !
je vais ressortir une version du tuto avec la fonction corrigée !


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#8 02 Mar 2003 15:44:05

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Question d'un débutant en programmation

bin dsl !
ms ya des trucs que je capte pas parfois : quand vous sorter des tuto, prog, jeux etc vous essayé si ca marche des fois ?


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#9 03 Mar 2003 02:13:37

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Question d'un débutant en programmation

je t'explique la raison de ce probleme. J'ai fais le tuto avec casio2h qui foncytionnaot. SuperNA sort une version débugguée et je n'ai pas vérifié !
c'est tout !


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#10 03 Mar 2003 04:39:26

Guest
Invité

Re: Question d'un débutant en programmation

Ah ok...
Merci beaucoup! big_smile

 

#11 03 Mar 2003 04:41:57

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Question d'un débutant en programmation

Je pense que cela dépend comment tu as déclaré ta fonction :

Code:

void disp_bmp(void* picture,unsigned int page)
 {asm{ mov ax,0 
shl ax,6 
add ax,0x1a20 
mov es,ax 
mov si,picture 
xor di,di 
mov cx,0x200 
cld 
rep movsw }}

doit marcher !


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#12 03 Mar 2003 04:45:53

Guest
Invité

Re: Question d'un débutant en programmation

Excuse moi mais j'aime bien comprendre: Pourquoi void*?
Et en mettant ca pas besoin d'enlever le mot offset?

 

#13 03 Mar 2003 04:47:26

Guest
Invité

Re: Question d'un débutant en programmation

ah non excuse j'avais pas vu que t'avais enlevé offset

 

#14 03 Mar 2003 04:49:25

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Question d'un débutant en programmation

si car si tu mets offset ca prend l'adresse de picture et pas l'adresse pointée par picture
c différent.

void* c pour dire que n'importe quel type est supporté (char*, int*, ....)


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#15 03 Mar 2003 04:58:50

Guest
Invité

Re: Question d'un débutant en programmation

Ah d'accord...

 

#16 03 Mar 2003 05:21:43

Guest
Invité

Re: Question d'un débutant en programmation

Mais la fction que vous m'avez donné, c'est pour afficher l'image "picture", mais si je veux afficher n'importe quelle image sur n'importe quelle page(buffer), est ce que je fait comme ca?
...
image={...};
image2={...};
...
int main()
{   ...
     disp_bmp(image,0);  //afficher image sur page0
     ...
     disp_bmp(image2,2);  //afficher image2 sur page2
     ...
}
et avec comme fonction:
void disp_bmp(void* picture,unsigned int page)
{asm{ mov ax, page
shl ax,6
add ax,0x1a20
mov es,ax
mov si,picture
xor di,di
mov cx,0x200
cld
rep movsw }}  C'est bien ca?

 

#17 03 Mar 2003 07:54:30

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Question d'un débutant en programmation

oui c parfait


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#18 03 Mar 2003 10:22:21

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Question d'un débutant en programmation

Mais je te conseille pour déclarer tes images :
"unsigned char image1[1024]={ 0xFF,0x0, ... , 0xAE };"
Par exemple...
Ceci dit, si tu déclare tes images comme cela, je ne comprends pas pourquoi ca buggue avec la fonction usuelle et traditionnelle disp_bmp... Théoriquement il ne devrait y avoir aucun probleme


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#19 03 Mar 2003 11:56:55

Guest
Invité

Re: Question d'un débutant en programmation

Bah en fait je sais pas si ca a un rapport mais ds casio2.h, il y avait:

#define DATA_SIZE 1024
...
typedef unsigned char BMPTabType [DATA_SIZE];
... Et ensuite la fonction était:
void disp_bmp (BMPTabType BmpTab,int page)
asm{ mov ax,page
     shl ax,6
     add ax,0x1a20
... 
C'est peut-être une connerie ce que je dit mais vut que ca ressemble à ce que t'a marqué j'aimerais savoir si il y a quand même besoin de le mettre

 

#20 04 Mar 2003 08:24:50

Swifter
Programmeur Graph100
Lieu: Niort (79)
Date d'inscription: 06 Aug 2002
Messages: 980
Site web

Re: Question d'un débutant en programmation

Oui il faut le garder si tu veux que je marche sinon ton compilateur va te mettre des messages d'erreurs...
Par contre, tu peux enlever
#define DATA_SIZE 1024
mais il faut remplacer :
typedef unsigned char BMPTabType [DATA_SIZE];
par
typedef unsigned char BMPTabType [1024];


Swifter, avec un T, n'attrapes pas la poussière mais toutes les remarques débiles :mrgreen:
              ** Swifter68@hotmail.com **

Hors ligne

 

#21 04 Mar 2003 10:42:24

Guest
Invité

Re: Question d'un débutant en programmation

Ok.
Tien au fait j'ai autre chose à faire remarquer à casioworld pour son tutorial:
Qaund tu parles des fonctions graphiques, tu indique une ligne à rajouter pour avoir un repère plus naturel. Je sais pas si ca vien de la version de casio2.h que j'ai, mais sans rajouter la ligne, le repére part déja d'en haut à gauche.

 

#22 04 Mar 2003 11:01:45

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Question d'un débutant en programmation

typedef unsigned char BMPTabType [1024];

void disp_bmp (BMPTabType BmpTab,int page) ;

si tu mets ca, cela doit marcher avec offset car tu copies les 1024 octets pointés par ton image dans bmptab. Mais je ne te le conseil pas car tu fais une copie, et donc c plus lent et tu bouffes 1 Ko pour rien.


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#23 04 Mar 2003 11:26:40

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Question d'un débutant en programmation

ecoute, je te remercie de ton info. je vais modifer cela !
en fait j'ai fais le tuto avec des fonctions qui n'était celle de casio2.h puis quand je suis passé à casio2h je n'ai pas fait toute les modifes.

sinon, mon tuto t'aide bcp ?


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#24 06 Mar 2003 07:51:51

gui-yaum
Membre
Lieu: Lyon
Date d'inscription: 06 Mar 2003
Messages: 10

Re: Question d'un débutant en programmation

Et hop, je me suis enregistré au passage.
Pas de quoi pour les infos, mais je m'étonne que personne n'ai remarqué tt ca avant.
J'utilise un autre tuto pr apprendre le c, mais oui ton tuto me sert beaucoup pour ensuite adapter le programme à la graph100, et pour utiliser correctement les fonctions qui sont spécifiques.
Je commence juste, mais grace à  ton tuto g déja presque terminé une version de boxworld faite par moi même(c un de mes premiers progs en c alors faut pas s'attendre à qqchose d'exeptionnel) mais pour moi c déja pas mal et ca me change du basic!!!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr