Connexion Nokia 3310 LCD USB utilisant AVR (5 / 9 étapes)

Étape 5: Comprendre le code USB

C’est là le plaisir commence!

Si vous êtes venu à ce jour, vous devriez avoir un écran qui dit « Afficher initialisé » lorsque vous mettez l’appareil.

Si vous ne l’avez pas déjà fait, téléchargez le code source attaché à cette instructable, et nous devrons regarder de plus près sur la manière dont l’AVR communique avec l’écran et l’ordinateur.

Si vous n’avez jamais travaillé avec V-USB avant, il peut être très déroutant au début. Au moins, c’était pour moi. Faites défiler jusqu'à la fonction usbFunctionSetup et nous aurons un examen approfondi sur la façon dont il fonctionne réellement. Il s’agit de la seule fonction que vous avez besoin de soin sur la modification en dehors de la fonction principale.

usbFunctionSetup est la fonction où vous traitez toutes les données que j’ai envoyé au microcontrôleur via le port USB. Si vous remarquez les instructions IF, ils ont tous vérifient un numéro spécifique à la variable rq -> bRequest . Ce i où sont stockés les codes de la demande. Des codes de demande, vous pouvez considérer comme des commandes. Le logiciel hôte, nous avons une fonction comme ceci : SendData (int demande, données), la valeur que vous mettez dans le paramètre de demande sera transférée au microcontrôleur et stockée dans la rq -> bRequest variable, et vous utilisez ce code demande de faire des choses différentes dans l’usbFunctionSetup.

Je ne font qu’ajouter 6 codes de demande, mais si vous voulez faire un 7e demander code simplement tapez ceci dans un endroit dans la fonction usbFunctionSetup :

Si la demande est 7
si (rq -> bRequest == 7) {/ / commande 7 - SEND_MYCOMMAND
Faire mon code
}

Si vous appelez maintenant la fonction SendData comme ceci : SendData (7, 0) ;
L’instruction IF, que vous venez de créer s’exécute.

Le 2ème paramètre dans la fonction SendData est les données réelles que vous envoyez au microcontrôleur. Ce nombre sera stocké dans le struct rq -> wValue . Il s’agit d’un mot (2 octets), mais si vous voulez seulement utiliser 1 des 2 octets stockés ici, vous pouvez le faire en utilisant le tableau d’octets, comme ceci : rq -> wValue.bytes[0]. Si vous ne souhaitez pas utiliser le mot entier, vous pouvez y accéder comme ceci : rq -> wValue.word. Notez que vous devez utiliser un unsigned int si vous souhaitez utiliser le mot entier.

Vous devriez mettre des fonctions avancées qui prennent beaucoup de temps à faire à l’extérieur de la fonction usbFunctionSetup et à la place de laisser la boucle principale les exécuter. Si vous les avez dans l’usbFunctionSetup et ils utilisent beaucoup de temps pour terminer (50ms), vous risquez de perdre la connexion USB à l’ordinateur. J’ai choisi de les faire dans l’usbFunctionSetup, parce que l’écriture à l’écran est beaucoup plus rapide que l’USB (en fait, nous écrivons un stable 1, 33Mbit/s à l’écran et l’affichage prend en charge jusqu'à 4Mbits/s) donc je ne risque pas de perdre la connexion en prenant trop de temps.

Le reste du code doit être placé en commentaire assez pour que vous compreniez. Si quelque chose n’est pas clair, faites le moi savoir et je vais essayer d’effacer des choses pour vous.

Articles Liés

Récupération d’un NOKIA 3310 LCD et l’utiliser avec Arduino

Récupération d’un NOKIA 3310 LCD et l’utiliser avec Arduino

Cette instructable raconte comment extraire l'écran LCD de défaut pratique Nokia 3310 et à le modifier pour une utilisation avec Arduino.J'ai eu un défaut de vieux Nokia 3310 maniable. Il n'était pas charger la batterie. J'ai voulu jeter, mais il m'e
Graphiques sur Nokia 5110 Lcd en utilisant Arduino

Graphiques sur Nokia 5110 Lcd en utilisant Arduino

Dans ce court métrage instructable je vais displ quelques graphiques sur Nokia 5110 LCD utilisation ARDUINO UNO R3 ce qui est très utile pour les débutants du Voici une vidéo de test.Étape 1: Matériaux requis Écran LCD Nokia 5510Carte ArduinoFils de
Enregistreur d’accélération de Nokia 3310

Enregistreur d’accélération de Nokia 3310

comment faire un journal de l'accélération dans un téléphone cellulaire de Nokia 3310.Je vais l'utiliser pour mesurer les forces sur des montagnes russes:)Étape 1: Les outils dont vous avez besoinCertains outils que vous pourriez avoir besoin :Nokia
Lecture vidéo sur nokia couleur LCD utilisant un ATmega32

Lecture vidéo sur nokia couleur LCD utilisant un ATmega32

SalutJe vais présenter mon nouveau lecteur vidéo faite en utilisant un atmega32 microcontrôleur et nokia couleur LCD. J'ai reçu un 65K couleurs LCD d'un vieux portable nokia 6030.  J'ai soudé directement 10 fil mince coper émaillé de la zone de 0,5 c
Comment utiliser Nokia 5110 LCD avec Arduino ?

Comment utiliser Nokia 5110 LCD avec Arduino ?

Aujourd'hui, je vais vous montrer comment utiliser l'affichage du Nokia 5110 avec cartes Arduino avec ces étapes faciles.La nécessité liste :1. Arduino UNO (avec câble)2. Nokia 5110 LCD (avec câbles minuscules)Étape 1: Les connexionsSuivre les connex
Affichage direct lectures du capteur Arduino sur un Nokia 5110 LCD

Affichage direct lectures du capteur Arduino sur un Nokia 5110 LCD

si vous avez déjà travaillé avec arduino, vous avez probablement voulu pour afficher les lectures du capteur.En utilisant le serial monitor est parfaitement bien, mais étant le badass de l'arduino que vous deviennent rapidement, probablement souhaité
Nokia 5110 LCD via Lady Ada

Nokia 5110 LCD via Lady Ada

Dans un précédent Instructable, situé ici, je vous ai enseigné comment associer un Nokia 5110 LCD vraiment rapidement.Le code qui fait courir n'était pas cependant très élégant.Lady Ada a un tutoriel aussi bien, mais je n'ai jamais pu il câblé correc
Moniteur de batterie maison utilisant AVR

Moniteur de batterie maison utilisant AVR

les gars,Je veux partager mon expérience avec diviseur de tension, ADC et AVRMoniteur de batterie maison utilisant AVRC' est assez simple le capteur sont seulement deux résistances et une diode zener avec capasitor, je ne les achète, je l'ai trouvé d
Arduino - compteur de température du Nokia 5110 LCD avec le DS18B20

Arduino - compteur de température du Nokia 5110 LCD avec le DS18B20

Salut tout le monde! J'ai fait un mètre de la température avec un Nokia 5110 LCD.J'ai ajouté la fréquentation et j'ai fait une Image pour l'arrière-plan de l'écran LCD avec une icône arrondie de frontière et de la température quiest ajouté à la bibli
Mesure de Distance de LCD en utilisant Arduino

Mesure de Distance de LCD en utilisant Arduino

Et après avoir affiché jusqu'à quelques tutoriels robotiques, j'ai décidé d'aller plus en détail sur les capteurs. Pour démarrer avec j'ai choisir un capteur à ultrason et un Arduino dans le microcontrôleur.Ce Instructable est purement pour ceux qui
Détecter la température ambiante et l’affichage sur écran LCD en utilisant Simulink et Arduino UNO

Détecter la température ambiante et l’affichage sur écran LCD en utilisant Simulink et Arduino UNO

Détection et affichage de la température ambiante en utilisant Arduino sont très fréquent, et vous y trouverez plein de tutoriel instructablesand autres sites similaires. Mais, je n'ai pas trouvé n'importe où, n'importe quel tutoriel Comment faire ce
Carte son USB utilisation dans Raspberry Pi

Carte son USB utilisation dans Raspberry Pi

IntroductionJ'ai acheté une Sound Blaster X-Fi Surround 5.1 Pro récemment à un ordinateur juste parce qu'il était proposé. Avant que je l'ai acheté, j'ai fait des recherches quelle est sa prise en charge de Linux. C'était prometteur, alors je l'ai ac
INFRA rouge télécommandé ROBOCAR utilisant AVR (ATMEGA32) MCU

INFRA rouge télécommandé ROBOCAR utilisant AVR (ATMEGA32) MCU

Le présent projet décrit une conception et mise en œuvre de l'infrarouge (IR) distance contrôlée RoboCar qui peut être utilisé pour diverses applications de contrôle sans pilote automatique. J'ai conçu la RoboCar contrôlé à distance (mouvement de gau
Manette de Wii USB utilisant Arduino Leonardo

Manette de Wii USB utilisant Arduino Leonardo

Le week-end dernier, j'ai essayé la nouvelle RetroPie sur ma belle nouvelle Raspberry Pi 3, mais le contrôleur de jeu que j'ai est l'oldie Wii manette classique ; alors, comment puis-je convertir il à un contrôleur de jeu USB ordinaire ?Après quelque