J'ai conçu mon propre appareil de jeu portable basé sur un microcontrôleur AVR et un petit écran OLED.
J'ai commencé avec un écran monochrome 128x64 pixels et je peux facilement y dessiner à plus de 60 images par seconde.
Je l'ai récemment retravaillé pour utiliser un OLED RVB, 128x128 pixels sans vraiment trop réfléchir pour constater que je ne pouvais atteindre que 4 FPS. Après une réflexion et une refactorisation soigneuse, je peux obtenir jusqu'à 12 images par seconde si je ne me soucie pas trop de faire autre chose!
Ma question est - comment un appareil comme le GBA (Game Boy Advance) a-t-il atteint une fréquence d'images de près de 60 images par seconde? J'ai pensé à avoir un «processeur graphique» séparé mais j'ai réalisé que je serais toujours goulot d'étranglement en transférant les données d'affichage à cela.
Je me demandais également à propos de l'utilisation de l'interface parallèle 8 bits résiduelle que la plupart de ces écrans ont tendance à avoir, ce qui pourrait me permettre d'accélérer de 8 fois, sauf que les MCU modernes n'ont pas tendance à avoir des interfaces matérielles parallèles comme elles le font pour la série et le bit. frapper mangera probablement beaucoup de gain de vitesse.
Quelles autres options existent?
J'utilise actuellement un ATmega1284P connecté à un contrôleur OLED SSD1306 via USART-SPI. Voilà la version monochrome.
L'écran couleur était un SSD1351, non connecté à l'origine au SPI matériel. Je n'étais pas convaincu que cela ferait suffisamment de différence, c'est tout simplement trop lent dans l'ensemble
Je sais que je peux obtenir des MCU plus rapides, mais je veux savoir quelles autres options je pourrais explorer - le processeur GBA est beaucoup plus lent que mon 1284!