Ich habe einen Programmierhintergrund, bin aber sehr neu in Bezug auf Mikrocontroller. Verzeihen Sie mir, wenn diese Frage sehr einfach ist oder keinen Sinn ergibt. Ich versuche, mein Wissen aufzufrischen, und die Lernkurve scheint in einigen Bereichen steil zu sein.
Ich versuche, I2C mit einem neuen IC, den ich gekauft habe, dem PIC12LF1552, zum Laufen zu bringen. Dieser IC enthält ein I2C-Modul, also sollte ich nicht bit-bangen müssen. Es scheint jedoch, dass XC8 I2C auf der PIC12-Serie nicht unterstützt. MPLAB X scheint die ic2.h-Include-Datei nicht zu finden (dies ist möglicherweise kein Problem, es könnte sein, dass die Pfade nicht korrekt eingerichtet sind), also habe ich die Datei mit einem vollständigen Pfad verknüpft. i2c.h enthält pconfig.h in Zeile 32 und pconfig.h enthält p18cxxx.h in Zeile 16, was anscheinend nicht funktioniert, da es für eine andere Chipserie gilt.
Meine Frage ist also, welche Unterstützung gibt es für die Ausführung von nativem I2C auf ICs der PIC12-Serie?
Kommt darauf an, was man unter "Unterstützung" versteht. Nur weil es möglicherweise keine vorgefertigte Bibliothek gibt, heißt das nicht, dass Sie das Peripheriegerät nicht verwenden können.
Die XC-Compiler bieten direkten Zugriff auf die speziellen Funktionsregister und Interrupt-Fähigkeiten des Zielgeräts. Sie können die I2C-Peripherie und die Handhabungsroutinen genauso einfach in C konfigurieren wie in Assemblersprache. Das Gerätedatenblatt enthält alle Details zum Einrichten dieser Peripheriegeräte. Lesen Sie einfach das Datenblatt, schreiben Sie die erforderlichen Werte in die erforderlichen SFRs und fragen Sie nach Bedarf ab / unterbrechen Sie sie.
(Es ist oft einfacher, auf diese Weise zu codieren, da Sie nicht auf Closed-Source-Bibliotheken angewiesen sind, die möglicherweise nicht genau das tun, was beworben wird.)
Der Microchip XC8-Compiler verfügt über integrierte Peripheriebibliotheken (einschließlich I2C-Bibliotheken), jedoch nur für die PIC18F-Mikrofamilie. Die anderen 8-Bit-Mikros (PIC10F, PIC12F, PIC16F) haben keine Peripheriebibliothek. Sie müssen Ihre eigene Implementierung/Treiber für das I2C-Peripheriegerät schreiben, indem Sie die Register direkt manipulieren.
Strandhaus
Adam Lawrence
Strandhaus
Adam Lawrence