Durch meine Arbeit habe ich einiges an Erfahrung mit der Hardwareentwicklung gesammelt, aber nur aus einer Überwachungsfunktion. In letzter Zeit habe ich mit dem Design von MCU-Schaltkreisen herumgespielt, um ein besseres Verständnis zu erlangen.
Ich habe die folgende Schaltung zusammengestellt, damit ich ein bisschen mit den MCU-Registern herumspielen kann, und es funktioniert - nur zeitweise.
Die LED blinkt wie vorgesehen, stoppt dann für eine beliebige Zeit, blinkt wieder anders oft aus, wieder aus usw. Es scheint kein zyklisches Verhalten zu geben. Es beginnt ohne externen Eingang zu arbeiten (dh es zu stupsen) und scheint daher auch keine lose Verbindung zu sein. Mir ist klar, dass der zweite Vss-Pin nicht im Schaltplan geerdet ist, aber das hat der Schaltung auch nicht geholfen, als ich es ausprobiert habe. Könnte es sein, dass Vusb nicht geerdet ist? Ich hätte gedacht, dass dies nur den USB-Betrieb beeinträchtigen würde.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <p18f2550.h>
#include <delays.h>
#pragma config FOSC = INTOSCIO_EC
#pragma config WDT = OFF
void main() {
TRISAbits.TRISA1 = 0; // Set RA1 as output
LATAbits.LATA1 = 1; // Set RA1 as HIGH
while (1)
{
LATAbits.LATA1 = ~LATAbits.LATA1; // Toggle LED pin
Delay10KTCYx(25); // Delay
}
}
Hier ist das Datenblatt für das Teil.