<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=0%3A0%3A0%3AFFFF%3A79%3A83%3A80%3A97</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=0%3A0%3A0%3AFFFF%3A79%3A83%3A80%3A97"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/0:0:0:FFFF:79:83:80:97"/>
	<updated>2026-04-03T21:15:05Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Vorlage_f%C3%BCr_Projektbeschreibung&amp;diff=71569</id>
		<title>Vorlage für Projektbeschreibung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Vorlage_f%C3%BCr_Projektbeschreibung&amp;diff=71569"/>
		<updated>2013-01-31T07:01:12Z</updated>

		<summary type="html">&lt;p&gt;0:0:0:FFFF:79:83:80:97: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von NAME&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es ist sinnvoll, dem Projekt einen aussagekräftigen Namen zu geben!  Viele der Projekte und Artikel haben &amp;quot;AVR&amp;quot; als Anfang im Artikelnamen stehen. Das erscheint sinnvoll, ist es aber nicht, denn in der alphabetischen Sortierung stehen diese alle unter &#039;A&#039;. Besser ist es, einen Namen zu vergeben, der mit dem Zweck des Projektes übereinstimmt. Also &amp;quot;Gray-Code Decoder für Drehgeber&amp;quot; anstatt &amp;quot;AVR-Drehgeberdecoder&amp;quot;. Bei Software, die nur auf dem AVR läuft, kann das &amp;quot;AVR&amp;quot; als Suchtag verwendet werden oder man sortiert den Artikel in die Kategorie [[:Kategorie:AVR-Projekte|Kategorie:AVR-Projekte]] ein. Falls die Software so geschrieben ist, dass sie auf mehreren verschiedenen CPUs läuft, soll keine CPU im Titel genannt werden.&lt;br /&gt;
&lt;br /&gt;
Hier steht eine kurze Beschreibung und ein Überblick über das Projekt. Wozu ist es gut, was macht es, etc. &lt;br /&gt;
&lt;br /&gt;
Nach dieser Einleitung wird das automatisch erzeugte Inhaltsverzeichnis angezeigteine.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Beschreibung des Projekts als Fließtext und/oder Liste von Features.  &lt;br /&gt;
&lt;br /&gt;
* Feature 1&lt;br /&gt;
* Feature 2&lt;br /&gt;
* Feature 3&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Beschreibung der Software&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.mikrocontroller.net/attachment.php/123/Sourcecode.zip Sourcecode] &lt;br /&gt;
* [http://www.mikrocontroller.net/attachment.php/1234/Schaltplan.pdf Schaltplan]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Bebilderung|Bebilderung von Artikeln]]&lt;br /&gt;
* Diskussion zu diesem Projekt: http://www.mikrocontroller.net/forum/read-4-123.html&lt;br /&gt;
* [[Audio-Projekt|Link zu anderem Projekt]]&lt;br /&gt;
&lt;br /&gt;
Am Ende des Artikels erfolgt eine Einsortierung in Artikel-Schublade(n), auch Kategorie(n) genannt. Damit ist Dein Artikel leichter auffindbar. &lt;br /&gt;
&lt;br /&gt;
Such aus den vorhandenen [[Spezial:Kategorien|Kategorien]] diejenige(n) aus, die am besten auf den Artikel passen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Bitte nicht blind die folgenden Kategorien kopieren ;-)&lt;br /&gt;
Beispiele:&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;br /&gt;
[[Kategorie:FPGA-Projekte]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte| ]]&lt;br /&gt;
[[Category:Projekte| ]]&lt;br /&gt;
[[Kategorie:Tipps für Autoren]]&lt;/div&gt;</summary>
		<author><name>0:0:0:FFFF:79:83:80:97</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Diskussion:16-bit_I/O_SPI_Porterweiterung_mit_Microchip_PIC18&amp;diff=71391</id>
		<title>Diskussion:16-bit I/O SPI Porterweiterung mit Microchip PIC18</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Diskussion:16-bit_I/O_SPI_Porterweiterung_mit_Microchip_PIC18&amp;diff=71391"/>
		<updated>2013-01-29T12:42:10Z</updated>

		<summary type="html">&lt;p&gt;0:0:0:FFFF:79:83:80:97: Die Seite wurde neu angelegt: „Der Quellcode sollte dringend passend formatiert werden und diese Art der Delayfunktion ist Murks weil sie idR vom Optimizer weggeworfen wird... ~~~~“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Quellcode sollte dringend passend formatiert werden und diese Art der Delayfunktion ist Murks weil sie idR vom Optimizer weggeworfen wird... [[Spezial:Beiträge/0:0:0:FFFF:79:83:80:97|0:0:0:FFFF:79:83:80:97]] 12:42, 29. Jan. 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>0:0:0:FFFF:79:83:80:97</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=16-bit_I/O_SPI_Porterweiterung_mit_Microchip_PIC18&amp;diff=71389</id>
		<title>16-bit I/O SPI Porterweiterung mit Microchip PIC18</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=16-bit_I/O_SPI_Porterweiterung_mit_Microchip_PIC18&amp;diff=71389"/>
		<updated>2013-01-29T12:41:16Z</updated>

		<summary type="html">&lt;p&gt;0:0:0:FFFF:79:83:80:97: c-code mit passenden tags versehen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Vorwort ==&lt;br /&gt;
Eines Tages bin ich auf die Idee gekommen ein Key-Pad an mein PIC18 anzuschließen und habe lediglich verstanden, dass die Nutzung der eigenen Ports – Pins nicht so ganz attraktiv aussieht , alleine durch, dass der Anschluss eines 12-Tasten-Keypad 7 Port-Pins gebraucht wird.  Dieses ist ziemlich einfach durch ein MSSP – Modul des Controllers zu realisieren. Aber Alles der Reihe nach….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabenstellung ==&lt;br /&gt;
&lt;br /&gt;
Aufgabenstellung sieht folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
1. Wir brauchen ein matrizenähnliches KeyPad, welches wir am Microkontroller anschließen. Wichtig dabei ist, dass die Datenübertragung im Duplexmode (d.h. Empfang+ Sendung) realisiert wird.&lt;br /&gt;
&lt;br /&gt;
2. Die Informationen der Tastatur muss korrekt interpretiert und auf dem &amp;quot;7-Segment Display&amp;quot; dargestellt werden. Die Situation, wenn mehrere Tasten gedrückt werden muss ausgeschlossen sein.&lt;br /&gt;
&lt;br /&gt;
3. Es müssen so weniger Kontakt-Pins des Microkontrollers verwendet werden.&lt;br /&gt;
 &lt;br /&gt;
4. Die Kostenfrage. Um das Ganze zu realisieren, verwenden wir so wenig Bausteine wie möglich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Bild 1 zeigt, wie das Ganze hardwaremäßig realisiert wurde und im Weiteren versuche ich zu erklären wie die Erstellung funktionieren soll.&lt;br /&gt;
[[Datei:PIC18_SPI.jpg]]&lt;br /&gt;
Die Grundprinzipien des MSSP – Moduls werden hier nicht betrachtet, dafür gibt es  ein Datenblatt von Microchip, im Entwurf habe ich allerdings ein MSSP- Modul im SPI Modus benutzt.&lt;br /&gt;
Wie auf dem Bild zu sehen, um die ganze Peripherie anzuschließen, habe ich nur 4 PortPins des PIC18 gebraucht: Port B(Pin B0) um das ChipSelect -Signal auszugeben, und PortPins RC3 bis RC5 des Ports C (hiermit wird MOSI, MISO und Taktsignale erzeugt).&lt;br /&gt;
Als Porterweiterung wird ein MCP23S17(U2) von der Firma Microchip benutzt. Alle 16 Bit-Ausgänge können als Inputs oder Outputs mit oder ohne Pull-Up Widerstände konfiguriert werden.&lt;br /&gt;
Port A des MCP23S17(U2) ist direkt am Eingäng des BCD to 7-Segment Umwandlers angeschlossen.&lt;br /&gt;
Der 74LS248 wandelt die 4-bits Parallel Code in die 7-Segment Information um.&lt;br /&gt;
Port A von MCP23S17(U2)  soll als Ausgang eingestellt werden und die Nummer der gedruckten Taste ausgeben.&lt;br /&gt;
&lt;br /&gt;
Die ersten 4 bits vom Port B sollen als Ausgänge dienen, die Pins 4 bis 6 des Ports B sind Eingänge.&lt;br /&gt;
Diese Einstellung ist notwendige Bedingung  für die Tastaturabfrage, die Tastatur wird dynamisch abgefragt. &lt;br /&gt;
Was heißt das? Das heißt, dass nur eine Zeile (A,B,C oder D) zu jedem Zeitpunkt eine logische 1 bekommt. Danach wird geprüft, ob die Spalte 1,2 oder 3 auch eine logische 1 hat. Ist  das der Fall, dann wird angenommen, dass die entsprechende Taste gedrückt wurde. (Siehe mein Video im Anhang).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Der Quellcode wurde in C in der Umgebung MPLAB IDE geschrieben und  in Proteus simuliert.&lt;br /&gt;
&lt;br /&gt;
Der Quellcode besteht aus der Main-Datei, wo der SPI –Modus des Controllers sowie die  Porteinstellungen des  MCP23S17(U2) vorgenommen wurden.  Außerdem beinhaltet die Main-funktion  Aufruf  der Funktionen „Keyboard();“ und  „ISP_Transmition“, die den Tastaturzustand abfragt sowie auf dem Display anzeigt.&lt;br /&gt;
&lt;br /&gt;
Funktion  initISP() besteht aus TRISC und TRISB-bits. Damit stellen wir ein, ob ein entsprechender Pin Ein- oder Ausgang ist. &lt;br /&gt;
SSPCON1bits.SSPM0- SSPCON1bits.SSPM3  - diese Bits Schalten SPI Modus mit Taktfrequenz fOSZ/4;&lt;br /&gt;
SSPCON1bits.SSPEN schaltet MSSP an.&lt;br /&gt;
Danach werden die Ports von MCP23S17 als Eingänge oder Ausgänge eingestellt.&lt;br /&gt;
&lt;br /&gt;
Die Datenübertragung zwischen dem Microcontroller und dem MCP23S17 braucht  24 Bit, also 3 Byte.Das erste Byte trägt Information über die HW-Adresse in sich und noch ein Bit besagt ob es um Lese- oder Schreiboperationen geht. Das zweite Byte bezieht sich auf die Registeradresse des ICs (hiermit sagen wir ob Port A bzw. B ein Ein- oder Ausgang ist, greifen auf Ausgabepuffer zu oder lesen die aktuellen Werte aus). Das dritte Byte trägt die Daten. (Siehe Bild 2)&lt;br /&gt;
&lt;br /&gt;
[[Datei:SPI_Protokol.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	Die Funktion Keyboard(); soll die Zeilen A,B,C und D nacheinander mit 1 verbinden und die Spalten abfragen. Gewisse Binärwerte werden dann interpretiert und entsprechenden Tasten zugewiesen.&lt;br /&gt;
•	Die erhaltene Information über die aktuell gedrückte Taste wird letztendlich   binär umgesetzt sowie auf den PortPins A0- bis A3 ausgegeben und in 7 Segment-Form interpretiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Erweiterung ==&lt;br /&gt;
&lt;br /&gt;
Die oben gezeigte Schaltung erlaubt  uns weitere Port-Pin Erweiterungen auszuführen und bis zu 8 MCP23S17 anzuschließen. Dabei sollen die HW-Adressen, der anzuschließenden MCP23S17, sowie die Software modifiziert werden. In diesem Fall steigt die Zahl der I/O Pins bis zu 128 plus die eigenen Pins des Microkontrollers. Allerdings muss darauf geachtet werden, dass die Bearbeitungsgeschwindigkeit in diesem Fall abnimmt (Siehe Bild 3).&lt;br /&gt;
[[Datei:SPI Weiterentwicklung.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;br /&gt;
&lt;br /&gt;
[http://youtu.be/uYNnGu3q_JE Video-Beispiel]&lt;br /&gt;
[[Datei:Main.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellcode ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main.c&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;p18f4520.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #pragma config OSC=ECIO6, PWRT = OFF  , LVP= OFF , WDT=OFF, PBADEN=OFF &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define   CE LATBbits.LATB0 //Fur SPI Mode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char Keyboard (void); // Funktionsprototyp&lt;br /&gt;
void delay (void);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////Mit dieser Funktion werden die Daten an die I/O Pins ubergeben/////&lt;br /&gt;
&lt;br /&gt;
void SPI_Transmition(char HW_adresse, char Register, char value)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
CE=0;//Ubertragung AN&lt;br /&gt;
&lt;br /&gt;
SSPBUF=64+HW_adresse+0;  //Byte 1 - HW-Adresse +  Write&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
&lt;br /&gt;
SSPBUF=Register;//Registernummer in HEX&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
&lt;br /&gt;
SSPBUF=value;// Datei-Byte&lt;br /&gt;
&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
CE=1;//Ubertragung AUS&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//////Mit dieser Funktion werden die Daten von  I/O Pins ausgelesen/////&lt;br /&gt;
&lt;br /&gt;
char SPI_Receive(char HW_adresse, char Register)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
CE=0;//Ubertragung AN&lt;br /&gt;
&lt;br /&gt;
SSPBUF=64+HW_adresse+1;  //Byte 1 - HW-Adresse +  Read&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
&lt;br /&gt;
SSPBUF=Register;//Registernummer in HEX&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
&lt;br /&gt;
SSPBUF=0;// Datei-Byte&lt;br /&gt;
&lt;br /&gt;
while(!SSPSTATbits.BF)&lt;br /&gt;
{}&lt;br /&gt;
CE=1;//Ubertragung AUS&lt;br /&gt;
&lt;br /&gt;
return SSPBUF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void initSPI(void)&lt;br /&gt;
{&lt;br /&gt;
TRISBbits.RB0=0;//Output&lt;br /&gt;
CE=1;//High-Pegel&lt;br /&gt;
TRISCbits.RC3=0;//Output SCK&lt;br /&gt;
TRISCbits.RC5=0;//Output SDO&lt;br /&gt;
TRISCbits.RC4=1;//Input SDI&lt;br /&gt;
&lt;br /&gt;
SSPSTATbits.CKE=0;&lt;br /&gt;
SSPCON1bits.CKP=1;&lt;br /&gt;
&lt;br /&gt;
SSPCON1bits.SSPM0=0;&lt;br /&gt;
SSPCON1bits.SSPM1=0;&lt;br /&gt;
SSPCON1bits.SSPM2=0;&lt;br /&gt;
SSPCON1bits.SSPM3=0;//Master mode fOSZ/4&lt;br /&gt;
&lt;br /&gt;
SSPCON1bits.SSPEN=1;//SPI Enable&lt;br /&gt;
&lt;br /&gt;
//////MCP23S17  Einstellung////////////////////////////////////&lt;br /&gt;
///////////////////PortA ist Output////////////////////////////&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0,0x00,0); &lt;br /&gt;
&lt;br /&gt;
//////MCP23S17  Einstellung////////////////////////////////////&lt;br /&gt;
///////////////////PortB ist INput////////////////////////////&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0,0x01,0b11110000); //Bits 0-3 Ausgange, 4-7 Eingange&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main (void)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
char temp;&lt;br /&gt;
&lt;br /&gt;
initSPI();//Initialisieren SPI&lt;br /&gt;
&lt;br /&gt;
while(1)// &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
temp=Keyboard();&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0,0x14,temp);//Tastaturabfrage und Ausgabe auf dem 7-Seg Display&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Keyboard.c&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;p18f4520.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void SPI_Transmition(char HW_adresse, char Register, char value);//Prototypen&lt;br /&gt;
&lt;br /&gt;
char SPI_Receive(char HW_adresse, char Register);&lt;br /&gt;
&lt;br /&gt;
void delay (void);&lt;br /&gt;
&lt;br /&gt;
char Keyboard (void)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
char temp2;&lt;br /&gt;
delay();&lt;br /&gt;
SPI_Transmition(0, 0x15, 0b00000001);//Logisches 1 auf die erste Zeile&lt;br /&gt;
temp2=SPI_Receive(0, 0x13);&lt;br /&gt;
&lt;br /&gt;
if((temp2==17)||(temp2==33)||(temp2==65))&lt;br /&gt;
&lt;br /&gt;
// break- Anweisung ist im Grunde nicht notwendig///&lt;br /&gt;
&lt;br /&gt;
switch(temp2)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
case 17: return 10;break;&lt;br /&gt;
case 33: return 0;break;&lt;br /&gt;
case 65: return 11;break;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0, 0x15, 0b00000010);//Logisches 1 auf die zweite Zeile&lt;br /&gt;
&lt;br /&gt;
temp2=SPI_Receive(0, 0x13);&lt;br /&gt;
&lt;br /&gt;
if((temp2==18)||(temp2==34)||(temp2==66))&lt;br /&gt;
&lt;br /&gt;
switch(temp2)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
case 18: return 7;break;&lt;br /&gt;
case 34: return 8;break;&lt;br /&gt;
case 66: return 9;break;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0, 0x15, 0b00000100);//Logisches 1 auf die dritte Zeile&lt;br /&gt;
&lt;br /&gt;
temp2=SPI_Receive(0, 0x13);&lt;br /&gt;
&lt;br /&gt;
if((temp2==20)||(temp2==36)||(temp2==68))&lt;br /&gt;
&lt;br /&gt;
switch(temp2)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
case 20: return 4;break;&lt;br /&gt;
case 36: return 5;break;&lt;br /&gt;
case 68: return 6;break;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SPI_Transmition(0, 0x15, 0b00001000);//Logisches 1 auf die vierte Zeile&lt;br /&gt;
temp2=SPI_Receive(0, 0x13);&lt;br /&gt;
&lt;br /&gt;
if((temp2==24)||(temp2==40)||(temp2==72))&lt;br /&gt;
&lt;br /&gt;
switch(temp2)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
case 24: return 1;break;&lt;br /&gt;
case 40: return 2;break;&lt;br /&gt;
case 72: return 3;break;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return 14; //Falls nichts gedruckt wurde&lt;br /&gt;
//Andere Tastenkombinationen werden nicht behandelt&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;delay.c&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
void delay (void)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
int i=0;&lt;br /&gt;
int a=0;&lt;br /&gt;
for(i;i&amp;lt;4000;i++)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
for(a;a&amp;lt;20;a++)&lt;br /&gt;
&lt;br /&gt;
{}&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;/div&gt;</summary>
		<author><name>0:0:0:FFFF:79:83:80:97</name></author>
	</entry>
</feed>