Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Themen - WernerE

Seiten: [1] 2
1
Timer (Allgemein) / RTCC Alarm erst nach 10s
« am: Februar 08, 2012, 12:55:23 Nachmittag »
Hallo,
hab einen PIC18F67K22, der eine interne RTCC hat.
Der RTCC soll jede Sekunde einen Alarm auslösen (ALRMCFG=0b11000100).
Es klappt auch, nur das der erste Alarm erst nach ca. 10s kommt. Alle weiteren Alarme kommen wie geplant im Sekundentakt.
Wer hat eine Idee ?

2
Programmer und Debugger / IRQ nervt beim Debuggen
« am: August 23, 2011, 22:07:37 Nachmittag »
Hallo,
erstelle gerade ein C-Projekt (mit einer Assembler-IRQ Funktion) mit einem PIC18. Verwende MPLAB, C18 und einen ICD3 zum Debuggen. Wenn ich im Einzelschritt am Debuggen bin, springt das Programm häufig in die IRQ-Routine, da viele IRQs kommen. Das ist natürlich sehr nervig, bis man hier wieder rausgesteppt ist.
Kann man dies irgendwie umgehen, d.h. das Anhalten im IRQ unterbinden? (Vielleicht durch Erstellen einer LIB ??)
Gruß,
Werner

3
PIC Mikrocontroller Allgemein / Offene IOs
« am: August 23, 2011, 22:01:45 Nachmittag »
Hallo,
bisher hab ich unbenutzte IOs immer als Ausgang gesetzt, damit der Eingangsbuffer nicht floatet/schwingt und damit Strom zieht.
Jetzt hab ich gerade einen neuen Typen 18F26K22, bei dem alle IOs defaultmäßig per ANSEL-Register als Analog-Pins konfiguriert sind.
Damit dürfte das Setzen als Ausgang wohl überflüssig sein, da der digitale Buffer ja deaktiviert ist, oder seh ich das falsch ??
Gruß,
Werner

4
AD-Wandler (Allgemein) / PIC32 Wandlungszeiten
« am: Oktober 19, 2010, 10:51:21 Vormittag »
Hallo,
der ADC des PIC32 bietet ja die Möglichkeit mehrere Samples automatisch zu machen. Ich möchte 16 Samples für einen Kanal machen. Für eine komplette Wandlung würde ich 800us erwarten, in Wirklichkeit dauert es aber 832us. Wird ein zusätzlicher Tad zwischen des Samples benötigt? Als Quick-and-Dirty-Lösung habe ich erstmal die Sampling-Zeit von 13 auf 12 verkleinert, dadurch passt es wieder.
     
       
       // PBCLK=6MHz ->     Tpb  = 166.666ns
       // Tad = (n+1) * 2 * Tpb  = (5+1) * 2 * 166ns = 2us
       // Tconv=12xTad + Tsample = (12+13)*2us = 50us
       // 16 Samples * 50us = 800us
       //
       AD1CON1 = ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON;
       AD1CON2 = ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_16;   
       AD1CON3 = ADC_CONV_CLK_PB | 5 | ADC_SAMPLE_TIME_13;
       AD1CSSL = 0;          // no scanning

5
Compiler / Probleme mit Default sorage class vom C18
« am: Juni 17, 2010, 12:55:12 Nachmittag »
Hallo,
seit dem Update meines C18 Compilers auf die neueste Version 3.35 bekomme ich folgende Fehlermeldung (vorher war alles Ok):

Zitat
Error - could not find definition of symbol '__OpenADC:2' in file './Main.o'.

Mein Source sieht so aus:
#include <adc.h>

void main(void)
{
 OpenADC(88, 99, 77);
}

Ursache ist, dass ich als
Zitat
Default storage class = Static
verwende.
Darf man diese nicht mehr verwenden, wenn man auf die Library zugreifen will ??
Oder hat Microchip hier einen Bug eingebaut ?

Gruß,
Werner

6
Programmiersprache C / Printf Codebedarf
« am: Juli 30, 2009, 13:51:25 Nachmittag »
Hallo,
auch wenns hauptsächlich den C32-Compiler betrifft, stell ich die Frage mal hier rein.
Habe soeben mit Erschrecken festgestellt, dass sobald ich printf benutze, der Codebedarf um 23kB steigt (mit Optimierung 16kB).
Das printf generell sehr platzhungrig ist, war mir bekannt, aber nicht so extrem!!
Daher werde ich wohl mein eigenes abgespecktes printf benutzen.
Nun zur Frage: wie im MAP-File zu sehen, benötigt printf wiederum malloc, was einen Teil des Codebedarfs erklärt. In meinem Programm möchte ich ohne malloc auskommen. Woher weiß ich, welche Library-Funktionen malloc benutzen?
Sind irgendwo die Sourcefiles für die Library zu finden ? (beim C18 war noch alles schön dabei)
Gruß, Werner

7
Schnittstellen (Allgemein) / Genauigkeit USB-Frequenz 48MHz
« am: Juni 26, 2009, 09:53:00 Vormittag »
Hallo,
bin gerade dabei, die Taktfrequenz für einen PIC32 festzulegen. Später möchte ich USB benutzen.
Im Datenblatt steht, dass USB 48MHz benötigt.
Wie genau muss diese Frequenz sein?
In einem Atmel-Forum hab ich was von +-0,25% gefunden. Im PIC-Datenblatt steht, dass die USB-frequenz aus 4..5 MHz mittels PLL erzeugt wird.  Dies würde 48..60MHz entsprechen.
Was ist nun richtig?
Grüße, Werner

8
Programmiersprache C / Inline assembly C32
« am: Juni 21, 2009, 22:49:54 Nachmittag »
Wer kann mir helfen (bin noch neu in C32)?
Möchte Register sp in C-Variable einlesen.
In C18 wäre es einfach: char sp; sp = STKPTR;
In C32 sind die internen Register $0 .. $31 aber nicht im Adressraum gemappt, so dass man es wohl mit einem Inline Assembler Befehl machen muss?!
Wie könnte dieser lauten?
2. Frage: wie komme ich in C an die Stackgröße ran, die bei den Linkeroptionen mittels _min_stack_size definiert wurde?
Gruß, Werner

9
Programmiersprache C / Konstantentabelle
« am: Januar 05, 2009, 15:42:33 Nachmittag »
Hallo Leute,
möchte (mit C18) Tabelle mit Konstanten anlegen, die auch die Adresse einer Variablen enthält:
char abc;
const char xy[] = {1, 2, (char)&abc, (int)&abc >> 8};
Das Lo-Byte setzt der Compiler richtig ein, beim Hi-Byte gibts jedoch eine Fehlermeldung "constant expression expected".
Wie sag ich es meinem Compiler?? (aus Platzgründen möchte ich nicht die ganze Tabelle als 16 Bit ablegen)
Werner

10
PIC Mikrocontroller Allgemein / Device ID und errata
« am: Oktober 16, 2008, 21:37:22 Nachmittag »
Hallo,
eine Frage zu der errata sheets, die man ja bei microchip.com zu jedem PIC findet.
Dort sind z.B. die Revisionen wie A1 und B3 aufgeführt. Woher weiß ich, welche Revision ein PIC hat?
Ist leider nicht aufgedruckt (wäre ja zu einfach...)
Müsste man doch über den Datumscode, der ja auf dem PIC gedruckt ist, feststellen können. Aber wo findet man eine entsprechende Tabelle? Alternativer/umständlicher: mit kleiner Routine die Speicheradressen auslesen (oder kommt man mit dem ICD2 da direkt ran?).
Außerdem: woher weiß ich, welche Revision die PICs haben, die ich bei microchipdirect.com kaufe?
Gruß, Werner

11
Programmer und Debugger / Entwicklung mit PIC32MX460
« am: Oktober 09, 2008, 09:12:42 Vormittag »
Hallo,
habe jetzt mein erstes Projekt mit PIC32.
Ich wollte eigentlich mit dem C32-Compiler und dem ICD2 anfangen. Jetzt habe ich gesehen, dass Microchip den ICD2 für den Chip noch nicht richtig freigegeben hat (Status gelb).
Bin ich nun gezwungen, mir den REAL ICE anzuschaffen (wollte ich eigentlich erst später machen)?
Wie sind eure Erfahrungen mit der Entwicklung von PIC32 ?
Gruß, Werner

12
Compiler / Compiler-Bug oder falsches Speichermodell?
« am: Oktober 05, 2008, 13:16:21 Nachmittag »
Hallo, habe gerade folgendes Problem festgestellt:

void main(void)
{
 char i = 0, mask;
 const rom char BitMask[] = {0x01, 0x02};

 mask = BitMask[i];     // mask ist wie erwartet 01
 OpenPWM2(255);
 mask = BitMask[i];     // mask ist nicht 01 !!!
}

Prozessor: 18F2520, Small code model < 64k

Verursacht wird das Problem dadurch, dass in OpenPWM2() das Register TBLPTRU auf einen Wert ungleich 0 gesetzt wird. Dadurch "steht" der PIC anschließend auf der falschen Code Page.
Handelt es sich hierbei um einen Compilerbug (d.h. man sollte nur mit "Large code model" arbeiten),
oder liegt nur ein Fehler in der Routine OpenPWM2 vor ?
Gruß, Werner

13
Compiler / Debug/Release mit C18
« am: August 24, 2008, 20:37:40 Nachmittag »
Hallo Leute,
nach dem neusten Download von MPLAB V8.10 und C18 V3.21 und Lesen der Linker Release notes (Stichwort "Generic Linker Scripts") soll jetzt angeblich funktionieren, worauf ich schon länger gewartet habe: Erzeugen von Debug und Release Version ohne 2 Projektfiles vorzuhalten. Scheint zwar auf den 1. Blick zu laufen, aber was mich skeptisch macht:
- unter Compileroptionen werden die Optimierungen nicht zwischen Debug/All umgeschaltet
- woher holt sich der Linker jetzt das Linkerscript, da es ja nicht mehr im Projekt aufgeführt werden soll (laut Beschreibung soll er sich automatisch das richtige Script holen)
Gruß, Werner

14
MPLAB / Problem mit Variablenanzeige per MouseOver
« am: März 20, 2007, 12:27:05 Nachmittag »
Hallo,
bin gerade am Debuggen mit MPLAB 7.50 + C18 + ICD2.
Dabei fiel mir auf, dass mittels der "MouseOver"-Funktion einige Variablen nicht mehr richtig angezeigt werden. So wird z.B.
nach unsigned char x=2;  x als '.' angezeigt (anscheinend versucht die IDE hier char auszugeben und da 2 nicht darstellbar, wird ein Punkt angezeigt).
Mit der Version V7.42 ist mir dieses Problem nicht aufgefallen?!
Bei Variablen aus dem Assemblerbereich werden die Werte wie erwartet angezeigt. (0x02)
Liegt hier ein Bug vor oder gibts irgendwo eine Einstellmöglichkeit?
Gruß, Werner

15
MPLAB / MPLAB 7.50 Build configuration
« am: Februar 28, 2007, 12:53:24 Nachmittag »
Hallo,
hab gerade Update MPLAB 7.42 auf 7.50 gemacht.
In der Symbolleiste kann man jetzt zwischen "Release" und "Debug" wählen. Ich vermute, damit soll zum einen der Code zum Debuggen (mittels ICD2?) und zum anderen der endgültige Code erstellt werden?!
Der mit beiden Optionen erstellte Programmcode unterscheidet sich jedoch nicht.
In der Hilfe hab ich leider nichts hierzu gefunden.
Gruß, Werner

Seiten: [1] 2