<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4461715636256518698</id><updated>2024-11-01T03:34:23.936-07:00</updated><title type='text'>LITIUM</title><subtitle type='html'>Electrónica &#xa;Programacion &#xa;&#xa;C++ &#xa;C#&#xa;Assembly&#xa;&#xa;8051  AVR   ARM7  ARM9</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-5663270751828572173</id><published>2012-01-06T08:22:00.001-08:00</published><updated>2022-11-25T03:14:28.156-08:00</updated><title type='text'>FFT   ARM9  S3C2440</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8uNqMz0E0gKUYSzeBkrXG8WwhHRiawkU85_aCRzbTe4JrA0-oayOjsx31gD4U6W52VidnHo7zhQ4zfl22k-OLCvBYOl9LJJTYnD4gzAp3hupRgbhALedjQ7VrM9mV0p_kCC5aa4EiNM/s1600/100_3110.JPG&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8uNqMz0E0gKUYSzeBkrXG8WwhHRiawkU85_aCRzbTe4JrA0-oayOjsx31gD4U6W52VidnHo7zhQ4zfl22k-OLCvBYOl9LJJTYnD4gzAp3hupRgbhALedjQ7VrM9mV0p_kCC5aa4EiNM/s320/100_3110.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&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; &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;&lt;a href=&quot;http://www.youtube.com/watch?v=HemL3kkgkVk&quot;&gt;http://www.youtube.com/watch?v=HemL3kkgkVk&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &quot;def.h&quot;&lt;br /&gt;
#include &quot;math.h&quot;&lt;br /&gt;
#include &quot;float.h&quot;&lt;br /&gt;
#include &quot;2440addr.h&quot;&lt;br /&gt;
#include &quot;2440lib.h&quot;&lt;br /&gt;
#include &quot;2440slib.h&quot;&lt;br /&gt;
#include &quot;lcd.h&quot;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;&lt;br /&gt;
/* function prototypes FFT */&lt;br /&gt;
void fft(int N, double (*x)[2], double (*X)[2]);&lt;br /&gt;
void fft_rec(int N, int offset, int delta, double (*x)[2], double (*X)[2], double (*XX)[2]);&lt;br /&gt;
void ifft(int N, double (*x)[2], double (*X)[2]);&lt;br /&gt;
void FTT_PAINT (int nn);&lt;br /&gt;
void init_FFT (void);&lt;br /&gt;&lt;br /&gt;
#define TWO_PI (6.2831853071795864769252867665590057683943L)&lt;br /&gt;
#define NN 256&lt;br /&gt;
int N = NN ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* number of points in FFT */&lt;br /&gt;
double (*x)[2]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* pointer to time-domain samples */&lt;br /&gt;
double (*X)[2]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* pointer to frequency-domain samples */&lt;br /&gt;
double dummy; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* scratch variable */&lt;br /&gt;
int iFFT = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* generic index */&lt;br /&gt;
U32 X_antigou[256][2];&lt;br /&gt;
&lt;br /&gt;
#define RGB(g,r,b) &amp;nbsp; (unsigned int)( (r &amp;lt;&amp;lt; 16) + (g &amp;lt;&amp;lt; 8) + b )&lt;br /&gt;
&lt;br /&gt;
void init_FFT (void)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;x = malloc(2 * N * sizeof(double));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;X = malloc(2 * N * sizeof(double));&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 15 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;0&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 80 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;1K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 148 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;2K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 216 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;3K&quot; );&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 284 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;4K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 352 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;5K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 420 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;6K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 488 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;7K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 556 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;8K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 624 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;9K&quot; );&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 692 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;10K&quot; );&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;Lcd_printf( 760 , 30 ,RGB( 0xff,0xff,0xff),RGB( 0x00,0x00,0x00),0,&quot;11K&quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void FTT_PAINT (int nn)&lt;br /&gt;
{ &lt;br /&gt;
&amp;nbsp; &amp;nbsp; int m;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; int mmm;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; U32 X1;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; fft(nn, x, &amp;nbsp;X); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; mmm=0;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; for (m = 1; m &amp;lt;= (nn/2)-1 ; &amp;nbsp;m++ )&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; X1 = &amp;nbsp; sqrt( pow(X[m][0],2) + pow(X[m][1],2) &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; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if((X1) &amp;gt;= 415 )&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{X1 = 415;}&lt;br /&gt;
&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; mmm = mmm+6;&amp;nbsp; &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; Glib_Line( 10+mmm &amp;nbsp; , 476 , 10+mmm &amp;nbsp; , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm &amp;nbsp; , 476 , 10+mmm &amp;nbsp; , 476-X1 &amp;nbsp;,RGB(0XFA,0X4F,0X02)); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+1 , 476 , 10+mmm+1 , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+1 , 476 , 10+mmm+1 , 476-X1 &amp;nbsp;,RGB(0XFA,0X4F,0X02)); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+2 , 476 , 10+mmm+2 , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+2 , 476 , 10+mmm+2 , 476-X1 &amp;nbsp;,RGB(0XFA,0X4F,0X02)); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+3 , 476 , 10+mmm+3 , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+3 , 476 , 10+mmm+3 , 476-X1 &amp;nbsp;,RGB(0XFA,0X4F,0X02)); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+4 , 476 , 10+mmm+4 , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+4 , 476 , 10+mmm+4 , 476-X1 &amp;nbsp;,RGB(0XFA,0X4F,0X02)); &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Glib_Line( 10+mmm+5 , 476 , 10+mmm+5 , 476-X_antigou[m][0] ,RGB(0X00,0X00,0X00));&lt;br /&gt;
&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; X_antigou[m][1]&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;= X1;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&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; for (m = 1; m &amp;lt;= (nn/2)-1 ; &amp;nbsp;m++ &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; X_antigou[m][0] = &amp;nbsp;X_antigou[m][1];&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*----------------------------------------------------------------------------&lt;br /&gt;
&amp;nbsp; &amp;nbsp;fft.c - fast Fourier transform and its inverse (both recursively)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;Copyright (C) 2004, Jerome R. Breitenbach. &amp;nbsp;All rights reserved.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;The author gives permission to anyone to freely copy, distribute, and use&lt;br /&gt;
&amp;nbsp; &amp;nbsp;this file, under the following conditions:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; - No changes are made.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; - No direct commercial advantage is obtained.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; - No liability is attributed to the author for any damages incurred.&lt;br /&gt;
&amp;nbsp; ----------------------------------------------------------------------------*/&lt;br /&gt;
&lt;br /&gt;
/* FFT */&lt;br /&gt;
void fft(int N, double (*x)[2], double (*X)[2])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; double (*XX)[2] = malloc(2 * N * sizeof(double));&lt;br /&gt;
&amp;nbsp; fft_rec(N, 0, 1 , x, X, XX);&lt;br /&gt;
&amp;nbsp; free(XX);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* FFT recursion */&lt;br /&gt;
void fft_rec(int N, int offset, int delta, double (*x)[2], double (*X)[2], double (*XX)[2])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; int N2 = N/2; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* half the number of points in FFT */&lt;br /&gt;
&amp;nbsp; int k; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* generic index */&lt;br /&gt;
&amp;nbsp; double cs, sn; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* cosine and sine */&lt;br /&gt;
&amp;nbsp; int k00, k01, k10, k11; &amp;nbsp;/* indices for butterflies */&lt;br /&gt;
&amp;nbsp; double tmp0, tmp1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* temporary storage */&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; if(N != 2) &amp;nbsp;/* Perform recursive step. */&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; fft_rec(N2, offset, 2*delta, x, XX, X);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; fft_rec(N2, offset+delta, 2*delta, x, XX, X);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; for(k=0; k&amp;lt;N2; k++)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; k00 = offset + k*delta; &amp;nbsp; &amp;nbsp;k01 = k00 + N2*delta;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; k10 = offset + 2*k*delta; &amp;nbsp;k11 = k10 + delta;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cs = cos(TWO_PI*k/(double)N); sn = sin(TWO_PI*k/(double)N);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tmp0 = cs * XX[k11][0] + sn * XX[k11][1];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tmp1 = cs * XX[k11][1] - sn * XX[k11][0];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; X[k01][0] = XX[k10][0] - tmp0;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; X[k01][1] = XX[k10][1] - tmp1;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; X[k00][0] = XX[k10][0] + tmp0;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; X[k00][1] = XX[k10][1] + tmp1;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; else&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; k00 = offset; k01 = k00 + delta;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; X[k01][0] = x[k00][0] - x[k01][0];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; X[k01][1] = x[k00][1] - x[k01][1];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; X[k00][0] = x[k00][0] + x[k01][0];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; X[k00][1] = x[k00][1] + x[k01][1];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* IFFT */&lt;br /&gt;
void ifft(int N, double (*x)[2], double (*X)[2])&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; int N2 = N/2; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* half the number of points in IFFT */&lt;br /&gt;
&amp;nbsp; int i; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* generic index */&lt;br /&gt;
&amp;nbsp; double tmp0, tmp1; &amp;nbsp; /* temporary storage */&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; /* Calculate IFFT via reciprocity property of DFT. */&lt;br /&gt;
&amp;nbsp; fft(N, X, x);&lt;br /&gt;
&amp;nbsp; x[0][0] = x[0][0]/N; &amp;nbsp; &amp;nbsp;x[0][1] = x[0][1]/N;&lt;br /&gt;
&amp;nbsp; x[N2][0] = x[N2][0]/N; &amp;nbsp;x[N2][1] = x[N2][1]/N;&lt;br /&gt;
&amp;nbsp; for(i=1; i&amp;lt;N2; i++)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; tmp0 = x[i][0]/N; &amp;nbsp; &amp;nbsp; &amp;nbsp; tmp1 = x[i][1]/N;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; x[i][0] = x[N-i][0]/N; &amp;nbsp;x[i][1] = x[N-i][1]/N;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; x[N-i][0] = tmp0; &amp;nbsp; &amp;nbsp; &amp;nbsp; x[N-i][1] = tmp1;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
}</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/5663270751828572173/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2012/01/fft-arm9-s3c2440.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/5663270751828572173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/5663270751828572173'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2012/01/fft-arm9-s3c2440.html' title='FFT   ARM9  S3C2440'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8uNqMz0E0gKUYSzeBkrXG8WwhHRiawkU85_aCRzbTe4JrA0-oayOjsx31gD4U6W52VidnHo7zhQ4zfl22k-OLCvBYOl9LJJTYnD4gzAp3hupRgbhALedjQ7VrM9mV0p_kCC5aa4EiNM/s72-c/100_3110.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-4515030576864812170</id><published>2011-12-06T09:41:00.000-08:00</published><updated>2011-12-06T09:53:42.756-08:00</updated><title type='text'>MORSE  c++</title><content type='html'>#include &lt;morse.h&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// PROTO&lt;br /&gt;
void MorseTX(char *letra,uint32_t Velo);&lt;br /&gt;
void Morse_Encoder (char *morse,  uint32_t Velo );&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char Buffer_Tx [] = &quot;VVV LU7FJ LU7FJ FF99QE  TST&quot;;&lt;br /&gt;
&lt;br /&gt;
*/              EJEMPLO&lt;br /&gt;
Morse_Encoder (Buffer_Tx,30); &lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
char A[] = {&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char B[] = {&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char C[] = {&#39;-&#39;,&#39;.&#39;,&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char D[] = {&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char E[] = {&#39;.&#39;,0};&lt;br /&gt;
char F[] = {&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char G[] = {&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char H[] = {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char I[] = {&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char J[] = {&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char K[] = {&#39;-&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char L[] = {&#39;.&#39;,&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char M[] = {&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char N[] = {&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char O[] = {&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char P[] = {&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char Q[] = {&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char R[] = {&#39;.&#39;,&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char S[] = {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char T[] = {&#39;-&#39;,0};&lt;br /&gt;
char U[] = {&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char V[] = {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char W[] = {&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char X[] = {&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char Y[] = {&#39;-&#39;,&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char Z[] = {&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char SPACE[] = {&#39; &#39;,0}; &lt;br /&gt;
&lt;br /&gt;
char n1 []= {&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char n2 []= {&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char n3 []= {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
char n4 []= {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;-&#39;,0};&lt;br /&gt;
char n5 []= {&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char n6 []= {&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char n7 []= {&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char n8 []= {&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,&#39;.&#39;,0};&lt;br /&gt;
char n9 []= {&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;.&#39;,0};&lt;br /&gt;
char n0 []= {&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,&#39;-&#39;,0};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;portc4); &lt;br=&quot;&quot;&gt;&lt;portc4);
&lt;portc4); &lt;br=&quot;&quot;&gt;&lt;portc4);
&lt;portc4); &lt;br=&quot;&quot;&gt;&lt;br /&gt;
void MorseTX( char *letra, uint32_t Velo )&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t vel ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t RV = 50 - Velo;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char x&amp;nbsp; = (*letra); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch(x)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; case&amp;nbsp; &#39;.&#39;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTC |= (1&amp;lt;&amp;lt;PORTC4);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(2);}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; PORTC &amp;amp;= ~(1&amp;lt;&amp;lt;PORTC4);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(2);}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; break; &lt;br /&gt;
&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; case&amp;nbsp; &#39;-&#39;:&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; PORTC |= (1&amp;lt;&amp;lt;PORTC4);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(6);}&amp;nbsp;&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; PORTC &amp;amp;= ~(1&amp;lt;&amp;lt;PORTC4);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(2);}&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; break;&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; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; case&amp;nbsp; &#39; &#39;:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; PORTC &amp;amp;= ~(1&amp;lt;&amp;lt;PORTC4);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(8);}&amp;nbsp;&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; break;&lt;br /&gt;
&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; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; while(*++letra) ; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; for (vel = 0; vel &amp;lt; RV; vel++){_delay_ms(4);}&amp;nbsp;&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;
&lt;br /&gt;
void Morse_Encoder (char *morse, uint32_t vpm )&lt;br /&gt;
{ &lt;br /&gt;
&lt;br /&gt;
do &lt;br /&gt;
{&lt;br /&gt;
char x = (*morse); &lt;br /&gt;
switch(x)&lt;br /&gt;
{&lt;br /&gt;
case &#39;A&#39;:&lt;br /&gt;
MorseTX(A,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;B&#39;:&lt;br /&gt;
MorseTX(B,vpm);&lt;br /&gt;
break;&lt;br /&gt;
case &#39;C&#39;:&lt;br /&gt;
MorseTX(C,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;D&#39;:&lt;br /&gt;
MorseTX(D,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;E&#39;:&lt;br /&gt;
MorseTX(E,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;F&#39;:&lt;br /&gt;
MorseTX(F,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;G&#39;:&lt;br /&gt;
MorseTX(G,vpm);&lt;br /&gt;
break;&lt;br /&gt;
case  &#39;H&#39;:&lt;br /&gt;
MorseTX(H,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;I&#39;:&lt;br /&gt;
MorseTX(I,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;J&#39;:&lt;br /&gt;
MorseTX(J,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;K&#39;:&lt;br /&gt;
MorseTX(K,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;L&#39;:&lt;br /&gt;
MorseTX(L,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case  &#39;M&#39;:&lt;br /&gt;
MorseTX(M,vpm);&lt;br /&gt;
break;	 &lt;br /&gt;
case &#39;N&#39;:&lt;br /&gt;
MorseTX(N,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;O&#39;:&lt;br /&gt;
MorseTX(O,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;P&#39;:&lt;br /&gt;
MorseTX(P,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;Q&#39;:&lt;br /&gt;
MorseTX(Q,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;R&#39;:&lt;br /&gt;
MorseTX(R,vpm);&lt;br /&gt;
break;&lt;br /&gt;
case &#39;S&#39;:&lt;br /&gt;
MorseTX(S,vpm);&lt;br /&gt;
break;			 &lt;br /&gt;
case &#39;T&#39;:&lt;br /&gt;
MorseTX(T,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;U&#39;:&lt;br /&gt;
MorseTX(U,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;V&#39;:&lt;br /&gt;
MorseTX(V,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;W&#39;:&lt;br /&gt;
MorseTX(W,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;X&#39;:&lt;br /&gt;
MorseTX(X,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;Y&#39;:&lt;br /&gt;
MorseTX(Y,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;Z&#39;:&lt;br /&gt;
MorseTX(Z,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39; &#39;:&lt;br /&gt;
MorseTX(SPACE,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;0&#39;:&lt;br /&gt;
MorseTX(n0,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;1&#39;:&lt;br /&gt;
MorseTX(n1,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;2&#39;:&lt;br /&gt;
MorseTX(n2,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;3&#39;:&lt;br /&gt;
MorseTX(n3,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;4&#39;:&lt;br /&gt;
MorseTX(n4,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;5&#39;:&lt;br /&gt;
MorseTX(n5,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;6&#39;:&lt;br /&gt;
MorseTX(n6,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;7&#39;:&lt;br /&gt;
MorseTX(n7,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;8&#39;:&lt;br /&gt;
MorseTX(n8,vpm);&lt;br /&gt;
break;	&lt;br /&gt;
case &#39;9&#39;:&lt;br /&gt;
MorseTX(n9,vpm);&lt;br /&gt;
break;		 &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
} while (*++morse);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/portc4);&gt;&lt;/portc4);
&lt;/portc4);&gt;&lt;/portc4);
&lt;/portc4);&gt;&lt;/morse.h&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/4515030576864812170/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/12/morse-c.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/4515030576864812170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/4515030576864812170'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/12/morse-c.html' title='MORSE  c++'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-1412259527593714375</id><published>2011-06-28T12:02:00.000-07:00</published><updated>2011-06-28T18:47:11.793-07:00</updated><title type='text'>RMC - NMEA has its own version of essential gps pvt (position, velocity, time)</title><content type='html'>&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=4461715636256518698&amp;amp;postID=1412259527593714375&amp;amp;from=pencil&quot; name=&quot;RMC&quot;&gt;&lt;b&gt;RMC&lt;/b&gt;&lt;/a&gt;&amp;nbsp;- NMEA has its own version of essential gps pvt (position, velocity, time) data. It is called RMC, The Recommended Minimum, which will look similar to:&lt;br /&gt;
&lt;pre&gt;$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

Where:
     RMC          Recommended Minimum sentence C
     123519       Fix taken at 12:35:19 UTC
     A            Status A=active or V=Void.
     4807.038,N   Latitude 48 deg 07.038&#39; N
     01131.000,E  Longitude 11 deg 31.000&#39; E
     022.4        Speed over the ground in knots
     084.4        Track angle in degrees True
     230394       Date - 23rd of March 1994
     003.1,W      Magnetic Variation
     *6A          The checksum data, always begins with *
&lt;/pre&gt;Note that, as of the 2.3 release of NMEA, there is a new field in the RMC sentence at the end just prior to the checksum. For more information on this field&amp;nbsp;&lt;a href=&quot;http://www.gpsinformation.org/dale/nmea.htm#2.3&quot;&gt;see here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
real &amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;$GPRMC,184203.999,V,2340.2965,S,04632.7430,W,000.0,000.0,280611,,,N*7E&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
union G_RMC&lt;br /&gt;
{&lt;br /&gt;
struct &amp;nbsp;{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char RMC [6];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char UTC[10]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp;Fix taken at &amp;nbsp;UTC &amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;184203.999&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Status[1]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; Status A=active or V=Void.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Latitude[9]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; Latitude &amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;2340.2965&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char N_S[1]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; N / S&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Longitude[11]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp;Longitude&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;04632.7430&lt;/span&gt;&amp;nbsp;E - W&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char W_E[1]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;W / E&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Speed_k [5]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp;Speed over the ground in knots&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Track_angle[5]; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp;Track angle in degrees True&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char DATE [6]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #cc0000;&quot;&gt;280611&lt;/span&gt;&amp;nbsp; Date - 26rd of 06 &amp;nbsp;2011&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Magnetic_V[5]; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Magnetic Variation&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Magnetic_W[1]; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&quot;W&quot; si hay datos&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char Magnetic_N[1]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* &amp;nbsp;N novalid data ,&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; A modo outonomo ,&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; D diferencial ,&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; E estimado deat zone ,&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;M entrada manual&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; S modo simulado */&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char checksum[2]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp;checksum &amp;nbsp; 7E&lt;br /&gt;
&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; struct&lt;br /&gt;
&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;char GPS_GPRMCN[];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};&lt;br /&gt;
};&lt;br /&gt;
union G_RMC GPS_RMC;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/1412259527593714375/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/rmc-nmea-has-its-own-version-of.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/1412259527593714375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/1412259527593714375'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/rmc-nmea-has-its-own-version-of.html' title='RMC - NMEA has its own version of essential gps pvt (position, velocity, time)'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-9048771214495549197</id><published>2011-06-28T12:00:00.000-07:00</published><updated>2011-06-28T12:11:39.061-07:00</updated><title type='text'>VTG - Velocity made good.</title><content type='html'>&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=4461715636256518698&amp;amp;postID=9048771214495549197&amp;amp;from=pencil&quot; name=&quot;VTG&quot;&gt;&lt;b&gt;VTG&lt;/b&gt;&lt;/a&gt;&amp;nbsp;- Velocity made good. The gps receiver may use the LC prefix instead of GP if it is emulating Loran output.&lt;br /&gt;
&lt;pre&gt;$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48

where:
        VTG          Track made good and ground speed
        054.7,T      True track made good (degrees)
        034.4,M      Magnetic track made good
        005.5,N      Ground speed, knots
        010.2,K      Ground speed, Kilometers per hour
        *48          Checksum
&lt;/pre&gt;Note that, as of the 2.3 release of NMEA, there is a new field in the VTG sentence at the end just prior to the checksum. For more information on this field&amp;nbsp;&lt;a href=&quot;http://www.gpsinformation.org/dale/nmea.htm#2.3&quot;&gt;see here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/9048771214495549197/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/vtg-velocity-made-good.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/9048771214495549197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/9048771214495549197'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/vtg-velocity-made-good.html' title='VTG - Velocity made good.'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-4998274844265983326</id><published>2011-06-28T11:58:00.001-07:00</published><updated>2011-06-28T11:58:40.603-07:00</updated><title type='text'>GSV - Satellites in View</title><content type='html'>&lt;a href=&quot;&quot; name=&quot;GSV&quot;&gt;&lt;b&gt;GSV&lt;/b&gt;&lt;/a&gt;&amp;nbsp;- Satellites in View shows data about the satellites that the unit might be able to find based on its viewing mask and almanac data. It also shows current ability to track this data. Note that one GSV sentence only can provide data for up to 4 satellites and thus there may need to be 3 sentences for the full information. It is reasonable for the GSV sentence to contain more satellites than GGA might indicate since GSV may include satellites that are not used as part of the solution. It is not a requirment that the GSV sentences all appear in sequence. To avoid overloading the data bandwidth some receivers may place the various sentences in totally different samples since each sentence identifies which one it is.&lt;br /&gt;
The field called SNR (Signal to Noise Ratio) in the NMEA standard is often referred to as signal strength. SNR is an indirect but more useful value that raw signal strength. It can range from 0 to 99 and has units of dB according to the NMEA standard, but the various manufacturers send different ranges of numbers with different starting numbers so the values themselves cannot necessarily be used to evaluate different units. The range of working values in a given gps will usually show a difference of about 25 to 35 between the lowest and highest values, however 0 is a special case and may be shown on satellites that are in view but not being tracked.&lt;br /&gt;
&lt;pre&gt;$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75

Where:
      GSV          Satellites in view
      2            Number of sentences for full data
      1            sentence 1 of 2
      08           Number of satellites in view

      01           Satellite PRN number
      40           Elevation, degrees
      083          Azimuth, degrees
      46           SNR - higher is better
      &lt;repeat&gt;     for up to 4 satellites per sentence
      *75          the checksum data, always begins with *&lt;/repeat&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/4998274844265983326/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gsv-satellites-in-view.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/4998274844265983326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/4998274844265983326'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gsv-satellites-in-view.html' title='GSV - Satellites in View'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-8324378949128837252</id><published>2011-06-28T11:57:00.002-07:00</published><updated>2011-06-28T11:57:57.910-07:00</updated><title type='text'>GSA - GPS DOP and active satellites</title><content type='html'>&lt;a href=&quot;&quot; name=&quot;GSA&quot;&gt;&lt;b&gt;GSA&lt;/b&gt;&lt;/a&gt;&amp;nbsp;- GPS DOP and active satellites. This sentence provides details on the nature of the fix. It includes the numbers of the satellites being used in the current solution and the DOP. DOP (dilution of precision) is an indication of the effect of satellite geometry on the accuracy of the fix. It is a unitless number where smaller is better. For 3D fixes using 4 satellites a 1.0 would be considered to be a perfect number, however for overdetermined solutions it is possible to see numbers below 1.0.&lt;br /&gt;
There are differences in the way the PRN&#39;s are presented which can effect the ability of some programs to display this data. For example, in the example shown below there are 5 satellites in the solution and the null fields are scattered indicating that the almanac would show satellites in the null positions that are not being used as part of this solution. Other receivers might output all of the satellites used at the beginning of the sentence with the null field all stacked up at the end. This difference accounts for some satellite display programs not always being able to display the satellites being tracked. Some units may show all satellites that have ephemeris data without regard to their use as part of the solution but this is non-standard.&lt;br /&gt;
&lt;pre&gt;$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39

Where:
     GSA      Satellite status
     A        Auto selection of 2D or 3D fix (M = manual) 
     3        3D fix - values include: 1 = no fix
                                       2 = 2D fix
                                       3 = 3D fix
     04,05... PRNs of satellites used for fix (space for 12) 
     2.5      PDOP (dilution of precision) 
     1.3      Horizontal dilution of precision (HDOP) 
     2.1      Vertical dilution of precision (VDOP)
     *39      the checksum data, always begins with *&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/8324378949128837252/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gsa-gps-dop-and-active-satellites.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/8324378949128837252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/8324378949128837252'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gsa-gps-dop-and-active-satellites.html' title='GSA - GPS DOP and active satellites'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-780301474590623257</id><published>2011-06-28T11:57:00.000-07:00</published><updated>2011-06-28T11:57:09.355-07:00</updated><title type='text'>GGA - essential fix data which provide 3D location and accuracy data.</title><content type='html'>The most important NMEA sentences include the GGA which provides the current Fix data, the RMC which provides the minimum gps sentences information, and the GSA which provides the Satellite status data.&lt;a href=&quot;&quot; name=&quot;GGA&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;&quot; name=&quot;GGA&quot;&gt;&lt;b&gt;GGA&lt;/b&gt;&amp;nbsp;- essential fix data which provide 3D location and accuracy data.&lt;/a&gt;&lt;br /&gt;
&lt;pre&gt;$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Where:
     GGA          Global Positioning System Fix Data
     123519       Fix taken at 12:35:19 UTC
     4807.038,N   Latitude 48 deg 07.038&#39; N
     01131.000,E  Longitude 11 deg 31.000&#39; E
     1            Fix quality: 0 = invalid
                               1 = GPS fix (SPS)
                               2 = DGPS fix
                               3 = PPS fix
          4 = Real Time Kinematic
          5 = Float RTK
                               6 = estimated (dead reckoning) (2.3 feature)
          7 = Manual input mode
          8 = Simulation mode
     08           Number of satellites being tracked
     0.9          Horizontal dilution of position
     545.4,M      Altitude, Meters, above mean sea level
     46.9,M       Height of geoid (mean sea level) above WGS84
                      ellipsoid
     (empty field) time in seconds since last DGPS update
     (empty field) DGPS station ID number
     *47          the checksum data, always begins with *
&lt;/pre&gt;If the height of geoid is missing then the altitude should be suspect. Some non-standard implementations report altitude with respect to the ellipsoid rather than geoid altitude. Some units do not report negative altitudes at all. This is the only sentence that reports altitude.</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/780301474590623257/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gga-essential-fix-data-which-provide-3d.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/780301474590623257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/780301474590623257'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/gga-essential-fix-data-which-provide-3d.html' title='GGA - essential fix data which provide 3D location and accuracy data.'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-5794988289116760566</id><published>2011-06-27T10:37:00.001-07:00</published><updated>2011-06-27T11:17:42.760-07:00</updated><title type='text'>AVR</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Los&amp;nbsp;&lt;b&gt;AVR&lt;/b&gt;&amp;nbsp;son una familia de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Microcontroladores&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microcontroladores&quot;&gt;microcontroladores&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/RISC&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; color: #0645ad; text-decoration: none;&quot; title=&quot;RISC&quot;&gt;RISC&lt;/a&gt;&amp;nbsp;de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Atmel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Atmel&quot;&gt;Atmel&lt;/a&gt;. La arquitectura de los AVR fue concebida por dos estudiantes en el Norwegian Institute of Technology, y posteriormente refinada y desarrollada en&amp;nbsp;&lt;b&gt;Atmel Norway&lt;/b&gt;, la empresa subsidiaria de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Atmel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Atmel&quot;&gt;Atmel&lt;/a&gt;, fundada por los dos arquitectos del chip.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;El AVR es una CPU de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Arquitectura_Harvard&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Arquitectura Harvard&quot;&gt;arquitectura Harvard&lt;/a&gt;. Tiene 32 registros de 8 bits. Algunas instrucciones sólo operan en un subconjunto de estos registros. La concatenación de los 32 registros, los registros de entrada/salida y la memoria de datos conforman un espacio de direcciones unificado, al cual se accede a través de operaciones de carga/almacenamiento. A diferencia de los microcontroladores&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/PIC&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;PIC&quot;&gt;PIC&lt;/a&gt;, el stack se ubica en este espacio de memoria unificado, y no está limitado a un tamaño fijo.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;El AVR fue diseñado desde un comienzo para la ejecución eficiente de código C compilado. Como este lenguaje utiliza profusamente punteros para el manejo de variables en memoria, los tres últimos pares de registros internos del procesador, son usados como punteros de 16 bit al espacio de memoria externa, bajo los nombres X, Y y Z. Esto es un compromiso que se hace en arquitecturas de ocho bit desde los tiempos de Intel 8008, ya que su tamaño de palabra nativo de 8 bit (256 localidades accedidas) es pobre para direccionar. Por otro lado, hacer que todo el banco superior de 16 registros de 8 bit tenga un comportamiento alterno como un banco de 8 registros de 16 bit, complicaría mucho el diseño, violando la premisa original de su simplicidad. Además, algunas instrucciones tales como add immediate&amp;nbsp;en inglés , &amp;nbsp;faltan, ya que la instrucción substract immediate&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9;&quot;&gt;,&lt;/code&gt;&amp;nbsp;en inglés &amp;nbsp; con el complemento dos puede ser usada como alternativa.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;El set de instrucciones AVR está implementado físicamente y disponible en el mercado en diferentes dispositivos, que comparten el mismo núcleo AVR pero tienen distintos periféricos y cantidades de RAM y ROM: desde el microcontrolador de la familia&amp;nbsp;&lt;i&gt;Tiny AVR&lt;/i&gt;&amp;nbsp;ATtiny11 con 1KB de memoria flash y sin RAM (sólo los 32 registros), y 8 pines, hasta el microcontrolador de la famila&amp;nbsp;&lt;i&gt;Mega AVR&lt;/i&gt;ATmega2560 con 256KB de memoria flash, 8KB de memoria RAM, 4KB de memoria EEPROM, conversor análogo digital de 10 bits y 16 canales, temporizadores, comparador analógico, JTAG, etc. La compatibilidad entre los distintos modelos es preservada en un grado razonable.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Los microcontroladores AVR tienen una cañería (&#39;pipeline&#39; en inglés) con dos etapas (cargar y ejecutar), que les permite ejecutar la mayoría en un ciclo de reloj, lo que los hace relativamente rápidos entre los microcontroladores de 8-bit.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;El set de instrucciones de los AVR es más regular que la de la mayoría de los microcontroladores de 8-bit (por ejemplo, los PIC). Sin embargo, no es completamente ortogonal:&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;line-height: 1.5em; list-style-image: url(data:image/png; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Los registros punteros X, Y y Z tienen capacidades de direccionamiento diferentes entre sí (ver mas arriba por qué)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los registros 16 al 31.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Las registros de I/O 0 al 31 tienen distintas características que las posiciones 32 al 63.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;La instrucción CLR afecta los &#39;flag&#39;, mientras que la instrucción SER no lo hace, a pesar de que parecen ser instrucciones complementarias (dejar todos los bits en 1, y dejar todos los bits en 0 respectivamente).&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Los códigos de operación 0x95C8 y 0x9004 hacen exactamente lo mismo (LPM).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Como los PIC, tiene una comunidad de seguidores (ejemplificadas por el foro de internet&amp;nbsp;&lt;i&gt;AVRFreaks&lt;/i&gt;), principalmente debido a la existencia de herramientas de desarrollo gratuitas o de bajo coste. Estos microcontroladores están soportados por tarjetas de desarrollo de costo razonable, capaces de descargar el código al microcontrolador, y por una versión de las herramientas GNU. Esto último es posible por su uniformidad en el acceso al espacio de memoria, propiedad de la que carecen los procesadores de memoria segmentada o por bancos, como el PIC o el 8051 y sus derivados.&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/5794988289116760566/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/avr.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/5794988289116760566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/5794988289116760566'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/avr.html' title='AVR'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-7824413515215463690</id><published>2011-06-27T10:36:00.003-07:00</published><updated>2011-06-27T10:40:00.815-07:00</updated><title type='text'>ARM</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El diseño del ARM comenzó en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1983&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1983&quot;&gt;1983&lt;/a&gt;&amp;nbsp;como un proyecto de desarrollo en la empresa&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Acorn_Computers_Ltd.&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Acorn Computers Ltd. (aún no redactado)&quot;&gt;Acorn Computers Ltd.&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Roger_Wilson&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Roger Wilson&quot;&gt;Roger Wilson&lt;/a&gt;&amp;nbsp;y&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Steve_Furber&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Steve Furber (aún no redactado)&quot;&gt;Steve Furber&lt;/a&gt;&amp;nbsp;lideraban el equipo, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/MOS_6502&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;MOS 6502&quot;&gt;MOS 6502&lt;/a&gt;. La razón era que Acorn tenía una larga línea de ordenadores personales basados en dicho micro, por lo que tenía sentido desarrollar uno con el que los desarrolladores se sintieran cómodos.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El equipo terminó el diseño preliminar y los primeros prototipos del procesador en el año&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1985&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1985&quot;&gt;1985&lt;/a&gt;, al que llamaron ARM1. La primera versión utilizada comercialmente se bautizó como ARM2 y se lanzó en el año&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1986&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1986&quot;&gt;1986&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;La arquitectura del ARM2 posee un&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Bus_de_datos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Bus de datos&quot;&gt;bus de datos&lt;/a&gt;&amp;nbsp;de 32&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Bit&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Bit&quot;&gt;bits&lt;/a&gt;&amp;nbsp;y ofrece un espacio de direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El ARM2 es probablemente el procesador de 32 bits útil más simple del mundo, ya que posee sólo 30.000&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Transistor&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Transistor&quot;&gt;transistores&lt;/a&gt;. Su simplicidad se debe a que no está basado en microcódigo (sistema que suele ocupar en torno a la cuarta parte de la cantidad total de transistores usados en un procesador) y a que, como era común en aquella época, no incluye&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Cach%C3%A9&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Caché&quot;&gt;caché&lt;/a&gt;. Gracias a esto, su consumo en energía es bastante bajo, a la vez que ofrece un mejor rendimiento que un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Intel_80286&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Intel 80286&quot;&gt;286&lt;/a&gt;. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Kilobyte&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Kilobyte&quot;&gt;KB&lt;/a&gt;, lo que mejora los accesos a memoria repetitivos.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;A finales de los&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/A%C3%B1os_1980&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Años 1980&quot;&gt;años 80&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Apple_Computer&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Apple Computer&quot;&gt;Apple Computer&lt;/a&gt;&amp;nbsp;comenzó a trabajar con Acorn en nuevas versiones del núcleo ARM. En Acorn se dieron cuenta de que el hecho de que el fabricante de un procesador fuese también un fabricante de ordenadores podría echar para atrás a los clientes, por lo que se decidió crear una nueva compañía llamada&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Advanced_RISC_Machines&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Advanced RISC Machines&quot;&gt;Advanced RISC Machines&lt;/a&gt;, que sería la encargada del diseño y gestión de las nuevas generaciones de procesadores ARM. Ocurría esto en el año&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1990&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1990&quot;&gt;1990&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Este trabajo derivó en el ARM6, presentado en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1991&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1991&quot;&gt;1991&lt;/a&gt;. Apple utilizó el ARM 610 (basado en el ARM6), como procesador básico para su innovador&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/PDA&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;PDA&quot;&gt;PDA&lt;/a&gt;, el&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Apple_Newton&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Apple Newton&quot;&gt;Apple Newton&lt;/a&gt;. Por su parte, Acorn lo utilizó en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1994&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1994&quot;&gt;1994&lt;/a&gt;&amp;nbsp;como procesador principal en su&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=RiscPC&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;RiscPC (aún no redactado)&quot;&gt;RiscPC&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El núcleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30.000 transistores, mientras que el ARM6 sólo cuenta con 35.000. La idea era que el usuario final combinara el núcleo del ARM con un número opcional de periféricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;La mayor utilización de la tecnología ARM se alcanzó con el procesador ARM7TDMI, con millones de unidades en teléfonos móviles y sistemas de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Videojuego&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Videojuego&quot;&gt;videojuegos&lt;/a&gt;&amp;nbsp;portátiles.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Digital_Equipment_Corporation&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Digital Equipment Corporation&quot;&gt;DEC&lt;/a&gt;&amp;nbsp;licenció el diseño, lo cual generó algo de confusión debido a que ya producía el&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/DEC_Alpha&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;DEC Alpha&quot;&gt;DEC Alpha&lt;/a&gt;, y creó el&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/StrongARM&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;StrongARM&quot;&gt;StrongARM&lt;/a&gt;. Con una velocidad de reloj de 233&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/MHz&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;MHz&quot;&gt;MHz&lt;/a&gt;, este procesador consumía solo 1&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Vatio&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Vatio&quot;&gt;W&lt;/a&gt;&amp;nbsp;de potencia (este consumo de energía se ha reducido en versiones más recientes). Esta tecnología pasó posteriormente a manos de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Intel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Intel&quot;&gt;Intel&lt;/a&gt;, como fruto de un acuerdo jurídico, que la integró en su línea de procesadores&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Intel_i960&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Intel i960&quot;&gt;Intel i960&lt;/a&gt;&amp;nbsp;e hizo más ardua la competencia.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Freescale&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Freescale&quot;&gt;Freescale&lt;/a&gt;&amp;nbsp;(una empresa que derivó de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Motorola&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Motorola&quot;&gt;Motorola&lt;/a&gt;&amp;nbsp;en el año&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/2004&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;2004&quot;&gt;2004&lt;/a&gt;),&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/IBM&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;IBM&quot;&gt;IBM&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Infineon_Technologies&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Infineon Technologies&quot;&gt;Infineon Technologies&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=OKI&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;OKI (aún no redactado)&quot;&gt;OKI&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Texas_Instruments&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Texas Instruments&quot;&gt;Texas Instruments&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Nintendo&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Nintendo&quot;&gt;Nintendo&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Philips&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Philips&quot;&gt;Philips&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/VLSI&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;VLSI&quot;&gt;VLSI&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Atmel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Atmel&quot;&gt;Atmel&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Sharp_Corporation&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Sharp Corporation&quot;&gt;Sharp&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Samsung&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Samsung&quot;&gt;Samsung&lt;/a&gt;&amp;nbsp;y&lt;a href=&quot;http://es.wikipedia.org/wiki/STMicroelectronics&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;STMicroelectronics&quot;&gt;STMicroelectronics&lt;/a&gt;&amp;nbsp;también licenciaron el diseño básico del ARM.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El diseño del ARM se ha convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los procesadores de 32 bits poseen este chip en su núcleo.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/7824413515215463690/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/el-diseno-del-arm-comenzo-en-1983-un.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7824413515215463690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7824413515215463690'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/el-diseno-del-arm-comenzo-en-1983-un.html' title='ARM'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-7923825389900398694</id><published>2011-06-27T10:35:00.001-07:00</published><updated>2011-06-27T10:35:48.951-07:00</updated><title type='text'>8051</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El&amp;nbsp;&lt;b&gt;Intel 8051&lt;/b&gt;&amp;nbsp;es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Microcontrolador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microcontrolador&quot;&gt;microcontrolador&lt;/a&gt;&amp;nbsp;(µC) desarrollado por&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Intel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Intel&quot;&gt;Intel&lt;/a&gt;&amp;nbsp;en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/1980&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;1980&quot;&gt;1980&lt;/a&gt;&amp;nbsp;para uso en productos&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Sistema_embebido&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Sistema embebido&quot;&gt;embebidos&lt;/a&gt;. Es un microcontrolador muy popular.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Los núcleos 8051 se usan en más de 100 microcontroladores de más de 20 fabricantes independientes como&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Atmel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Atmel&quot;&gt;Atmel&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Dallas_Semiconductor&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Dallas Semiconductor (aún no redactado)&quot;&gt;Dallas Semiconductor&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Philips&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Philips&quot;&gt;Philips&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Winbond&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Winbond (aún no redactado)&quot;&gt;Winbond&lt;/a&gt;, entre otros.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;La denominación oficial de Intel para familia de µCs 8051 es&amp;nbsp;&lt;b&gt;MCS 51&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Éste microcontrolador está basado en una&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Arquitectura_Harvard&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Arquitectura Harvard&quot;&gt;Arquitectura Harvard&lt;/a&gt;&amp;nbsp;(es decir, existen espacios de direcciones separados para código y datos). Aunque originariamente fue diseñado para aplicaciones simples, se permite direccionar 64&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Kilobyte&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Kilobyte&quot;&gt;KB&lt;/a&gt;&amp;nbsp;de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/ROM&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;ROM&quot;&gt;ROM&lt;/a&gt;&amp;nbsp;externa y 64 KB de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Memoria_RAM&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Memoria RAM&quot;&gt;RAM&lt;/a&gt;por medio de líneas separadas&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Chip_select&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Chip select (aún no redactado)&quot;&gt;chip select&lt;/a&gt;&amp;nbsp;para programa y datos.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Adicionalmente, el microcontrolador contiene una memoria interna, dividida en dos partes: los SFR y memoria de propósito general. Los SFR (Special Function Registers), son los registros proporcionados por el microcontrolador, y tienen asignadas direcciones en esta memoria interna. El acceso a esta memoria interna es más rápido que el acceso a la memoria externa, pero es de tamaño limitado. Parte de esta memoria interna además se usa como pila durante las llamadas a función y el proceso de interrupciones.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Una característica particular del 8051 es la inclusión de una unidad de proceso booleano que permite que operaciones de nivel de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Bit&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Bit&quot;&gt;bit&lt;/a&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/L%C3%B3gica_binaria&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lógica binaria&quot;&gt;lógica booleana&lt;/a&gt;&amp;nbsp;se ejecuten directa y eficientemente en registros internos. Esto ha hecho que el 8051 sea muy popular en aplicaciones de control industrial.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Otra característica muy valorada es que tiene cuatro conjuntos separados de registros. A menudo se usa esta característica para reducir la latencia de interrupción. (La rutina que maneja la interrupción declara usar otro conjunto de registros, evitándose de esta manera tener que salvar en la pila los registros originales).&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;La mayoría de los 8051 incluyen una o dos&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/UART&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;UART&quot;&gt;UARTs&lt;/a&gt;, dos o tres temporizadores, 128 o 256 bytes de RAM interna (16 bytes de los cuales son direccionables a nivel de bit), cuatro o cinco registros de entrada/salida y entre 0k-54K de memoria interna de programa. El núcleo 8051 original ejecuta un ciclo máquina cada 12 ciclos de reloj, requiriendo la mayoría de instrucciones uno o dos ciclos máquina. Pero actualmente la mayoría de fabricantes ofrecen versiones mejoradas que sólo requieren de 2 a 4 ciclos de reloj por cada instrucción máquina.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Los microcontroladores 8051 modernos ofrecen muchas mejoras sobre el original. Mejoras comunes incluyen&amp;nbsp;&lt;b&gt;watchdog timers&lt;/b&gt;&amp;nbsp;(un temporizador programable que &quot;resetea&quot; el microcontrolador si no se refresca en cierto tiempo), osciladores internos, memoria de programa&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Flash_ROM&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Flash ROM&quot;&gt;Flash ROM&lt;/a&gt;&amp;nbsp;interna, código de inicialización en ROM, almacenamiento en EEPROM interna,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/I%C2%B2C&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;I²C&quot;&gt;I²C&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Serial_Peripheral_Interface&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Serial Peripheral Interface&quot;&gt;SPI&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/USB&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;USB&quot;&gt;USB&lt;/a&gt;, generadores&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_anchura_de_pulsos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Modulación por anchura de pulsos&quot;&gt;PWM&lt;/a&gt;, conversores analógicos&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Conversor_anal%C3%B3gico-digital&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Conversor analógico-digital&quot;&gt;A/D&lt;/a&gt;&amp;nbsp;y&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Conversor_digital-anal%C3%B3gico&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Conversor digital-analógico&quot;&gt;D/A&lt;/a&gt;, relojes de tiempo real&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Real-time_clock&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Real-time clock (aún no redactado)&quot;&gt;RTC&lt;/a&gt;, temporizadores y contadores extra, facilidades de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programas&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Depuración de programas&quot;&gt;depuración&lt;/a&gt;&amp;nbsp;internas, más fuentes de interrupción, modos de bajo consumo, interfaz&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/CAN_bus&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;CAN bus&quot;&gt;CAN&lt;/a&gt;, etc.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Existen varios compiladores de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Lenguaje_C&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje C&quot;&gt;lenguaje C&lt;/a&gt;&amp;nbsp;disponibles para el 8051, así como en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_ensamblador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje ensamblador&quot;&gt;lenguaje ensamblador&lt;/a&gt;&amp;nbsp;. La mayoría añaden extensiones al lenguaje que permiten al programador especificar por ejemplo el tipo de memoria donde se ubicará la variable, especificar manejadores de interrupción, especificar el banco de registros, acceder a instrucciones especiales de manipulación de bits...&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El predecesor del 8051, el&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Intel_8048&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Intel 8048 (aún no redactado)&quot;&gt;8048&lt;/a&gt;, se usó en el teclado del primer&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/IBM_PC&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;IBM PC&quot;&gt;IBM PC&lt;/a&gt;, donde convertía pulsaciones de tecla en un stream serie que se envía a la unidad central del ordenador. El 8048 y sus derivados aun se usan actualmente en&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Teclado_de_ordenador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Teclado de ordenador&quot;&gt;teclados&lt;/a&gt;&amp;nbsp;básicos.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El&amp;nbsp;&lt;b&gt;8031&lt;/b&gt;&amp;nbsp;fue una versión reducida del Intel 8051 original que no contiene memoria interna.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El&amp;nbsp;&lt;b&gt;8052&lt;/b&gt;&amp;nbsp;fue una versión mejorada del Intel 8051 original con:&lt;/div&gt;&lt;ul style=&quot;line-height: 1.5em; list-style-image: url(data:image/png; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;256 bytes de RAM interna, en vez de 128 bytes&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;8 kB de ROM, en vez de 4 kB&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;un tercer temporizador de 16-bit&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;un segundo puerto serie.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Además de todas las facilidades de Timers que poseen estro controladores, estos cuentan con diferentes sistemas de comunicación serial y paralela.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;[Procesadores Intel 8031]&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El predecesor del 8051 fue el 8048. Se usaba en el teclado del primer IBM PC, su función era convertir las pulsaciones de tecla en datos en serie que eran enviados a la unidad central de la computadora. El 8048 y sus derivados todavía se siguen usando para teclados básicos. El 8031 era una versión reducida del origial Intel 8031 que no incluía ninguna memoria interna de programa (ROM). Para usar este chip, hacía falta usar una memoria exterior que el 8031 usaría. Un chip 8051 se podría vender como un 8031 sin ROM, dado que la ROM del 8051 está desactivada por el estado normal del pin EA en el diseño basado en el 8031.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/7923825389900398694/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/8051.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7923825389900398694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7923825389900398694'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/8051.html' title='8051'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-639095872437544911</id><published>2011-06-27T10:32:00.000-07:00</published><updated>2011-06-27T10:32:07.334-07:00</updated><title type='text'>C#    -&gt;  C SHARP</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;b&gt;C♯&lt;/b&gt;&amp;nbsp;o&amp;nbsp;&lt;b&gt;C#&lt;/b&gt;&amp;nbsp;(pronunciado&amp;nbsp;&lt;i&gt;ci sharp&lt;/i&gt;&amp;nbsp;en inglés) es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación&quot;&gt;lenguaje de programación&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Programación orientada a objetos&quot;&gt;orientado a objetos&lt;/a&gt;&amp;nbsp;desarrollado y estandarizado por&lt;a href=&quot;http://es.wikipedia.org/wiki/Microsoft&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microsoft&quot;&gt;Microsoft&lt;/a&gt;&amp;nbsp;como parte de su plataforma&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/.NET_de_Microsoft&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;.NET de Microsoft&quot;&gt;.NET&lt;/a&gt;, que después fue aprobado como un estándar por la&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/ECMA&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;ECMA&quot;&gt;ECMA&lt;/a&gt;&amp;nbsp;e&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/ISO&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;ISO&quot;&gt;ISO&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Su sintaxis básica deriva de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación C&quot;&gt;C&lt;/a&gt;/&lt;a href=&quot;http://es.wikipedia.org/wiki/C%2B%2B&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;C++&quot;&gt;C++&lt;/a&gt;&amp;nbsp;y utiliza el modelo de objetos de la plataforma.NET, similar al de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación Java&quot;&gt;Java&lt;/a&gt;&amp;nbsp;aunque incluye mejoras derivadas de otros lenguajes (entre ellos&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Delphi&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Delphi&quot;&gt;Delphi&lt;/a&gt;).&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El nombre C Sharp fue inspirado por la&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Notaci%C3%B3n_musical&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Notación musical&quot;&gt;notación musical&lt;/a&gt;, donde ♯ (&lt;a href=&quot;http://es.wikipedia.org/wiki/Sostenido&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Sostenido&quot;&gt;sostenido&lt;/a&gt;, en inglés&amp;nbsp;&lt;i&gt;sharp&lt;/i&gt;) indica que la nota (&lt;i&gt;C&lt;/i&gt;&amp;nbsp;es la nota do en inglés) es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Semitono&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Semitono&quot;&gt;semitono&lt;/a&gt;&amp;nbsp;más alta, sugiriendo que C♯ es superior a C/C++. Además el signo de # viene de dos + pegados.&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-0&quot; style=&quot;font-style: normal; font-weight: normal; line-height: 1em;&quot;&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/C_sharp#cite_note-0&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;C♯, como parte de la plataforma.NET, está normalizado por&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/ECMA&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;ECMA&quot;&gt;ECMA&lt;/a&gt;&amp;nbsp;desde diciembre de 2001 (&lt;a class=&quot;external text&quot; href=&quot;http://www.ecma-international.org/publications/standards/Ecma-334.htm&quot; rel=&quot;nofollow&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(data:image/png; background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;&quot;&gt;C# Language Specification&lt;/a&gt;&quot;Especificación del lenguaje C♯&quot;). El 7 de noviembre de 2005 salió la versión 2.0 del lenguaje, que incluía mejoras tales como tipos genéricos, métodos anónimos, iteradores, tipos parciales y tipos anulables. El 19 de noviembre de 2007 salió la versión 3.0 de C#, destacando entre las mejoras los tipos implícitos,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Tipos_an%C3%B3nimos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Tipos anónimos&quot;&gt;tipos anónimos&lt;/a&gt;&amp;nbsp;y&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/LINQ&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;LINQ&quot;&gt;LINQ&lt;/a&gt;&amp;nbsp;(&lt;i&gt;Language Integrated Query&lt;/i&gt;&amp;nbsp;-consulta integrada en el lenguaje).&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Aunque C♯ forma parte de la plataforma.NET, ésta es una&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Interfaz de programación de aplicaciones&quot;&gt;interfaz de programación de aplicaciones&lt;/a&gt;&amp;nbsp;(&lt;b&gt;API&lt;/b&gt;), mientras que C♯ es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Compilador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Compilador&quot;&gt;compilador&lt;/a&gt;implementado que provee el marco de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/DotGNU&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;DotGNU&quot;&gt;DotGNU&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Proyecto_Mono&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Proyecto Mono&quot;&gt;Mono&lt;/a&gt;&amp;nbsp;que genera programas para distintas plataformas como&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Win32&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Win32&quot;&gt;Win32&lt;/a&gt;,&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/UNIX&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;UNIX&quot;&gt;UNIX&lt;/a&gt;&amp;nbsp;y&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Linux&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Linux&quot;&gt;Linux&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/639095872437544911/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/c-c-sharp.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/639095872437544911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/639095872437544911'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/c-c-sharp.html' title='C#    -&gt;  C SHARP'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-3837077723144024190</id><published>2011-06-27T10:31:00.000-07:00</published><updated>2011-06-27T10:31:24.749-07:00</updated><title type='text'>C++</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;b&gt;C++&lt;/b&gt;&amp;nbsp;es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación&quot;&gt;lenguaje de programación&lt;/a&gt;&amp;nbsp;diseñado a mediados de los años 1980 por&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Bjarne_Stroustrup&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Bjarne Stroustrup&quot;&gt;Bjarne Stroustrup&lt;/a&gt;. La intención de su creación fue el extender al exitoso&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación&quot;&gt;lenguaje de programación&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;C (lenguaje de programación)&quot;&gt;C&lt;/a&gt;&amp;nbsp;con mecanismos que permitan la manipulación de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n)&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Objeto (programación)&quot;&gt;objetos&lt;/a&gt;. En ese sentido, desde el punto de vista de los&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Programación orientada a objetos&quot;&gt;lenguajes orientados a objetos&lt;/a&gt;, el C++ es un lenguaje híbrido.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Posteriormente se añadieron facilidades de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_gen%C3%A9rica&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Programación genérica&quot;&gt;programación genérica&lt;/a&gt;, que se sumó a los otros dos paradigmas que ya estaban admitidos (&lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Programación estructurada&quot;&gt;programación estructurada&lt;/a&gt;&amp;nbsp;y la&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Programación orientada a objetos&quot;&gt;programación orientada a objetos&lt;/a&gt;). Por esto se suele decir que el C++ es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_multiparadigma&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación multiparadigma&quot;&gt;lenguaje de programación multiparadigma&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Una particularidad del C++ es la posibilidad de redefinir los operadores (&lt;a href=&quot;http://es.wikipedia.org/wiki/Sobrecarga&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Sobrecarga&quot;&gt;sobrecarga de operadores&lt;/a&gt;), y de poder crear nuevos&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Tipo_de_datos&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Tipo de datos&quot;&gt;tipos&lt;/a&gt;&amp;nbsp;que se comporten como tipos fundamentales.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El nombre&amp;nbsp;&lt;b&gt;C++&lt;/b&gt;&amp;nbsp;fue propuesto por&amp;nbsp;&lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Rick_Mascitti&amp;amp;action=edit&amp;amp;redlink=1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #ba0000; text-decoration: none;&quot; title=&quot;Rick Mascitti (aún no redactado)&quot;&gt;Rick Mascitti&lt;/a&gt;&amp;nbsp;en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre &quot;C con clases&quot;. En C++, la expresión &quot;C++&quot; significa &quot;incremento de C&quot; y se refiere a que C++ es una extensión de C.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/3837077723144024190/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/c.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/3837077723144024190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/3837077723144024190'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/c.html' title='C++'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4461715636256518698.post-7320388868084847982</id><published>2011-06-27T10:26:00.000-07:00</published><updated>2011-06-27T10:26:24.044-07:00</updated><title type='text'>ASSEMBLY    LENGUAGE</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;El&amp;nbsp;&lt;b&gt;lenguaje ensamblador&lt;/b&gt;, o&amp;nbsp;&lt;b&gt;assembler&lt;/b&gt;&amp;nbsp;(&lt;b&gt;assembly language&lt;/b&gt;&amp;nbsp;en&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Idioma_ingl%C3%A9s&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Idioma inglés&quot;&gt;inglés&lt;/a&gt;&amp;nbsp;) es un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de programación&quot;&gt;lenguaje de programación&lt;/a&gt;&amp;nbsp;de&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de bajo nivel&quot;&gt;bajo nivel&lt;/a&gt;&amp;nbsp;para los&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Computador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Computador&quot;&gt;computadores&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Microprocesador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microprocesador&quot;&gt;microprocesadores&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Microcontrolador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microcontrolador&quot;&gt;microcontroladores&lt;/a&gt;, y otros&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Circuito_integrado&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Circuito integrado&quot;&gt;circuitos integrados&lt;/a&gt;programables. Implementa una representación simbólica de los&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/C%C3%B3digo_de_m%C3%A1quina&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Código de máquina&quot;&gt;códigos de máquina&lt;/a&gt;&amp;nbsp;binarios y otras constantes necesarias para programar una&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Arquitectura_de_CPU&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Arquitectura de CPU&quot;&gt;arquitectura&lt;/a&gt;&amp;nbsp;dada de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/CPU&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;CPU&quot;&gt;CPU&lt;/a&gt;&amp;nbsp;y constituye la representación más directa del&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quina&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de máquina&quot;&gt;código máquina&lt;/a&gt;&amp;nbsp;específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Hardware&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Hardware&quot;&gt;hardware&lt;/a&gt;, y está basada en los&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Mnem%C3%B3nico&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Mnemónico&quot;&gt;mnemónicos&lt;/a&gt;&amp;nbsp;que simbolizan los pasos de procesamiento (las&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Conjunto_de_instrucciones&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Conjunto de instrucciones&quot;&gt;instrucciones&lt;/a&gt;), los&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Registro_(hardware)&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Registro (hardware)&quot;&gt;registros&lt;/a&gt;&amp;nbsp;del procesador, las posiciones de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Memoria_de_computador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Memoria de computador&quot;&gt;memoria&lt;/a&gt;, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Arquitectura_de_computador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Arquitectura de computador&quot;&gt;arquitectura de computador&lt;/a&gt;&amp;nbsp;física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Lenguaje de alto nivel&quot;&gt;alto nivel&lt;/a&gt;, que, idealmente son&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Portabilidad&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Portabilidad&quot;&gt;portables&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Utilidad_(inform%C3%A1tica)&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Utilidad (informática)&quot;&gt;programa utilitario&lt;/a&gt;&amp;nbsp;llamado&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Ensamblador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Ensamblador&quot;&gt;ensamblador&lt;/a&gt;&amp;nbsp;es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Isomorfismo&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Isomorfismo&quot;&gt;isomorfa&lt;/a&gt;&amp;nbsp;(un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de&amp;nbsp;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_errores&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Depuración de errores&quot;&gt;depuración&lt;/a&gt;. Particularmente, la mayoría de los ensambladores modernos incluyen una facilidad de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Macro&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Macro&quot;&gt;macro&lt;/a&gt;&amp;nbsp;(descrita más abajo), y son llamados&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Macro_ensamblador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Macro ensamblador&quot;&gt;macro ensambladores&lt;/a&gt;.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;Fue usado principalmente en los inicios del desarrollo de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Software&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Software&quot;&gt;software&lt;/a&gt;, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Hardware&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Hardware&quot;&gt;hardware&lt;/a&gt;, altos rendimientos, o un uso de recursos controlado y reducido.&lt;/div&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;line-height: 1.5em; list-style-image: url(data:image/png; list-style-type: square; margin-bottom: 0px; margin-left: 1.5em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.&lt;/span&gt;&lt;/li&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un&amp;nbsp;&lt;a href=&quot;http://es.wikipedia.org/wiki/Microprocesador&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #0645ad; text-decoration: none;&quot; title=&quot;Microprocesador&quot;&gt;microprocesador&lt;/a&gt;&amp;nbsp;por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;&lt;div style=&quot;line-height: 1.5em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://litium-andres-lu6fkh.blogspot.com/feeds/7320388868084847982/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/assembly-lenguage.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7320388868084847982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4461715636256518698/posts/default/7320388868084847982'/><link rel='alternate' type='text/html' href='http://litium-andres-lu6fkh.blogspot.com/2011/06/assembly-lenguage.html' title='ASSEMBLY    LENGUAGE'/><author><name>ANDRES-LU6FKH</name><uri>http://www.blogger.com/profile/05231690438813567682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='19' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7PgiMEbUezuuAQKpctG6tcTeBknICNtCvYhRMxk1cHPuVSlDiTq4ABc_svZobzWpUkqlvVBBYTXiZPOhrcv7OBmXhGTGum0Vb8KWqUhQoWNyDEQfU8E7v3hZky9JvXw/s220/sr71_27-9-05_004.jpg'/></author><thr:total>0</thr:total></entry></feed>