Stap 12: De PIC als I²C meester configureren
De I²C initialisatie routineVOID I2C_Init (void){
TRISA1 = 1;
TRISA2 = 1;
ANSELA = 0b00000000;
SSP1ADD = 0X03;
SSP1STAT = 0X80;
SSP1CON1 = 0X28;
SSP1CON2 = 0X00;
}
Dit is vrij veel het zelfde met wat we hebben gedaan met de sensor, alleen dit keer we hebben de MSSP instellen om te fungeren als een meester. Ik schreef sommige functies om dit te doen, zal ik enkele knipsels voor u met de code van de steekproef, om je rollen. Voor sommige stomme reden dat ik was niet in staat zijn om dit bericht als een afbeelding, dus hier is, een beetje lelijker, maar ten minste het werkt.
De belangrijkste routine
Dit is mijn belangrijkste code en de code van de I²C, sommige software-stuiteren wordt gedaan voor het veranderen van de helderheid van het scherm, I²C opdrachten afstand om gegevens te verzamelen van de HC-SR04 door slaaf processor worden uitgegeven, dan de nummers zijn geparseerd om te worden weergegeven op de 7 segment LED-display. Ter wille van eenvoudiger routering die ik koos de kathoden cijfers willekeurig naar de MAX7219, is het manier makkelijker te halen hieromheen in software dan te doen wat fancy routering om de sporen rechts.
Het lijkt te klein op bepaalde schermen, het hier zeker kleine, in de editor, dus als u niet kunt zien het te goed, volg de link en bekijken op flickr.
De drie overdrachten heb je al gezien toen ik u de slave-transmissie presenteerde. De bus is hetzelfde, dus ik heb niet de moeite te nemen nieuwe knipsels - het concept zelf oke is, en dat is wat telt.
Dit gezegd zijnde, praat de meester PIC nu met de slaaf PIC, vraagt voor afstandsmeting. Wanneer gegevens worden ontvangen worden de weergegeven waarden onmiddellijk gewijzigd om aan te tonen van de huidige afstandsmeting.
Ik voegde ook een gebruikersinterface als u wilt instellen van de helderheid van het scherm. De kapitein PIC heeft een knop op de pin Picssoftware. Door te drukken op het ten minste de helft van de tweede, kan de gebruiker acht niveaus van helderheid doorlopen. Alleen ik dit in, omdat de MAX7219 deze functie ingebouwd heeft, en had die knop rondslingeren nutteloos anyways.
Ik ben nog steeds denken aan een goede functie op de tweede knop, die verbinding met de PIC van slaaf Picssoftware pin maakt te zetten. Ik dacht dat het te gebruiken voor het meten van verschil tussen de werkelijke en de vorige meting, maar de sensor ziet slechts 400 centimeter, dat is een beetje kort, dus ik heb niet de moeite.
Suggesties zijn welkom!