Forum: Mikrocontroller und Digitale Elektronik Pic 10F220 toggelt nur mit 120kHz


von Teo D. (teoderix)


Angehängte Dateien:

Lesenswert?

Hi,
der GP2 Pin sollte doch mit ~666kHz toggeln und nicht mit 120kHz.
Wo zur Hölle mach ich da nen Fehler?
1
// CONFIG
2
#pragma config IOSCFS = 8MHZ    // Internal Oscillator Frequency Select bit (8 MHz)
3
#pragma config MCPU = OFF       // Master Clear Pull-up Enable bit (Pull-up disabled)
4
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
5
#pragma config CP = OFF         // Code protection bit (Code protection off)
6
#pragma config MCLRE = OFF      // GP3/MCLR Pin Function Select bit (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
7
8
#include <xc.h>
9
10
void main(void) {
11
   OPTION = ((!PSA)&(PS0)&(PS2)&(PS1)&(!T0CS)&(nGPWU)&(!nGPPU)&(T0SE));
12
   TRIS = 0b1011;
13
   ADCON0 = 0;
14
15
   while(1) {
16
      GP2 = ~GP2;
17
   }
18
}
19
__________________________________________________________  
20
      1      00            A01                     GOTO 0x1               
21
      2      01            070                     CLRF 0x10              
22
      3      02            071                     CLRF 0x11              
23
      4      03            072                     CLRF 0x12              
24
      5      04            064                     CLRF FSR               
25
      6      05            A06                     GOTO 0x6               
26
      7      06            C00                     MOVLW 0x0              
27
      8      07            002                     OPTION                 
28
      9      08            C0B                     MOVLW 0xB              
29
     10      09            006                     TRIS GPIO              
30
     11      0A            067                     CLRF ADCON0            
31
     12      0B            C04                     MOVLW 0x4              
32
     13      0C            1A6                     XORWF GPIO, F          
33
     14      0D            A0B                     GOTO 0xB               
34
     15      0E            FFF                     XORLW 0xFF             
35
     ....

von Εrnst B. (ernst)


Lesenswert?

Teo D. schrieb:
> Wo zur Hölle mach ich da nen Fehler?

Hmm... wie ist dein Rechenweg? Ich komm auf 250kHz (GOTO braucht zwei 
Zyklen), bin also näher dran :)

von Teo D. (teoderix)


Lesenswert?

Εrnst B. schrieb:
> Hmm... wie ist dein Rechenweg?

Ohne "GOTO braucht zwei Zyklen" :(

.... Dann ists auch schon sche.... egal, wo da noch einer verloren geht.
War ne Schnaps-Idee, lag nur grad aufm Tisch. :)

Danke

von Peter D. (peda)


Lesenswert?

Du könntest auf den ATtiny10 wechseln, der ist auch im SOT23-6.
Er läuft mit 12MHz und hat 2 PWM-Ausgänge. Mit Clear on Compare bei 8 
und Toggle on Compare erreichst Du:
1
12MHz / (8+1) / 2 = 667kHz
Da die Mainloop nach dem Timerinit nichts mehr tun muß, kannst du mit 
den anderen 3 Pins noch was anderes machen.

von Teo D. (teoderix)


Lesenswert?

Peter D. schrieb:
> Du könntest auf den ATtiny10 wechseln, der ist auch im SOT23-6.
> Er läuft mit 12MHz

Neue HW zum Programmieren müsste ich ja nicht (mehr) beschaffen oder 
groß rumwurschteln.
Ist auf alle Fälle ne Überlegung wert.
Gug ich mir halt zum ersten mal ein AVR Dabla an ... und das auf meine 
alten Tage. ;D
Danke

von Peter D. (peda)


Lesenswert?

Zum Strom sparen könnte man den ATtiny nach dem Timerinit in Idle 
setzen. Dann läuft der Timer mit PWM weiter, nur die CPU bleibt stehen. 
Aufwecken muß man ihn ja nicht wieder, d.h. die Interrupts bleiben 
disabled.

von Teo D. (teoderix)


Lesenswert?

Ja ja, is ja schon gut, habs kapiert, der Attiny ist ein echter µC.... 
;D

Stromsparen wäre unnötig aber ne "lustige" Idee ist das schon, nur 
HW-Module laufen zulassen. An sowas hätte ich sicher nicht gedacht. 
Kommt aber auch selten vor, das sonst nicht zu tun ist.

Mach dir da mal lieber keine Gedanken mehr drüber, das nicht vorhandene 
Projekt, ist schon vor der ersten Zellteilung gestorben.
....
Nein, was das war, bleibt mein "Geheimnis", is zu peinlich, das 
öffentlich zu äußern. Mein erster Gedanke hätte eigentlich sein müssen 
"Ne, das kann mit nem 10F2xx Nieee funktionieren". Aber es lag halt rum, 
musste nur noch Hirnlos ein paar Zeilen in die IDE kloppen.... :DDD

Aber Danke für den Input!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.