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.


Nachrichten - Bernd

Seiten: [1] 2 3 ... 259
1
MPLAB / Re:Probleme bei Erstellung eines Library-Projects
« am: Januar 23, 2013, 00:45:09 Vormittag »
Aus den MPLAB X IDE v1.60 Release Notes ("Readme for MPLAB X IDE.htm"):

Zitat
10.2   IDE Issues:
MPLABX-1495  MPLAB XC8 does not support library projects

Viele Grüße,
Bernd

2
Programmiersprache C / Re:CX16 division: wie an divisor gelangen
« am: August 27, 2012, 16:40:57 Nachmittag »
Schon mal einen Blick in das Unterverzeichnis docs des XC16 Installationsordners geworfen? Dort befindet sich der ca. 3.5MB große "XC16 Compiler User's Guide" im pdf-Format…

Viele Grüße

Bernd

3
Programmiersprache C / Re:CX16 division: wie an divisor gelangen
« am: August 26, 2012, 21:37:28 Nachmittag »
Zitat
wie komme ich nun mit XC16 sehr effizient bei einer division an den qotient und dessen rest in C?

__builtin_divmodud()? Wobei mir neu wäre, dass XC16 kein Inline-Assembler mehr unterstützt.

Viele Grüße,
Bernd

4
Compiler / Re:C30 Invalid -mcpu option
« am: Juli 21, 2012, 17:13:57 Nachmittag »
Zitat
Kann man eigentlich kostenlos Updaten auf die Aktuelle Version

Ja, bis C30 v3.31. Das Update auf die erste X16-Version ist auch noch kostenlos (Vorgehensweise siehe http://www.microchip.com/rlmmigrationtool/). Nachfolgende "Major Updates" werden in Zukunft dann kostenpflichtig sein.

Viele Grüße
Bernd

5
MPLAB / Re:MPLAB erstellt keine Hex-Datei
« am: Juni 13, 2012, 22:58:19 Nachmittag »
@Dave233

Welche MPLAB X Version verwendest Du? Welchen Compiler (von der Meldung her würde ich vom C18 ausgehen) und welche Version?

Am sinnvollsten wäre es, wenn Du alle relevanten Daten des MPLAB X Projekts hier als Datei anhängst. Dazu bitte im "Project-Window" nach Rechtsklick auf das Projekt  den Menüpunkt "Package" auswählen. Dadurch wird im Projektverzeichnis eine *.zip-Datei erzeugt, die Du an Deinen Post anhängen kannst.


@DerFlo

Zitat
Ich will mich nicht ausn Fenster lehnen, ob du ein Vorzeichenbehafteten Integer nimmst oder nicht sollte kein Abruch hervorrufen.

Absolut richtig. Jede "Diagnostic Message" eines Compilers, die keine Fehlermeldung ist (z.B. "Warning" oder "Message"), verhindert nicht die Kompilierung und die Erzeugung des hex-Files. Ob das so erezugte Programm dann auch so funktioniert wie erwartet, ist eine vollkommen andere Geschichte...


Viele Grüße

Bernd

6
Ok, der nächste Schritt ist dann, die Baudrate des 16F1938 zu messen. Am einfachsten ist die Messung, wenn er fortlaufend 0x55 sendet.

Viele Grüße

Bernd

7
Beispielcodes und Projekte / Re:PIC24FJ256DA210 Development Board
« am: April 16, 2012, 16:57:29 Nachmittag »
1)
Eine "1" im ANSx-Register konfiguriert den Pin als analogen Eingang.

2)
Main enthält sinnvollerweise eine Endlosschleife. Es gibt kein Betriebssystem, zu dem über "return" zurückgekehrt werden kann.


Viele Grüße
Bernd

8
Sowohl der "Fail-Safe Clock Monitor" als auch "Internal External Switchover" sind deaktivert. Damit kann der interne Oszillator nicht aktiv sein.

Als erstes solltest Du überprüfen, ob der Quarz tatsächlich mit 4 MHz schwingt (evtl. auch mal XT statt HS in den Configuration-Bits einstellen).

Viele Grüße

Bernd

9
Poste bitte mal die Configuration-Bits. Meine erste Vermutung wäre, dass der Quarz nicht schwingt und der Fail-Safe Clock Monitor auf den internen Oszillator umschaltet, der im Default mit 500kHz arbeitet.

Viele Grüße

Bernd

10
Beispielcodes und Projekte / Re:PIC24FJ256DA210 Development Board
« am: April 13, 2012, 16:12:54 Nachmittag »
Der Portpin muss als digitaler Eingang konfiguriert werden (-> ANSG-Register).

Zitat
10.2 Configuring Analog Port Pins (ANSEL)

The ANSx and TRISx registers control the operation of the pins with analog function. Each port pin with analog function is associated with one of the ANS bits (see Register 10-1 through Register 10-7), which decides if the pin function should be analog or digital. Refer to Table 10-1 for detailed behavior of the pin for different ANSx and TRISx bit settings.

When reading the PORT register, all pins configured as analog input channels will read as cleared (a low level).

Viele Grüße
Bernd

11
Programmiersprache C / Re:float in string umwandeln
« am: März 19, 2012, 23:54:11 Nachmittag »
@Manni-64

Die printf() Funktion und ihre Verwandten unterstützen beim C18 kein Umwandlung von floating point.

Zitat
2.7.4 stdio.h Functions
The output functions defined in stdio.h differ from the ANSI defined versions with regards to data in program memory, floating-point format support, and MPLAB C18 specific extensions.
The functions puts and fputs expect the output string to be stored in program memory. The functions vsprintf, vprintf, sprintf, printf, fprintf and vfprintf expect the format string to be stored in program memory.
The functions vsprintf, vprintf, sprintf, printf, fprintf and vfprintf do not support floating-point conversion specifiers.


Viele Grüße

Bernd

12
Programmiersprache C / Re:Compatibility Mode 18F2620 HI-TECH
« am: Januar 02, 2012, 17:05:43 Nachmittag »
Zitat
Was habe ich da übersehen?

Im Compatibility Mode gibt es auch noch das Bit PEIE im INTCON-Register, welches die „peripheral interrupts“ freischaltet, zu denen auch der Timer2-Interrupt gehört. In Deinem Code wird dieses Bit nicht gesetzt -> kein Interrupt.

Bei aktivierter Interrupt-Priorität funktioniert es, da in diesem Fall das GIE-Bit alle aktivierten High-Priority-Interrupts zulässt (wird dann auch GIEH genannt) und das PEIE-Bit alle aktivierten Low-Priority-Interrupts freischaltet (wird entsprechend dann als GIEL-Bit bezeichnet).

Viele Grüße
Bernd

13
Programmiersprache C / Re:Error [1131] type mismatch in assignment
« am: November 05, 2011, 00:57:48 Vormittag »
Zitat
Was ist da falsch?

Der Name des Arrays ist bereits dessen Adresse. Folgendes wäre korrektes C:

pString = String;
// oder auch
pString = &String[0];

Viele Grüße

Bernd

14
Compiler / Re:Union Bitfield
« am: September 06, 2011, 22:20:05 Nachmittag »
Aus Interesse eben gerade mal mit dem C30 v3.30b ausprobiert:

typedef union GYRODATA
{
    unsigned long Data;
    struct
    {
        unsigned int P1:1;
        unsigned int CHK:1;
        unsigned int CST:1;
        unsigned int PWR:1;
        unsigned int POR:1;
        unsigned int NVM:1;
        unsigned int Q:1;
        unsigned int PLL:1;
        unsigned int empty:2;
        unsigned int Daten:16;
        unsigned int ST:2;
        unsigned int P0:1;
        unsigned int SQ:3;
    } __attribute__ ((packed)); // <--
} GYRO1;

Funktioniert wie erwartet und auch ein Zugriff auf „Daten“ bereitet kein Problem.


Viele Grüße

Bernd

15
Compiler / Re:Union Bitfield
« am: September 06, 2011, 18:02:08 Nachmittag »
Der ANSI-C-Standard garantiert nicht, dass Strukturen und Bitfelder an aufeinanderfolgenden Adressen lückenlos im Speicher abgelegt werden (Stichwort „padding“).

Konkret wird in Deinem Beispiel das Bitfeld wie folgt im Speicher abgelegt:

1. 16-Bit-Word: P1 bis empty (10 Bits) und 6 unbenutzte Bits
2. 16-Bit-Word: Daten
3. 16-Bit-Word: ST bis SQ

Der Compiler verwendet diese Anordnung, um den Zugriff auf das Element "Daten" zu optimieren (liegt dann an einer Word-Grenze im Speicher).

Im C30 (gcc) gibt es die Möglichkeit, das Padding über __attribute__ ((packed)) zu deaktivieren. Ob dann aber der Zugriff auf "Daten" noch korrekt funktioniert, kann ich nicht garantieren.


Viele Grüße

Bernd  

Seiten: [1] 2 3 ... 259