bonjour,
Je réalise en ce moment un projet sur la carte easypic4 de mikroelektronika.
Je doit afficher des chiffres sur un afficheur 7 segment branchés sur le port série A de la carte.
J'ai trouver un programme qui permet de le faire sur le PORTC mais je n'arrive pas à la faire fonctionner sur les autres ports.
Code:/* * Project name: Serial_7seg * Copyright: (c) Mikroelektronika, 2007. * Description: This code demonstrates working with max7219 on Serial 7-seg Display2 board. Eight 7 segment displays are connected to MAX7219. * Test configuration: MCU: P16F877A Dev.Board: EasyPIC4 Oscillator: HS, 8.0 MHz Ext. Modules: Serial 7-seg Display2 board on PORTC SW: mikroC v7.0 Notes: Turn on PIC and CS0 switches on Serial 7-seg Display2 board */ #define CHIP_SELECT F0 char i; void max7219_init1() { PORTC.CHIP_SELECT = 0; // SELECT MAX SPI_write(0x09); // BCD mode for digit decoding SPI_write(0xFF); PORTC.CHIP_SELECT = 1; // DESELECT MAX PORTC.CHIP_SELECT = 0; // SELECT MAX SPI_write(0x0A); SPI_write(0x0F); // Segment luminosity intensity PORTC.CHIP_SELECT = 1; // DESELECT MAX PORTC.CHIP_SELECT = 0; // SELECT MAX SPI_write(0x0B); SPI_write(0x07); // Display refresh PORTC.CHIP_SELECT = 1; // DESELECT MAX PORTC.CHIP_SELECT = 0; // SELECT MAX SPI_write(0x0C); SPI_write(0x01); // Turn on the display PORTC.CHIP_SELECT = 1; // DESELECT MAX PORTC.CHIP_SELECT = 0; // SELECT MAX SPI_write(0x00); SPI_write(0xFF); // No test PORTC.CHIP_SELECT = 1; // DESELECT MAX } void main() { char i; TRISC.CHIP_SELECT = 0x0; // Set RC0 pin as output SPI_init(); // Initialize SPI module max7219_init1(); // initialize max7219 for(i=0;i<=8;i++){ PORTC.CHIP_SELECT = 0; // select max7219 SPI_write(i); // send i to max7219 (digit place) SPI_write(9-i); // send 9-i to max7219 (digit value) PORTC.CHIP_SELECT = 1; } }//~!
Si je remplace tout les PORTC par PORTB et que je remplace également TRISC par TRISB cela ne marche pas ....
pourquoi ????
autre question : peut on redéfinir les entrées / sorties en plein millieu du programme : j'ai un clavier de brancher sur le portC. Est ce que je peut le définir en entrée quand je gère le clavier et en sortie quand je gère l'afficheur???
(je ne sait pas si ça peut marcher ... )
Merci
-----