Gamoover

[move]Le staff Gamoover vous souhaite la bienvenue ;)

Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - spectroman

#1857
Arcade dédiée vintage de 71 à 89 / WIP space invaders MIDWAY
Dimanche 06 Avril 2014, 08:33:15 AM
J'ai poncé l'apprêt et refais une passe d'enduit





J'ai depuis poncé l'enduit et remis deux autres couches d'apprêt (mais j'ai pas de photos).
#1858
D'abords bravo tilowil.

Oui little_rabbit, c'est que je voulais dire mais on a écrit la réponse au même moment. <:)

Citation de: tilowil le Samedi 05 Avril 2014, 20:15:22 PM
CsnPin, ClkPin et DataPin, sont des constantes qui ne doivent pas bouger durant l'execution du programme, car elles correspondent aux pin de sortie de l'Arduino, CsnPin (pin du Chip Select), ClkPin (pin du Clock) et DataPin(pin du Data in). Mon arduino a un ATmega2580 (Arduino Mega2560)
ca dois marcher si tu fais :


#define CsnPin 10    // Chip select
#define ClkPin 11    // Serial Clock
#define DataPin 12   // Serial Data


Citation de: tilowil le Samedi 05 Avril 2014, 20:15:22 PM
Quelle pile ? je défini un tableau qui contient chaque colonne du vu-mètre. Je peux virer oldy[] dont je ne me sert plus.

La mémoire se sépare en deux parties :
- une pour les variables globale
- une pour la pile et le tas (stack et heap)

exemple pour un cpu de 16K de RAM:

0x0000...0x0102 : variables globales, statiques
0x0103 => début du TAS
.....
0x3fff => début de la pile (chaque élément mis fait décroitre la pile)

Les allocations statiques, variables globales et statiques se font dans la première partie.
Les allocations dynamiques malloc, new se font sur le tas.
Les allocation des variables locales et des paramètres (si on dépasse le nombre de registres dédiés) se font sur la pile.

Le problème quand tu alloue beaucoup d'octet (c'est relatif) sur la pile, c'est que tu risque des problèmes à l'exécution.

Du genre quand je rajoute ce bout de code ça marche plus, quand je l'enlève ça remarche. Ou si j'enlève l'optimisation pour déboger plus facilement, ça marche plus. Du coup tu perds des
heures avant comprendre que le problème c'est pas le bout de code ou le compilateur, mais un problème de pile.

Quand tu dois allouer pas mal de donnés sur des petits micros, favorise les allocations statiques et dynamiques (en début de programme si possible, et sans free et delete).

Bon après je chipote, ton programme marche c'est la le but, donc je :fleche:



#1859


const byte CsnPin = 10;    // Chip select
const byte ClkPin = 11;    // Serial Clock
const byte DataPin = 12;   // Serial Data

byte buffer[40];          // Screen buffer (Nb. de modules * 8)
AS1107 matrix(CsnPin, ClkPin, DataPin);

j'ai jamais fait de c++, mais je suis un gros radin avec la RAM.

const mets les données en zone Read only. Mais comme sur un atmega le cpu ne peut pas lire des données en flash (sauf avec des fonctions spéciales), const ne sert presque à rien, ça reste des données en RAM.

tu peux pas faire un define pour CsnPin....?


void Egaliser()
{
// definition des positions des colonnes
int colx[]= {0,4,10,16,22,28,34};
// definition des largeurs des colonnes
int larg[]= {2,4,4,4,4,4,4};
// definition des hauteurs des colonnes
int coly[]= {7,7,7,7,7,7,7};
// définition des variable de sauvegardes
int oldy[]={0,0,0,0,0,0,0};


64 octets sur la pile, assassin. >:D

Citation
Merci pour vos messages, votre aide.
@ petit lapin : "Alors heureux ?"  :D :D :D
@ spectroman : Tu te rends compte que tous ça c'est grâce à toi :)
non c'est toi qui a fait tout le boulot :D
#1860
Guncabs / Mad Dog McCree (et plus) depuis une Drug Wars
Jeudi 03 Avril 2014, 09:29:31 AM
Heureusement que j'ai garder mon vieux genlock GVP. Il pourra me resservir un jour :-)=

Une question, le lecteur LD est bien piloté par le port série?
#1861
super, ça prend forme.

c'est quoi le bug que l'on voit sur les colonnes 1 & 5 de la deuxième matrice?

c'est un problème de câblage?
#1862
En bonus tu peux :
1) lui faire des touches capacitives pour choisir les animations de l'écran (Je peux t'envoyer un pcb de touches à découper).
2) lui faire un ampli audio avec une sortie PWM (j'ai déjà fait des ultrasons à 40KHz, super propre avec un atxmega)

a+
#1863
CitationBon, y en a d'autres qui en ont moins Cheesy, comme ici...

no comment :D


Apparemment, vu le format de la matrice, tu fais celui de thomas.

j'adore cette vidéo de la construction d'une réplique du casque de guy man :



#1864
vas y ponce ^-^
#1865
Donc en résumé :
Si tu allume très peu de LED ça marche.
Si tu en allume une dizaine par matrice ca marche plus.

Il faut que tu mettes à coté de chaque Max7221 un 10µF et un 100nF. C'est un régulateur PWM, il faut vraiment un découplage a coté de chaque circuit.

Si après, ça fonctionne toujours pas :
Qu'est ce qu'il se passe si tu mets RSET à 40KOhm ou plus?
Est ce que tu arrive à allumer toutes les LEDs d'une matrice?

#1866
super projet.

Citationle Maxim Max7219, le Max7221 et l'Austria microSystem AS1107
tu as choisis lequel?

Citationmasse commune ou pas
La masse commune est obligatoire entre tes alimentations.

CitationPourtant j'ai mis 2 condensateurs entre le +5 et la masse pour filtrer
Il te faut aussi plusieurs condensateurs juste a coté de chaque Max7219.


as tu un schéma et des photos de ton montage?
#1867
Vos Roadtrips ! / [Teaser + RT] RT au pays des Super Héros
Vendredi 28 Mars 2014, 17:06:32 PM
gagné
#1868
bravo :-)=

J'aurai bien aimé te voir faire la manip. >:(
#1869
Ils ont essayé ce fichier 713jae_m48t58y.35d?

C'est ce lui utilisé par mame http://mamedev.org/source/src/mame/drivers/nwk-tr.c.html (cf. ligne 880)
#1870
c'est cool, t'as bientôt fini, elle est belle  :-)=.

madame est d'accord pour la monter dans la maison?
#1871
Vos Roadtrips ! / Rt au pays des pruneaux d Agen
Mardi 25 Mars 2014, 17:43:59 PM
why not :D
#1872
Flippers / [WIP] Bally Freedom
Lundi 24 Mars 2014, 22:23:26 PM
oh les glandes, pour la peine un autre Freedom (mort aussi :'().