Neueste Beiträge

#1
P
Mikrocontroller / Aw: Benutzung des Watchdog Tim...
Letzter Beitrag von pic18 - Heute um 21:11:54 CET
ich habe mal ein kleines Testprogramm eingefügt, da wird bis 131 gezählt, was eine errechnete Taktfrequenz von 32Khz entspricht.
        case ausg_watchdog:
            LED_or = LED_OFF;
            stdOut_mr =stdOut;
            stdOut = source_lcd;
            test_wdg=0;
            ClrWdt( );
            while(1){
                if(TimerFlag.IF1s){
                    TimerFlag.IF1s=0;
                    test_wdg++;
                    printOut("%bu\n",test_wdg);
                }
            }
            break;
Hier lese ich aber immer noch 31KHz!
The other clock source is the internal RC oscillator
(INTRC), which provides a nominal 31 kHz output.
INTRC is enabled if it is selected as the device clock
source; it is also enabled automatically when any of the
following are enabled:
• Power-up Timer
• Fail-Safe Clock Monitor
• Watchdog Timer
• Two-Speed Start-up

aber egal, ich bin noch am Überlegen ob ich den "Program-Counter" sichern kann.
#2
P
Mikrocontroller / Aw: Benutzung des Watchdog Tim...
Letzter Beitrag von pic18 - Heute um 16:07:58 CET
muss natürlich ms heißen
#3
P
Mikrocontroller / Benutzung des Watchdog Timers,...
Letzter Beitrag von pic18 - Heute um 10:33:26 CET
Hallo in meinem größeren Programm habe ich in ab und zu Programmabstürze (1  mal im Monat). Damit das Programm neu startet, habe ich den Watchdog Timer aktiviert. Das funktioniert ganz gut. Nun meine Frage: Gibt es eine Möglichkeit den Programmcounter zu sichern um eine Fehlerdiagnose zu machen? Ober habt ihr eine andere Idee? Ich habe mir auch schon überlegt den 31-stufigen Stack Speicher zu sichern, bin mir aber nicht sicher ob das mir was bringt.
Mit der Watchdog   Zeit Umrechnung habe ich meine Probleme. Laut Datenblatt (Pic 18F4685, Dokument 39761b) soll ich eine Taktfrequenz von 31KHz haben, was eine Zeit von bis zu 131072s ergibt.

,,For PIC18F2682/2685/4682/4685 devices, the WDT is driven by the INTRC source. When the WDT is enabled, the clock source is also enabled. The nominal WDT period is 4 ms and has the same stability as the INTRC oscillator. The 4 ms period of the WDT is multiplied by a 16-bit postscaler. Any output of the WDT postscaler is selected by a multiplexer, controlled by bits in Configuration Register 2H. Available periods range from 4 ms to 131.072 seconds (2.18 minutes). The WDT and postscaler are cleared when any of the following events occur: a SLEEP or CLRWDT instruction is executed, the IRCF bits (OSCCON<_x0036_:_x0034_>) are changed or a clock failure has occurred. . 24.2.1 CONTROL REGISTER Register 24-14 shows the WDTCON register. This is a readable and writable register which contains a control bit that allows software to override the WDT enable Configuration bit, but only if the Configuration bit has disabled the WDT. FIGURE 24-1: WDT

Dies kann ich leider nicht nachvollziehen. Ich habe einen Vorteiler von 128 und einen programmierbaren Teiler von bis zu 32738 das ergibt bei 31Khz:
128*32768s/31000 = 135176,1s
Wenn ich das Ganze mit 32Khz rechne
128*32768s/32000 = 131072s was im Datenblatt steht.
Was stimmt nun?
Die 31Khz oder die 32Khz
Die 135176s oder die 131072s
Kann Microchip nicht rechnen, oder stimmt das Datenblatt nicht?
#5
V
Mikrocontroller / Aw: Frage zum MPLAB und XC8-Co...
Letzter Beitrag von vloki - Gestern um 16:14:29 CET
So funktioniert das aber nicht ;-)
#6
M
Mikrocontroller / Aw: Frage zum MPLAB und XC8-Co...
Letzter Beitrag von misax - Gestern um 14:55:45 CET
warum denn ? wenns mich doch interessiert.
#7
V
Mikrocontroller / Aw: Frage zum MPLAB und XC8-Co...
Letzter Beitrag von vloki - Gestern um 14:49:47 CET
Vergiss das besser ganz schnell wieder!
#8
P
Mikrocontroller / Aw: TIMER0 beim PIC12F1480
Letzter Beitrag von picass - Gestern um 14:47:58 CET
Die Lage hat sich geklärt. Aber vorher stand die Suche nach der SSD, die aber nur die betrübliche Erkenntnis brachte: das MPLAB X IDE 5.35 war auf einer solchen, die als einzige bisher den Löffel abgab: "unallocatet cluster" und das wohl im Bootbereich. Also neue SSD her, das Windows endlos updaten, andere Progs updaten, das 5.35-er drauf und gucke da: auch hier wollte das genauso wenig fluppen mit dem Überlauf. Aber....

...dann kam der Trichter: es fluppt schon im Simulator, aber nur dann, wenn man den frei laufen lässt. Was mich gestört hatte, war die fehlende Beobachtung beim Single-Steppen, was ich recht häufig anwende. Im SS-Modus kann man ruhig das Timer0-Register (was ein 16-bit-R ist) auf FFFE setzen und dem Übersprung zusehen, das lässt das INTCON-Reg ziemlich kalt. Gleich drauf auf speed gehen und den Simulator "run" lassen, gerät er nicht in eine Endlosschleife und gleich hinter dieser Routine aufgestoppt zeigt sich endlich auch das TMR0IF-Flag als gesetzt!

Das dann anschließend auf meiner "alten" SSD mit der 5.20-er IDE und gucke da: dort genauso! Single-Steppen zeigt offenbar nicht alle Flags. Aber nu' weiß ich es und kann mit Breakpoints diesen Zahn ziehen!

Danke sehr, auch und gerade für das Angebot des Testens des Progs. Das hatte ich vor dem Neu-Entdecken und hier Einstellen schon "aufbereitet", damit es vernünftig lesbar ist und von unnötigem Ballast befreit. Wenn ich mit der Install der Maulwurf-Anlage fertig bin, kann ich das ja hier unter Projekten einstellen.
Grüße, picass
#9
M
Mikrocontroller / Aw: Frage zum MPLAB und XC8-Co...
Letzter Beitrag von misax - Gestern um 14:31:43 CET
nur mal rein theoretisch:
wenn ich in den xc.h den Prototype für eine Funktion reinschreiben würde, wo müßte dann der c-Quellcode rein, damit alles ordentlich mitcompiliert würde ?
#10
V
Mikrocontroller / Aw: Frage zum MPLAB und XC8-Co...
Letzter Beitrag von vloki - Gestern um 14:01:13 CET
1. Es gibt kein solches Verzeichnis (nicht das ich wüsste)

2. __delay_ms ist ein Makro, das in buildins.h definiert wird.
    (nicht einbinden, xc.h macht das schon!)
    ((einfach mal mit gedrückter Steuerungstaste auf __delay_ms() klicken...)

3. Es gibt nichts, was für "ALLE" gleich ist, außer xc.h, worüber dann noch mehr Zeug eingebunden wird.
    (einfach mal mit gedrückter Steuerungstaste auf xc.h...)

4. Es gibt einen Userguide für den XC8