<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Mutexes global in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261209#M7779</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use mutexes in my application. I can use the mutexes in the same file as I have initialize the mutex (example: MUTEX_STRUCT Mutex_shiftreg;). If I want exclude the mutex in the header-file, the compiler returns an error. The exclude is (example: extern MUTEX_STRUCT Mutex_shiftreg;). Is there a setting I have to enable in the MQX? How can I use a mutex in other files (global)? I use the MQX 3.6 with CW 7.2 on the derivative.&lt;/P&gt;&lt;P&gt;Thanks for your helpfully answers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Jul 2013 06:08:55 GMT</pubDate>
    <dc:creator>foo86</dc:creator>
    <dc:date>2013-07-09T06:08:55Z</dc:date>
    <item>
      <title>Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261209#M7779</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use mutexes in my application. I can use the mutexes in the same file as I have initialize the mutex (example: MUTEX_STRUCT Mutex_shiftreg;). If I want exclude the mutex in the header-file, the compiler returns an error. The exclude is (example: extern MUTEX_STRUCT Mutex_shiftreg;). Is there a setting I have to enable in the MQX? How can I use a mutex in other files (global)? I use the MQX 3.6 with CW 7.2 on the derivative.&lt;/P&gt;&lt;P&gt;Thanks for your helpfully answers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Jul 2013 06:08:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261209#M7779</guid>
      <dc:creator>foo86</dc:creator>
      <dc:date>2013-07-09T06:08:55Z</dc:date>
    </item>
    <item>
      <title>Re: Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261210#M7780</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Martin Kempf,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you share what the header file contains, code why fails to pass compiler phase. What error does it produce?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't see any reason why it can't have storage-specifier extern.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;c0170&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jul 2013 05:32:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261210#M7780</guid>
      <dc:creator>c0170</dc:creator>
      <dc:date>2013-07-10T05:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261211#M7781</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Martin Kojtal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My header file contains the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma once&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// DEFINITIONS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;#define ANZ_OUTPUT_SR&amp;nbsp; 16 // Anzahl Outputs der Porterweiterung //&lt;/P&gt;&lt;P&gt;// Pins an den Ausgangports&lt;BR /&gt;#define PIN_0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;#define PIN_1&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;#define PIN_2&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;BR /&gt;#define PIN_3&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;#define PIN_4&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;BR /&gt;#define PIN_5&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;BR /&gt;#define PIN_6&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;BR /&gt;#define PIN_7&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------//&lt;BR /&gt;// STRUCTURES and TYPEDEF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;struct gpio&lt;BR /&gt;{&lt;BR /&gt; uint32 port;&lt;BR /&gt; uint32 pin;&lt;BR /&gt;};&lt;BR /&gt;typedef struct gpio t_gpio;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------//&lt;BR /&gt;// VARIABLES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;extern uint16 value_sr;&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Mutexes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;extern MUTEX_STRUCT Mutex_shiftreg; // Mutex fuer das Shiftregister&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Outputs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Port DD&lt;BR /&gt;extern t_gpio Shift_data;&lt;BR /&gt;extern t_gpio Blenden_mot_1;&lt;BR /&gt;extern t_gpio Blenden_mot_2;&lt;BR /&gt;extern t_gpio Blenden_mot_3;&lt;BR /&gt;extern t_gpio Blenden_mot_4;&lt;/P&gt;&lt;P&gt;// Port AS&lt;/P&gt;&lt;P&gt;// Port QS&lt;BR /&gt;extern t_gpio Display_data;&lt;BR /&gt;extern t_gpio Display_clk;&lt;BR /&gt;extern t_gpio Display_cs;&lt;/P&gt;&lt;P&gt;// Port TA&lt;BR /&gt;extern t_gpio Abspalt_mot_2;&lt;BR /&gt;extern t_gpio LED_gelb;&lt;BR /&gt;extern t_gpio Vakuum_mot_2;&lt;BR /&gt;extern t_gpio Reset_Messen;&lt;/P&gt;&lt;P&gt;// Port TC&lt;BR /&gt;extern t_gpio Abspalt_mot_1;&lt;BR /&gt;extern t_gpio LED_rot;&lt;BR /&gt;extern t_gpio Vakuum_mot_1;&lt;BR /&gt;extern t_gpio Buzzer;&lt;/P&gt;&lt;P&gt;// Port TE&lt;/P&gt;&lt;P&gt;// Port TF&lt;/P&gt;&lt;P&gt;// Port TG&lt;/P&gt;&lt;P&gt;// Port UC&lt;/P&gt;&lt;P&gt;// Port UB&lt;BR /&gt;extern t_gpio Shift_clk;&lt;/P&gt;&lt;P&gt;// Port UA&lt;BR /&gt;extern t_gpio USB_Vbuse;&lt;/P&gt;&lt;P&gt;// Port AN&lt;/P&gt;&lt;P&gt;// Port NQ&lt;/P&gt;&lt;P&gt;// Port TI&lt;BR /&gt;extern t_gpio Shift_OE;&lt;BR /&gt;extern t_gpio Shift_latch;&lt;BR /&gt;extern t_gpio Lw_kanal_0;&lt;BR /&gt;extern t_gpio Lw_kanal_1;&lt;BR /&gt;extern t_gpio Lw_kanal_2;&lt;BR /&gt;extern t_gpio Display_A0;&lt;/P&gt;&lt;P&gt;// Port TJ&lt;/P&gt;&lt;P&gt;// Port TH&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// PROTOTYPES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;extern void init_gpio_sr(void);&lt;BR /&gt;extern void init_mutex_gpio_sr(void);&lt;BR /&gt;extern void set_gpio_sr(uint16);&lt;BR /&gt;extern void clr_gpio_sr(uint16);&lt;BR /&gt;extern void set_gpio(t_gpio);&lt;BR /&gt;extern void clr_gpio(t_gpio);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the error that occurs is the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Error&amp;nbsp;&amp;nbsp; : ';' expected&lt;BR /&gt;gpio_shiftregister.h line 39&amp;nbsp;&amp;nbsp; extern MUTEX_STRUCT Mutex_shiftreg; // Mutex fuer das Shiftregister&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for your helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards Martin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jul 2013 05:57:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261211#M7781</guid>
      <dc:creator>foo86</dc:creator>
      <dc:date>2013-07-10T05:57:50Z</dc:date>
    </item>
    <item>
      <title>Re: Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261212#M7782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;that header does not include the header which contains the declaration for MUTEX_STRUCT. Add there &lt;STRONG&gt;#include &amp;lt;mutex.h&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What does your code file include? mqx and bsp header file, anything else?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;c0170&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jul 2013 06:17:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261212#M7782</guid>
      <dc:creator>c0170</dc:creator>
      <dc:date>2013-07-10T06:17:19Z</dc:date>
    </item>
    <item>
      <title>Re: Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261213#M7783</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it works with the include in the header file. Is it necessary to include "mutex.h" in the code and header file? Why doesn't work it, if I include "mutex.h" only in the code file?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My code file below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#include "mcf52259.h"&lt;BR /&gt;#include "mmm52259typ.h"&lt;BR /&gt;#include "mmm52259map.h"&lt;BR /&gt;#include &amp;lt;mqx.h&amp;gt;&lt;BR /&gt;#include &amp;lt;bsp.h&amp;gt;&lt;BR /&gt;#include "mutex.h"&lt;BR /&gt;#include "pinbelegung.h"&lt;/P&gt;&lt;P&gt;#include "gpio_shiftregister.h"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Mutexes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;MUTEX_STRUCT Mutex_shiftreg; // Mutex fuer das Shiftregister&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------// &lt;BR /&gt;// Globale Variablen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;uint16 value_sr; // Abbild fuer die Porterweiterung mit Shiftregister&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Outputs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;// Port DD&lt;BR /&gt;t_gpio Shift_data;&lt;BR /&gt;t_gpio Blenden_mot_1;&lt;BR /&gt;t_gpio Blenden_mot_2;&lt;BR /&gt;t_gpio Blenden_mot_3;&lt;BR /&gt;t_gpio Blenden_mot_4;&lt;/P&gt;&lt;P&gt;// Port AS&lt;/P&gt;&lt;P&gt;// Port QS&lt;BR /&gt;t_gpio Display_data;&lt;BR /&gt;t_gpio Display_clk;&lt;BR /&gt;t_gpio Display_cs;&lt;/P&gt;&lt;P&gt;// Port TA&lt;BR /&gt;t_gpio Abspalt_mot_2;&lt;BR /&gt;t_gpio LED_gelb;&lt;BR /&gt;t_gpio Vakuum_mot_2;&lt;BR /&gt;t_gpio Reset_Messen;&lt;/P&gt;&lt;P&gt;// Port TC&lt;BR /&gt;t_gpio Abspalt_mot_1;&lt;BR /&gt;t_gpio LED_rot;&lt;BR /&gt;t_gpio Vakuum_mot_1;&lt;BR /&gt;t_gpio Buzzer;&lt;/P&gt;&lt;P&gt;// Port TE&lt;/P&gt;&lt;P&gt;// Port TF&lt;/P&gt;&lt;P&gt;// Port TG&lt;/P&gt;&lt;P&gt;// Port UC&lt;/P&gt;&lt;P&gt;// Port UB&lt;BR /&gt;t_gpio Shift_clk;&lt;/P&gt;&lt;P&gt;// Port UA&lt;BR /&gt;t_gpio USB_Vbuse;&lt;/P&gt;&lt;P&gt;// Port AN&lt;/P&gt;&lt;P&gt;// Port NQ&lt;/P&gt;&lt;P&gt;// Port TI&lt;BR /&gt;t_gpio Shift_OE;&lt;BR /&gt;t_gpio Shift_latch;&lt;BR /&gt;t_gpio Lw_kanal_0;&lt;BR /&gt;t_gpio Lw_kanal_1;&lt;BR /&gt;t_gpio Lw_kanal_2;&lt;BR /&gt;t_gpio Display_A0;&lt;/P&gt;&lt;P&gt;// Port TJ&lt;/P&gt;&lt;P&gt;// Port TH&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------// &lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// Funktion init_mutex_gpio_sr()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// Mutex des Shiftregister fuer Porterweiterung initialisieren.&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// return: void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;void init_mutex_gpio_sr(void)&lt;BR /&gt;{&lt;BR /&gt; &lt;BR /&gt; MUTEX_ATTR_STRUCT mutex_attr_shiftreg;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; // Initialisieren der Mutexattribute&lt;BR /&gt; _mutatr_init(&amp;amp;mutex_attr_shiftreg);&lt;BR /&gt; // Initialisieren des Mutex&lt;BR /&gt; _mutex_init(&amp;amp;Mutex_shiftreg, &amp;amp;mutex_attr_shiftreg);&lt;BR /&gt; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//------------------------------------------------------------------// &lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// Funktion set_gpio_sr()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// Ein Ausgang am Shiftregitser setzen.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// uint16: Output der gesetzt werden soll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// return: void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;void set_gpio_sr(uint16 output)&lt;BR /&gt;{&lt;BR /&gt; uint8 lw;&lt;BR /&gt; uint16 tmp_shift = 0x8000;&lt;BR /&gt; &lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; // Mutex sperren, damit der Zugriff auf das Shiftregister von //&lt;BR /&gt; // einem anderen Task gesperrt wird.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; _mutex_lock(&amp;amp;Mutex_shiftreg);&lt;BR /&gt; &lt;BR /&gt; value_sr |= output;&lt;BR /&gt; // Daten durchs Shiftregister abarbeiten //&lt;BR /&gt; for(lw = 0; lw&amp;lt;ANZ_OUTPUT_SR; lw++)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; if(value_sr &amp;amp; tmp_shift) set_gpio(Shift_data);&lt;BR /&gt;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clr_gpio(Shift_data); &lt;BR /&gt;&amp;nbsp; set_gpio(Shift_clk);&amp;nbsp; &lt;BR /&gt;&amp;nbsp; clr_gpio(Shift_clk);&lt;BR /&gt;&amp;nbsp; tmp_shift = tmp_shift&amp;gt;&amp;gt;1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt; // Daten im Shiftregister an die Ausganege legen //&lt;BR /&gt; set_gpio(Shift_latch);&lt;BR /&gt; clr_gpio(Shift_latch);&lt;BR /&gt; &lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; // Mutex freigeben, damit ein anderer Task wieder auf das&amp;nbsp; //&lt;BR /&gt; // Shiftregister zugreifen kann.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; _mutex_unlock(&amp;amp;Mutex_shiftreg);&lt;BR /&gt; &lt;BR /&gt;} // Ende set_gpio_sr()&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// Funktion clr_gpio_sr()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// Ein Ausgang am Shiftregitser zuruecksetzen.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------// &lt;BR /&gt;// uint16: Output der zurueckgesetzt werden soll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;// return: void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt;//------------------------------------------------------------------//&lt;BR /&gt;void clr_gpio_sr(uint16 output)&lt;BR /&gt;{&lt;BR /&gt; uint8 lw;&lt;BR /&gt; uint16 tmp_shift = 0x8000;&lt;BR /&gt; &lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; // Mutex sperren, damit der Zugriff auf das Shiftregister von //&lt;BR /&gt; // einem anderen Task gesperrt wird.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; _mutex_lock(&amp;amp;Mutex_shiftreg);&lt;BR /&gt; &lt;BR /&gt; value_sr &amp;amp;= ~output;&lt;BR /&gt; // Daten durchs Shiftregister abarbeiten //&lt;BR /&gt; for(lw = 0; lw&amp;lt;ANZ_OUTPUT_SR; lw++)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; if(value_sr &amp;amp; tmp_shift) set_gpio(Shift_data);&lt;BR /&gt;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clr_gpio(Shift_data); &lt;BR /&gt;&amp;nbsp; set_gpio(Shift_clk);&amp;nbsp; &lt;BR /&gt;&amp;nbsp; clr_gpio(Shift_clk);&lt;BR /&gt;&amp;nbsp; tmp_shift = tmp_shift&amp;gt;&amp;gt;1;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt; // Daten im Shiftregister an die Ausganege legen //&lt;BR /&gt; set_gpio(Shift_latch);&lt;BR /&gt; clr_gpio(Shift_latch);&lt;/P&gt;&lt;P&gt; //--------------------------------------------------------------//&lt;BR /&gt; // Mutex freigeben, damit ein anderer Task wieder auf das&amp;nbsp; //&lt;BR /&gt; // Shiftregister zugreifen kann.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR /&gt; //--------------------------------------------------------------//&lt;BR /&gt; _mutex_unlock(&amp;amp;Mutex_shiftreg);&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;}// Ende clr_gpio_sr()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jul 2013 06:46:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261213#M7783</guid>
      <dc:creator>foo86</dc:creator>
      <dc:date>2013-07-10T06:46:32Z</dc:date>
    </item>
    <item>
      <title>Re: Mutexes global</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261214#M7784</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This article answers your question:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.eskimo.com/~scs/cclass/int/sx6b.html" rel="nofollow noopener noreferrer" title="http://www.eskimo.com/~scs/cclass/int/sx6b.html" target="_blank"&gt;20.2 Nested Header Files&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can also forward declare that struct and avoid including another header. An example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13734413506409162" jivemacro_uid="_13734413506409162"&gt;
&lt;P&gt;&lt;CODE&gt;&lt;SPAN class="kwd"&gt;typedef&lt;/SPAN&gt;&lt;SPAN class="pln"&gt; &lt;/SPAN&gt;&lt;SPAN class="kwd"&gt;struct &lt;/SPAN&gt;&lt;/CODE&gt;MUTEX_ATTR_STRUCT;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;P&gt;c1070&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jul 2013 07:30:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Mutexes-global/m-p/261214#M7784</guid>
      <dc:creator>c0170</dc:creator>
      <dc:date>2013-07-10T07:30:09Z</dc:date>
    </item>
  </channel>
</rss>

