@BlueNature
Was meinst du denn mit Reset? Die Schieberegsiter haben doch garkein Reset.
Mich wurmt es das so eine eigentlich simple Sache nicht klappt, wie soll ich denn dann jemals zu einer aufwendigen Schaltung kommen. Daher wäre es nett wenn ihr mir auf die Sprünge helft.
Folgendermassen sieht nun meine Gesamtschaltung aus. Ich kann dort keinen Fehler erkennen.
Den Pic habe ich mit folgendem TestCode bespielt:
Code:
#include <16F876.h>
#USE DELAY (CLOCK=20000000)
#FUSES HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
unsigned int token;
void main()
{
token = 0;
setup_adc(ADC_OFF);
set_tris_a(0b00000000);
set_tris_b(0b00000000);
set_tris_c(0b00000000);
output_a(0x00);
output_b(0x00);
output_c(0x00);
// Setup SPI
setup_spi(spi_master | spi_l_to_h | spi_clk_div_64);
while(TRUE) // Programmschleife
{
// write to SPI
if(token == 0)
{
spi_write(0x10101010b);
token = 1;
delay_ms(10);
output_high(PIN_C6);
delay_ms(10);
output_low(PIN_C6);
delay_ms(900);
}
else
{
spi_write(0x01010101b);
token = 0;
delay_ms(10);
output_high(PIN_C6);
delay_ms(10);
output_low(PIN_C6);
delay_ms(900);
}
}
}
Der Code soll einfach nur per SPI wechselnde Signale liefern, sodass die LEDs abwechselnd blinken. Es tut sich aber garnix.
Die LEDs leuchten beim starten willkürlich auf und verharren so, ohne dass der PIC irgend einen Einfluss hat.
Wo zum Teufel liegt denn nun mein Fehler?
Lesezeichen