|
|
View previous topic :: View next topic |
Author |
Message |
ph Guest
|
SPI 16F877A |
Posted: Thu Oct 20, 2005 1:59 pm |
|
|
Hello, I need some help. I need to write to SPI but when I do it nothing happens, the oscilloscope doesn’t show anything. I think I’m forgetting to put something in my code.
#include "D:\PF\CCS\CCS\PIC16F877A\projetofinal\main.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
char ch[4]; // ch --> contém o número
int8 j,total,i[96]; //i --> armazena a matriz com os valores para gravação
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
i[0]=0;
j=0;
while(true)
{
gets(ch);
switch (ch[0])
{
case 'p':
{
gets(ch);
total=atoi(ch);
for (j=0;j<total;j++)
{
gets(ch);
i[j]=atoi(ch);
}
printf("Dados emitidos: %u\n ",total);
for (j=0;j<total;j++)
{
printf("PIC %u\n",i[j]);
}
for (j=0;j<total;j++)
{
spi_write(i[j]);
}
}
}
total=atoi(ch);
printf("Dados invalidos %u\n ",total);
}
} |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Oct 20, 2005 2:32 pm |
|
|
Try a very simple test program like the code below.
If your crystal or oscillator is running at a different frequency
than 4 MHz, then change the #use delay() statement.
Also, if your crystal is at a higher frequency than 4 MHz,
change the fuse from "XT" to "HS".
Then look at pins 18 and 24 (on the 40-pin DIP package)
and you should see SCLK and SDO pulses. It worked for
me with the PicDem2-Plus board, and PCM compiler vs. 3.236.
Code: |
#include <16F877A.H>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=4000000)
//===============================
main(void)
{
setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_CLK_DIV_4);
while(1)
{
spi_write(0x55);
delay_us(100);
}
} |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|