Étape 1: BluBerry / DEVCC Bonjour tout le monde
Matériel premier
Aux fins de l’opportunisme, je vais supposer que vous avez assemblé la ProtoShield. Comme le montre les images, le bouclier comprend deux LEDs qui peuvent être connectés aux ports concernés.
Insérer le Proto-bouclier DEVCC à la DEVCC V18Connect RB1 à 4Connectez RB0 à 2
Code pour « Hello World »
Le projet du monde Bonjour est typiquement un clignotant led, l’intervalle est défini un timer est utilisé pour activer/désactiver l’on / off l’état de la led. Il y a un certain nombre de moyens pour activer et désactiver la LED et ils sont examinés ci-dessous.
Le plus simple est au jeu de la sortie afin que le voyant s’allume, démarrer le compte à rebours et attendez que la minuterie à rebours. Effacer la sortie et puis attendre que la minuterie de courir à nouveau et lorsque le minuteur a expiré, relancer le processus.
L’idée est de produire une onde de sortie carré de rapport cyclique de 50 %, afin que vous ayez un uniforme on / off État. La seconde manière qui nécessite un peu plus de programmation sais combien est de XOR (ou exclusif) la sortie pour qu’il bascule. L’avantage ici est moins de lignes de code, ce qui la rend plus intuitive et plus facile à lire
La LED aura deux États on ou off 0 ou 1. Lorsque la LED est XOR 0 à 1, puis la LED remplace État sur 1 ou sur. Lorsque le voyant est allumé ou 1 XOR avec 1 il bascule à 0.
Dans le code, vous auriez ce qui suit :
Flash() {}
PORTB. B0 = PORTB. B0 ~ 1 ;
Delay_MS(500) ; 1 deuxième impulsion, c'est-à-dire la demi-seconde sur et la demi-seconde hors
}
{while(1)}
Flash() ;
}
En d’autres termes [New LED Etat] = XOR [courant LED Etat] 1. L’opération écrit automatiquement la valeur de retour à la broche.
Vous remarquerez que le bouclier de proto comporte deux voyants, donc notre prochaine étape est des faire basculer alternativement. Nous allons modifier le code fourni plus haut pour inclure une deuxième sortie. J’ai choisi PORTB. B1 la deuxième sortie, mais c’est définie sur 1, c.-à-d. il est sur quand le PIC démarre alors que PORTB. B0 est éteint. Lorsque le code cycles les deux LED seront allume en alternance.
Bascule LED
Flash() {}
PORTB. B0 = PORTB. B0 ~ 1 ;
PORTB. B1 = PORTB. B1 ~ 1 ;
Delay_MS(500) ; 1 deuxième impulsion, c'est-à-dire la demi-seconde sur et la demi-seconde hors
}
Met en place le dispositif
Startup() {}
ANSELB = 0 X 00 ; Définit toutes les entrées numériques
TRISB = 0XFC ; Ensembles de
PORTB = 0 X 0 ; Efface toutes les sorties à « 0 »
PORTB. B1 = 1 ; Définit le bit 1 à haute
}
Programme principal
Sub main() {}
Startup() ;
{while(1)}
Flash() ;
}
}
Analyse et bizarreries
L’information présentée est d’aider des ennuis de tir et de comprendre comment les choses fonctionnent.
Entrées analogiques
Les photos plus récentes ont multiplexés plusieurs caractéristiques avec le même NIP. L’un des plus simple d'entre eux est où une broche numérique partage le même emplacement que l’entrée analogique. Par défaut, lorsque le commandant de bord se met en marche, la fonctionnalité périphérique analogique, partagée avec la broche est par défaut disponible et a préséance sur la fonctionnalité numérique. Grâce à cela si vous n’avez aucune utilité pour les entrées analogiques, ils doivent être désactivés. Ceci est fait en écrivant dans le registre ANSELX. Remplacez le X pour le port par exemple PORT B, ce qui est ANSELB.
À moins que les registres ANSELB ou ANSELX ont été configurés, le cas échéant, que vous pouvez rencontrer des résultats où le PORT ne fonctionne pas comme prévu. S’assurer que les registres de ANSELx ont été configurés correctement.
En arrondissant
Le projet décrit ici montre une autre façon de « testing » que votre PCB fonctionne. C’est un projet de grand type tutoriel à venir à bout de quelques aspects de l’utilisation des photos. Les exemples de code peuvent servir de flash une ou plusieurs LEDs que votre projet se développe, juste ajouter ou enlever des broches à partir de votre code.
[E]