- Drivers
- PICMicro
- Risorse
- Servizi
- Software
- Add-In Excel 2003 per la conversione tra basi numeriche
- AquaGauge Control for .NET
- Conversione coordinate (+ sorgente)
- Custom Char HD44780
- Digital Caliper Readout
- Gargaroz
- IcoDrive
- JoyTester
- Macro Excel 2003 per formattare le tabelle con colorazione alternata delle righe pari e dispari
- Messenger Resources Extractor
- Phrase4Date MySQL Generator
- PICTimer
- RFID Reader
- Ripristina Mostra Desktop
- Rotopad
- Serial Tester
- SincroFF
- Info
Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti. Basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi : chi fa questo è solo un miserabile e un perdente. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni, come dovrebbe essere in un paese civile e acculturato, potete farlo tranquillamente.
i2c
Librerie PIC12 e PIC16 » I2C hardware per moduli MSSP (modalità master/slave)
Prerequisiti
PicMicro con modulo MSSP. Non è supportato il modulo SSP. Hitech C versione > 9.81
Utilizzo
Definire in i2c.h la frequenza del clock da utilizzare espressa in KHz, valori ammessi: 100, 400 e 1000:
#define CLOCK 400 // 400KHz |
Definire in i2c.h la frequenza dell’oscillatore espressa in Hertz:
#define FOSC 32000000UL // 32MHz |
Definire in i2c.h i due pin del modulo MSSP utilizzati come C:
#define SCL_PIN TRISA1 #define SDA_PIN TRISA2 |
Includere nel programma principale la chiamata a i2c.c:
#include "i2c.c" |
Inizializzare nel main il modulo:
I2cInitMaster(); // inizializzo il modulo MSSP in modalità master |
Funzioni disponibili
void I2cInitMaster (void); // Init MSSP in Master mode void I2cInitSlave (const unsigned char address); // Init MSSP in Slave mode (indirizzo a 7 bit) void I2cWait(void); // Attesa flag interrupt su modulo MSSP void I2cWaitForIdle(void); // Attesa bus in stato idle void I2cStart(void); // Sequenza di start void I2cRepStart(void); // Sequenza di start ripetuto void I2cStop(void); // Sequenza di stop unsigned char I2cReadMaster(unsigned char ack); // Lettura in modalità Master unsigned char I2cWriteMaster(unsigned char I2cWriteData); // Scrittura in modalità Master unsigned char I2cReadSlave(); // Lettura in modalità Slave void I2cWriteSlave(unsigned char data); // Scrittura in modalità Slave |
Nella versione 1.2 della libreria è disponibile la funzione aggiuntiva:
void I2cBulkRead(unsigned char devAddress, unsigned char regAddress, unsigned char numReads, unsigned char *buffer); // lettura bulk |
La lettura bulk consente di eseguire la lettura di più registri del dispositivo slave in sequenza a partire dal registro definito da regAddress, vengono eseguite numReads letture consecutive e i risultati delle letture vengono memorizzate nell’array *buffer. L’indirizzo del dispositivo slave, devAddress, va definito come indirizzo a 7 bit
Download versione 1.0
| Routine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.0 (5.88 kB - 180 downloads) |
Download versione 1.2
Questo download è riservato esclusivamente ai collaboratori. Questa versione ha in più unicamente la funzione I2cBulkRead che permette la lettura sequenziale comunque facile da implementare leggendo questo articolo.
| Routine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.2 (6.29 kB - 10 downloads) |









