Grissell Esquivel / Mbed 2 deprecated Seniales-Tacometro-Bueno

Dependencies:   FastAnalogIn HSI2RGBW_PWM NVIC_set_all_priorities mbed-dsp mbed TextLCD

Fork of Seniales-Tacometro by Grissell Esquivel

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h" //Librería default de mbed
00002 #include "NVIC_set_all_priorities.h" //Librería para modificar todas las solicitudes de interrupciones al mismo tiempo
00003 #include <ctype.h>
00004 #include "arm_math.h" //Librería que contiene funciones de tranformada de fourier
00005 #include "arm_const_structs.h"
00006 #include "FastAnalogIn.h" //Librería modificada basada en la función de AnalogIn que reduce el tiempo de procesamiento de las señales ADC
00007 
00008 //columnas
00009 DigitalOut col0(PTA1);
00010 DigitalOut col1(PTA2);
00011 DigitalOut col2(PTD4);
00012 DigitalOut col3(PTA12);
00013 DigitalOut col4(PTA4);
00014 
00015 //filas
00016 DigitalOut floor1(PTA13);
00017 DigitalOut floor2(PTD5);
00018 DigitalOut floor3(PTD0);
00019 DigitalOut floor4(PTD2);
00020 DigitalOut floor5(PTD3);
00021 
00022  
00023 char* x;
00024 int count = 0;
00025 Serial pc(USBTX, USBRX); //Se declaran los pines que se utilizarán para la comunicación serial mediante USB para debuggeo (PTA1 - RX, PTA2 - TX)
00026 FastAnalogIn   segnal(PTC2); //Se declara el pin que recibirá la señal análoga del sensor
00027  
00028 extern "C" void NMI_Handler()
00029 {
00030 }
00031  
00032 ////////////////////////////////////////////////////////////////////////////////
00033 // CONFIGURACION
00034 //Estos valores puedne modificarse para modificar los parametros de la transformada
00035 ////////////////////////////////////////////////////////////////////////////////
00036  
00037 int SAMPLE_RATE_HZ = 40000;       // Frecuencian de muestreo en HZ del sistema
00038 const int FFT_SIZE = 1024;           // Número de valores para la transformada rápida
00039 float freq = 40000.0/1024.0;           // Frecuencia de activación de la interrupción de muestreo
00040 float max[2];                        // Arreglo que almacena la frecuencia y magnitud mayores del espectro de Fourier
00041  
00042 ////////////////////////////////////////////////////////////////////////////////
00043 // ESTADO INTERNO
00044 // Configuraciones necesarias para el correcto funcionaiento del programa
00045 ////////////////////////////////////////////////////////////////////////////////
00046  
00047 const static arm_cfft_instance_f32 *S;
00048 Ticker samplingTimer;                       //objeto creado para habilitar las interrupciones con lso métodos de ticker
00049 float samples[FFT_SIZE*2];                  //Arreglo en el que se almacenan las muestras del tomadas ADC
00050 float magnitudes[FFT_SIZE];                 //Arreglo donde se almacenan las magnitudes de la FFT
00051 int sampleCounter = 0;                      //Contador del número de muestras tomadas
00052  
00053 ////////////////////////////////////////////////////////////////////////////////
00054 // FUNCIONES DE MUESTREO
00055 ////////////////////////////////////////////////////////////////////////////////
00056  
00057 //Esta función permite realizar el muestreo de datos, se realiza como interrupción para asegurar el tiempo de muestreo deseado
00058 void samplingCallback()
00059 {
00060     // Lectura del ADC y almacenamiento del dato
00061     samples[sampleCounter] = (1023 * segnal) - 511.0f; //Se ajusta el valor de un rango de 0-1 a 0-511
00062     // La función que calcula la transformada requiere de un valor imaginario, en este caso se le asigna 0
00063     // ya que los valores muestreados son solamente reales.
00064     samples[sampleCounter+1] = 0.0;
00065     // Se ajusta la posición en el arreglo para almacenar el siguiente valor real
00066     sampleCounter += 2;
00067     //En caso de que el valor de sample counter sobrepase el tamaño del arreglo de almacenamiento se retira la interrupción
00068     //de muestreo del programa
00069     if (sampleCounter >= FFT_SIZE*2) {
00070         samplingTimer.detach();
00071     }
00072 }
00073  
00074 //Esta función permite reiniciar el contador de muestras e insertar nuevamente la interrupción de muestreo
00075 void samplingBegin()
00076 {
00077     sampleCounter = 0; //Se reinicia el contador de muestras
00078     samplingTimer.attach_us(&samplingCallback, 1000000/SAMPLE_RATE_HZ); //Se incertala interrupción de muestreo la cual es llamada con la frecuencia de Sample_rate_hz
00079 }
00080  
00081 //Función booleana que funciona como bandera para indicar que el meustreo de datos ha sido finalizado
00082 bool samplingIsDone()
00083 {
00084     return sampleCounter >= FFT_SIZE*2;
00085 }
00086  
00087 ////////////////////////////////////////////////////////////////////////////////
00088 // MAIN DEL PROGRAMA
00089 ////////////////////////////////////////////////////////////////////////////////
00090  
00091 int main()
00092 {
00093     //Configuración de las solicitudes de interrupción
00094     NVIC_set_all_irq_priorities(1);
00095  
00096     //Configuración de la velocidad de la comunicación serial
00097     pc.baud (115200); //Velocidad de la comunicación USB
00098  
00099     // Se incerta la interrupción de muestreo del ADC
00100     samplingBegin();
00101  
00102     // Init arm_ccft_32 el registro cambiara dependiendo de la variable FFT_SIZE
00103     switch (FFT_SIZE) {
00104         case 512:
00105             S = & arm_cfft_sR_f32_len512;
00106             break;
00107         case 1024:
00108             S = & arm_cfft_sR_f32_len1024;
00109             break;
00110         case 2048:
00111             S = & arm_cfft_sR_f32_len2048;
00112             break;
00113         case 4096:
00114             S = & arm_cfft_sR_f32_len4096;
00115             break;
00116     }
00117  
00118     while(1) {
00119         // Se calcula la FFT si se ha terminado el muestreo
00120         if (samplingIsDone()) {
00121  
00122             arm_cfft_f32(S, samples, 0, 1);
00123             arm_cmplx_mag_f32(samples, magnitudes, FFT_SIZE);
00124  
00125             for (int i = 0; i < FFT_SIZE/2+1; ++i) {
00126                 //    pc.printf("%f, %f\r\n", i*freq, magnitudes[i]);  //Esta línea se activa solo si se desea conocer la magnitudes generada por la FFT
00127                 //Sección de código que permite obtener el valor de frecuencia y magnitud mayor de los calculados
00128                 if (magnitudes[i]>max[1]) {
00129                     max[0]=i*freq;
00130                     max[1]=magnitudes[i]; //Habilitar solo para debuggeo
00131                 }
00132             }
00133             
00134             if (190<max[0] && max[0]<205) {
00135                 x="primer patron";
00136                 
00137                 floor1 = 1;
00138                 col3=1;
00139                 col1=1;
00140                 col0=1;
00141                 wait_us(208);
00142                 floor1 = 0;
00143                 col3=0;
00144                 col1=0;
00145                 col0=0;
00146                 wait_us(208);
00147                 
00148                 floor1 = 1;
00149                 col3=1;
00150                 col2=1;
00151                 wait_us(208);
00152                 floor1 = 0;
00153                 col3=0;
00154                 col2=0;
00155                 wait_us(208);
00156                 
00157                 floor1 = 1;
00158                 col3=1;
00159                 col2=1;
00160                 col0=1;
00161                 wait_us(208);
00162                 floor1 = 0;
00163                 col3=0;
00164                 col2=0;
00165                 col0=0;
00166                 wait_us(208);
00167                 
00168             } else if (230<max[0] && max[0]<250) {
00169                 x="segundo patron";
00170                 
00171                 floor1 = 1;
00172                 col3=1;
00173                 col1=1;
00174                 col0=1;
00175                 wait_us(208);
00176                 floor1 = 0;
00177                 col3=0;
00178                 col1=0;
00179                 col0=0;
00180                 wait_us(208);
00181                 
00182                 floor1 = 1;
00183                 col3=1;
00184                 col2=1;
00185                 wait_us(208);
00186                 floor1 = 0;
00187                 col3=0;
00188                 col2=0;
00189                 wait_us(208);
00190                 
00191                 floor1 = 1;
00192                 col3=1;
00193                 col2=1;
00194                 col0=1;
00195                 wait_us(208);
00196                 floor1 = 0;
00197                 col3=0;
00198                 col2=0;
00199                 col0=0;
00200                 wait_us(208);
00201                 
00202                 floor2 = 1;
00203                 col2=1;
00204                 col1=1;
00205                 wait_us(208);
00206                 floor2 = 0;
00207                 col2=0;
00208                 col1=0;
00209                 wait_us(208);
00210                 
00211                 floor2 = 1;
00212                 col2=1;
00213                 col1=1;
00214                 col0=1;
00215                 wait_us(208);
00216                 floor2 = 0;
00217                 col2=0;
00218                 col1=0;
00219                 col0=0;
00220                 wait_us(208);
00221                 
00222                 floor2 = 1;
00223                 col3=1;
00224                 wait_us(208);
00225                 floor2 = 0;
00226                 col3=0;
00227                 wait_us(208);
00228                 
00229                 floor2 = 1;
00230                 col3=1;
00231                 col1=1;
00232                 col0=1;
00233                 wait_us(208);
00234                 floor2 = 0;
00235                 col3=0;
00236                 col1=0;
00237                 col0=0;
00238                 wait_us(208);
00239                 
00240                 
00241                 floor2 = 1;
00242                 col3=1;
00243                 col2=1;
00244                 wait_us(208);
00245                 floor2 = 0;
00246                 col3=0;
00247                 col2=0;
00248                 wait_us(208);
00249                 
00250                 floor2 = 1;
00251                 col3=1;
00252                 col2=1;
00253                 col0=1;
00254                 wait_us(208);
00255                 floor2 = 1;
00256                 col3=0;
00257                 col2=0;
00258                 col0=0;
00259                 wait_us(208);
00260                 
00261                 floor2 = 1;
00262                 col4=1;
00263                 wait_us(208);
00264                 floor2 = 0;
00265                 col4=0;
00266                 wait_us(208);
00267                 
00268                 floor2 = 1;
00269                 col4=1;
00270                 col0=1;
00271                 wait_us(208);
00272                 floor2 = 0;
00273                 col4=0;
00274                 col0=0;
00275                 wait_us(208);
00276                 
00277                 floor2 = 1;
00278                 col4=1;
00279                 col1=1;
00280                 wait_us(208);
00281                 floor2 = 0;
00282                 col4=0;
00283                 col1=0;
00284                 wait_us(208);
00285                 
00286             } else if (310<max[0] && max[0]<320) {
00287                 x="tercer patron";
00288                 
00289                 floor1 = 1;
00290                 col3=1;
00291                 col1=1;
00292                 col0=1;
00293                 wait_us(208);
00294                 floor1 = 0;
00295                 col3=0;
00296                 col1=0;
00297                 col0=0;
00298                 wait_us(208);
00299                 
00300                 floor1 = 1;
00301                 col3=1;
00302                 col2=1;
00303                 wait_us(208);
00304                 floor1 = 0;
00305                 col3=0;
00306                 col2=0;
00307                 wait_us(208);
00308                 
00309                 floor1 = 1;
00310                 col3=1;
00311                 col2=1;
00312                 col0=1;
00313                 wait_us(208);
00314                 floor1 = 0;
00315                 col3=0;
00316                 col2=0;
00317                 col0=0;
00318                 wait_us(208);
00319                 
00320                 floor2 = 1;
00321                 col2=1;
00322                 col1=1;
00323                 wait_us(208);
00324                 floor2 = 0;
00325                 col2=0;
00326                 col1=0;
00327                 wait_us(208);
00328                 
00329                 floor2 = 1;
00330                 col2=1;
00331                 col1=1;
00332                 col0=1;
00333                 wait_us(208);
00334                 floor2 = 0;
00335                 col2=0;
00336                 col1=0;
00337                 col0=0;
00338                 wait_us(208);
00339                 
00340                 floor2 = 1;
00341                 col3=1;
00342                 wait_us(208);
00343                 floor2 = 0;
00344                 col3=0;
00345                 wait_us(208);
00346                 
00347                 floor2 = 1;
00348                 col3=1;
00349                 col1=1;
00350                 col0=1;
00351                 wait_us(208);
00352                 floor2 = 0;
00353                 col3=0;
00354                 col1=0;
00355                 col0=0;
00356                 wait_us(208);
00357                 
00358                 
00359                 floor2 = 1;
00360                 col3=1;
00361                 col2=1;
00362                 wait_us(208);
00363                 floor2 = 0;
00364                 col3=0;
00365                 col2=0;
00366                 wait_us(208);
00367                 
00368                 floor2 = 1;
00369                 col3=1;
00370                 col2=1;
00371                 col0=1;
00372                 wait_us(208);
00373                 floor2 = 1;
00374                 col3=0;
00375                 col2=0;
00376                 col0=0;
00377                 wait_us(208);
00378                 
00379                 floor2 = 1;
00380                 col4=1;
00381                 wait_us(208);
00382                 floor2 = 0;
00383                 col4=0;
00384                 wait_us(208);
00385                 
00386                 floor2 = 1;
00387                 col4=1;
00388                 col0=1;
00389                 wait_us(208);
00390                 floor2 = 0;
00391                 col4=0;
00392                 col0=0;
00393                 wait_us(208);
00394                 
00395                 floor2 = 1;
00396                 col4=1;
00397                 col1=1;
00398                 wait_us(208);
00399                 floor2 = 0;
00400                 col4=0;
00401                 col1=0;
00402                 wait_us(208);
00403                 
00404                 floor3 = 1;
00405                 col0=1;
00406                 wait_us(208);
00407                 floor3 = 0;
00408                 col0=0;
00409                 wait_us(208);
00410                 
00411                 floor3 = 1;
00412                 col1=1;
00413                 wait_us(208);
00414                 floor3 = 0;
00415                 col1=0;
00416                 wait_us(208);
00417                 
00418                 floor3 = 1;
00419                 col0=1;
00420                 col1=1;
00421                 wait_us(208);
00422                 floor3 = 0;
00423                 col0=0;
00424                 col1=0;
00425                 wait_us(208);
00426                 
00427                 floor3 = 1;
00428                 col1=1;
00429                 col2=1;
00430                 wait_us(208);
00431                 floor3 = 0;
00432                 col1=0;
00433                 col2=0;
00434                 wait_us(208);
00435                 
00436                 floor3 = 1;
00437                 col0=1;
00438                 col1=1;
00439                 col2=1;
00440                 wait_us(208);
00441                 floor3 = 0;
00442                 col0=0;
00443                 col1=0;
00444                 col2=0;
00445                 wait_us(208);
00446                 
00447                 floor3 = 1;
00448                 col3=1;
00449                 wait_us(208);
00450                 floor3 = 0;
00451                 col3=0;
00452                 wait_us(208);
00453                 
00454                 floor3 = 1;
00455                 col0=1;
00456                 col1=1;
00457                 col3=1;
00458                 wait_us(208);
00459                 floor3 = 0;
00460                 col0=0;
00461                 col1=0;
00462                 col3=0;
00463                 wait_us(208);
00464                 
00465                 floor3 = 1;
00466                 col3=1;
00467                 col2=1;
00468                 wait_us(208);
00469                 floor3 = 0;
00470                 col3=0;
00471                 col2=0;
00472                 wait_us(208);
00473                 
00474                 floor3 = 1;
00475                 col0=1;
00476                 col3=1;
00477                 col2=1;
00478                 wait_us(208);
00479                 floor3 = 0;
00480                 col0=0;
00481                 col3=0;
00482                 col2=0;
00483                 wait_us(208);
00484                 
00485                 floor3 = 1;
00486                 col4=1;
00487                 wait_us(208);
00488                 floor3 = 0;
00489                 col4=0;
00490                 wait_us(208);
00491                 
00492                 floor3 = 1;
00493                 col0=1;
00494                 col4=1;
00495                 wait_us(208);
00496                 floor3 = 0;
00497                 col0=0;
00498                 col4=0;
00499                 wait_us(208);
00500                 
00501                 floor3 = 1;
00502                 col1=1;
00503                 col4=1;
00504                 wait_us(208);
00505                 floor3 = 0;
00506                 col1=0;
00507                 col4=0;
00508                 wait_us(208);
00509                 
00510                 floor3 = 1;
00511                 col0=1;
00512                 col4=1;
00513                 col2=1;
00514                 wait_us(208);
00515                 floor3 = 0;
00516                 col0=0;
00517                 col4=0;
00518                 col2=0;
00519                 wait_us(208);
00520                 
00521                 floor3 = 1;
00522                 col4=1;
00523                 col1=1;
00524                 col2=1;
00525                 wait_us(208);
00526                 floor3 = 0;
00527                 col4=0;
00528                 col1=0;
00529                 col2=0;
00530                 wait_us(208);
00531                 
00532                 floor3 = 1;
00533                 col0=1;
00534                 col1=1;
00535                 col2=1;
00536                 col4=1;
00537                 wait_us(208);
00538                 floor3 = 0;
00539                 col0=0;
00540                 col1=0;
00541                 col2=0;
00542                 col4=0;
00543                 wait_us(208);
00544                 
00545             } else if (385<max[0] && max[0]<400) {
00546                 x="cuarto patron";
00547                 
00548                 floor1 = 1;
00549                 col3=1;
00550                 col1=1;
00551                 col0=1;
00552                 wait_us(208);
00553                 floor1 = 0;
00554                 col3=0;
00555                 col1=0;
00556                 col0=0;
00557                 wait_us(208);
00558                 
00559                 floor1 = 1;
00560                 col3=1;
00561                 col2=1;
00562                 wait_us(208);
00563                 floor1 = 0;
00564                 col3=0;
00565                 col2=0;
00566                 wait_us(208);
00567                 
00568                 floor1 = 1;
00569                 col3=1;
00570                 col2=1;
00571                 col0=1;
00572                 wait_us(208);
00573                 floor1 = 0;
00574                 col3=0;
00575                 col2=0;
00576                 col0=0;
00577                 wait_us(208);
00578                 
00579                 floor2 = 1;
00580                 col2=1;
00581                 col1=1;
00582                 wait_us(208);
00583                 floor2 = 0;
00584                 col2=0;
00585                 col1=0;
00586                 wait_us(208);
00587                 
00588                 floor2 = 1;
00589                 col2=1;
00590                 col1=1;
00591                 col0=1;
00592                 wait_us(208);
00593                 floor2 = 0;
00594                 col2=0;
00595                 col1=0;
00596                 col0=0;
00597                 wait_us(208);
00598                 
00599                 floor2 = 1;
00600                 col3=1;
00601                 wait_us(208);
00602                 floor2 = 0;
00603                 col3=0;
00604                 wait_us(208);
00605                 
00606                 floor2 = 1;
00607                 col3=1;
00608                 col1=1;
00609                 col0=1;
00610                 wait_us(208);
00611                 floor2 = 0;
00612                 col3=0;
00613                 col1=0;
00614                 col0=0;
00615                 wait_us(208);
00616                 
00617                 
00618                 floor2 = 1;
00619                 col3=1;
00620                 col2=1;
00621                 wait_us(208);
00622                 floor2 = 0;
00623                 col3=0;
00624                 col2=0;
00625                 wait_us(208);
00626                 
00627                 floor2 = 1;
00628                 col3=1;
00629                 col2=1;
00630                 col0=1;
00631                 wait_us(208);
00632                 floor2 = 1;
00633                 col3=0;
00634                 col2=0;
00635                 col0=0;
00636                 wait_us(208);
00637                 
00638                 floor2 = 1;
00639                 col4=1;
00640                 wait_us(208);
00641                 floor2 = 0;
00642                 col4=0;
00643                 wait_us(208);
00644                 
00645                 floor2 = 1;
00646                 col4=1;
00647                 col0=1;
00648                 wait_us(208);
00649                 floor2 = 0;
00650                 col4=0;
00651                 col0=0;
00652                 wait_us(208);
00653                 
00654                 floor2 = 1;
00655                 col4=1;
00656                 col1=1;
00657                 wait_us(208);
00658                 floor2 = 0;
00659                 col4=0;
00660                 col1=0;
00661                 wait_us(208);
00662                 
00663                 floor3 = 1;
00664                 col0=1;
00665                 wait_us(208);
00666                 floor3 = 0;
00667                 col0=0;
00668                 wait_us(208);
00669                 
00670                 floor3 = 1;
00671                 col1=1;
00672                 wait_us(208);
00673                 floor3 = 0;
00674                 col1=0;
00675                 wait_us(208);
00676                 
00677                 floor3 = 1;
00678                 col0=1;
00679                 col1=1;
00680                 wait_us(208);
00681                 floor3 = 0;
00682                 col0=0;
00683                 col1=0;
00684                 wait_us(208);
00685                 
00686                 floor3 = 1;
00687                 col1=1;
00688                 col2=1;
00689                 wait_us(208);
00690                 floor3 = 0;
00691                 col1=0;
00692                 col2=0;
00693                 wait_us(208);
00694                 
00695                 floor3 = 1;
00696                 col0=1;
00697                 col1=1;
00698                 col2=1;
00699                 wait_us(208);
00700                 floor3 = 0;
00701                 col0=0;
00702                 col1=0;
00703                 col2=0;
00704                 wait_us(208);
00705                 
00706                 floor3 = 1;
00707                 col3=1;
00708                 wait_us(208);
00709                 floor3 = 0;
00710                 col3=0;
00711                 wait_us(208);
00712                 
00713                 floor3 = 1;
00714                 col0=1;
00715                 col1=1;
00716                 col3=1;
00717                 wait_us(208);
00718                 floor3 = 0;
00719                 col0=0;
00720                 col1=0;
00721                 col3=0;
00722                 wait_us(208);
00723                 
00724                 floor3 = 1;
00725                 col3=1;
00726                 col2=1;
00727                 wait_us(208);
00728                 floor3 = 0;
00729                 col3=0;
00730                 col2=0;
00731                 wait_us(208);
00732                 
00733                 floor3 = 1;
00734                 col0=1;
00735                 col3=1;
00736                 col2=1;
00737                 wait_us(208);
00738                 floor3 = 0;
00739                 col0=0;
00740                 col3=0;
00741                 col2=0;
00742                 wait_us(208);
00743                 
00744                 floor3 = 1;
00745                 col4=1;
00746                 wait_us(208);
00747                 floor3 = 0;
00748                 col4=0;
00749                 wait_us(208);
00750                 
00751                 floor3 = 1;
00752                 col0=1;
00753                 col4=1;
00754                 wait_us(208);
00755                 floor3 = 0;
00756                 col0=0;
00757                 col4=0;
00758                 wait_us(208);
00759                 
00760                 floor3 = 1;
00761                 col1=1;
00762                 col4=1;
00763                 wait_us(208);
00764                 floor3 = 0;
00765                 col1=0;
00766                 col4=0;
00767                 wait_us(208);
00768                 
00769                 floor3 = 1;
00770                 col0=1;
00771                 col4=1;
00772                 col2=1;
00773                 wait_us(208);
00774                 floor3 = 0;
00775                 col0=0;
00776                 col4=0;
00777                 col2=0;
00778                 wait_us(208);
00779                 
00780                 floor3 = 1;
00781                 col4=1;
00782                 col1=1;
00783                 col2=1;
00784                 wait_us(208);
00785                 floor3 = 0;
00786                 col4=0;
00787                 col1=0;
00788                 col2=0;
00789                 wait_us(208);
00790                 
00791                 floor3 = 1;
00792                 col0=1;
00793                 col1=1;
00794                 col2=1;
00795                 col4=1;
00796                 wait_us(208);
00797                 floor3 = 0;
00798                 col0=0;
00799                 col1=0;
00800                 col2=0;
00801                 col4=0;
00802                 wait_us(208);
00803                 
00804                 floor4 = 1;
00805                 col0=1;
00806                 wait_us(208);
00807                 floor4 = 0;
00808                 col0=0;
00809                 wait_us(208);
00810                 
00811                 floor4 = 1;
00812                 col1=1;
00813                 wait_us(208);
00814                 floor4 = 0;
00815                 col1=0;
00816                 wait_us(208);
00817                 
00818                 floor4 = 1;
00819                 col0=1;
00820                 col1=1;
00821                 wait_us(208);
00822                 floor4 = 0;
00823                 col0=0;
00824                 col1=0;
00825                 wait_us(208);
00826                 
00827                 floor4 = 1;
00828                 col1=1;
00829                 col2=1;
00830                 wait_us(208);
00831                 floor4 = 0;
00832                 col1=0;
00833                 col2=0;
00834                 wait_us(208);
00835                 
00836                 floor4 = 1;
00837                 col0=1;
00838                 col1=1;
00839                 col2=1;
00840                 wait_us(208);
00841                 floor4 = 0;
00842                 col0=0;
00843                 col1=0;
00844                 col2=0;
00845                 wait_us(208);
00846                 
00847                 floor4 = 1;
00848                 col3=1;
00849                 wait_us(208);
00850                 floor4 = 0;
00851                 col3=0;
00852                 wait_us(208);
00853                 
00854                 floor4 = 1;
00855                 col0=1;
00856                 col1=1;
00857                 col3=1;
00858                 wait_us(208);
00859                 floor4 = 0;
00860                 col0=0;
00861                 col1=0;
00862                 col3=0;
00863                 wait_us(208);
00864                 
00865                 floor4 = 1;
00866                 col3=1;
00867                 col2=1;
00868                 wait_us(208);
00869                 floor4 = 0;
00870                 col3=0;
00871                 col2=0;
00872                 wait_us(208);
00873                 
00874                 floor4 = 1;
00875                 col0=1;
00876                 col3=1;
00877                 col2=1;
00878                 wait_us(208);
00879                 floor4 = 0;
00880                 col0=0;
00881                 col3=0;
00882                 col2=0;
00883                 wait_us(208);
00884                 
00885                 floor4 = 1;
00886                 col4=1;
00887                 wait_us(208);
00888                 floor4 = 0;
00889                 col4=0;
00890                 wait_us(208);
00891                 
00892                 floor4 = 1;
00893                 col0=1;
00894                 col4=1;
00895                 wait_us(208);
00896                 floor4 = 0;
00897                 col0=0;
00898                 col4=0;
00899                 wait_us(208);
00900                 
00901                 floor4 = 1;
00902                 col1=1;
00903                 col4=1;
00904                 wait_us(208);
00905                 floor4 = 0;
00906                 col1=0;
00907                 col4=0;
00908                 wait_us(208);
00909                 
00910                 floor4 = 1;
00911                 col0=1;
00912                 col4=1;
00913                 col2=1;
00914                 wait_us(208);
00915                 floor4 = 0;
00916                 col0=0;
00917                 col4=0;
00918                 col2=0;
00919                 wait_us(208);
00920                 
00921                 floor4 = 1;
00922                 col4=1;
00923                 col1=1;
00924                 col2=1;
00925                 wait_us(208);
00926                 floor4 = 0;
00927                 col4=0;
00928                 col1=0;
00929                 col2=0;
00930                 wait_us(208);
00931                 
00932                 floor4 = 1;
00933                 col0=1;
00934                 col1=1;
00935                 col2=1;
00936                 col4=1;
00937                 wait_us(208);
00938                 floor4 = 0;
00939                 col0=0;
00940                 col1=0;
00941                 col2=0;
00942                 col4=0;
00943                 wait_us(208);
00944                 
00945             } else if (495<max[0] && max[0]<505) {
00946                 x="quinto patron";
00947                 
00948                 floor1 = 1;
00949                 col3=1;
00950                 col1=1;
00951                 col0=1;
00952                 wait_us(208);
00953                 floor1 = 0;
00954                 col3=0;
00955                 col1=0;
00956                 col0=0;
00957                 wait_us(208);
00958                 
00959                 floor1 = 1;
00960                 col3=1;
00961                 col2=1;
00962                 wait_us(208);
00963                 floor1 = 0;
00964                 col3=0;
00965                 col2=0;
00966                 wait_us(208);
00967                 
00968                 floor1 = 1;
00969                 col3=1;
00970                 col2=1;
00971                 col0=1;
00972                 wait_us(208);
00973                 floor1 = 0;
00974                 col3=0;
00975                 col2=0;
00976                 col0=0;
00977                 wait_us(208);
00978                 
00979                 floor2 = 1;
00980                 col2=1;
00981                 col1=1;
00982                 wait_us(208);
00983                 floor2 = 0;
00984                 col2=0;
00985                 col1=0;
00986                 wait_us(208);
00987                 
00988                 floor2 = 1;
00989                 col2=1;
00990                 col1=1;
00991                 col0=1;
00992                 wait_us(208);
00993                 floor2 = 0;
00994                 col2=0;
00995                 col1=0;
00996                 col0=0;
00997                 wait_us(208);
00998                 
00999                 floor2 = 1;
01000                 col3=1;
01001                 wait_us(208);
01002                 floor2 = 0;
01003                 col3=0;
01004                 wait_us(208);
01005                 
01006                 floor2 = 1;
01007                 col3=1;
01008                 col1=1;
01009                 col0=1;
01010                 wait_us(208);
01011                 floor2 = 0;
01012                 col3=0;
01013                 col1=0;
01014                 col0=0;
01015                 wait_us(208);
01016                 
01017                 
01018                 floor2 = 1;
01019                 col3=1;
01020                 col2=1;
01021                 wait_us(208);
01022                 floor2 = 0;
01023                 col3=0;
01024                 col2=0;
01025                 wait_us(208);
01026                 
01027                 floor2 = 1;
01028                 col3=1;
01029                 col2=1;
01030                 col0=1;
01031                 wait_us(208);
01032                 floor2 = 1;
01033                 col3=0;
01034                 col2=0;
01035                 col0=0;
01036                 wait_us(208);
01037                 
01038                 floor2 = 1;
01039                 col4=1;
01040                 wait_us(208);
01041                 floor2 = 0;
01042                 col4=0;
01043                 wait_us(208);
01044                 
01045                 floor2 = 1;
01046                 col4=1;
01047                 col0=1;
01048                 wait_us(208);
01049                 floor2 = 0;
01050                 col4=0;
01051                 col0=0;
01052                 wait_us(208);
01053                 
01054                 floor2 = 1;
01055                 col4=1;
01056                 col1=1;
01057                 wait_us(208);
01058                 floor2 = 0;
01059                 col4=0;
01060                 col1=0;
01061                 wait_us(208);
01062                 
01063                 floor3 = 1;
01064                 col0=1;
01065                 wait_us(208);
01066                 floor3 = 0;
01067                 col0=0;
01068                 wait_us(208);
01069                 
01070                 floor3 = 1;
01071                 col1=1;
01072                 wait_us(208);
01073                 floor3 = 0;
01074                 col1=0;
01075                 wait_us(208);
01076                 
01077                 floor3 = 1;
01078                 col0=1;
01079                 col1=1;
01080                 wait_us(208);
01081                 floor3 = 0;
01082                 col0=0;
01083                 col1=0;
01084                 wait_us(208);
01085                 
01086                 floor3 = 1;
01087                 col1=1;
01088                 col2=1;
01089                 wait_us(208);
01090                 floor3 = 0;
01091                 col1=0;
01092                 col2=0;
01093                 wait_us(208);
01094                 
01095                 floor3 = 1;
01096                 col0=1;
01097                 col1=1;
01098                 col2=1;
01099                 wait_us(208);
01100                 floor3 = 0;
01101                 col0=0;
01102                 col1=0;
01103                 col2=0;
01104                 wait_us(208);
01105                 
01106                 floor3 = 1;
01107                 col3=1;
01108                 wait_us(208);
01109                 floor3 = 0;
01110                 col3=0;
01111                 wait_us(208);
01112                 
01113                 floor3 = 1;
01114                 col0=1;
01115                 col1=1;
01116                 col3=1;
01117                 wait_us(208);
01118                 floor3 = 0;
01119                 col0=0;
01120                 col1=0;
01121                 col3=0;
01122                 wait_us(208);
01123                 
01124                 floor3 = 1;
01125                 col3=1;
01126                 col2=1;
01127                 wait_us(208);
01128                 floor3 = 0;
01129                 col3=0;
01130                 col2=0;
01131                 wait_us(208);
01132                 
01133                 floor3 = 1;
01134                 col0=1;
01135                 col3=1;
01136                 col2=1;
01137                 wait_us(208);
01138                 floor3 = 0;
01139                 col0=0;
01140                 col3=0;
01141                 col2=0;
01142                 wait_us(208);
01143                 
01144                 floor3 = 1;
01145                 col4=1;
01146                 wait_us(208);
01147                 floor3 = 0;
01148                 col4=0;
01149                 wait_us(208);
01150                 
01151                 floor3 = 1;
01152                 col0=1;
01153                 col4=1;
01154                 wait_us(208);
01155                 floor3 = 0;
01156                 col0=0;
01157                 col4=0;
01158                 wait_us(208);
01159                 
01160                 floor3 = 1;
01161                 col1=1;
01162                 col4=1;
01163                 wait_us(208);
01164                 floor3 = 0;
01165                 col1=0;
01166                 col4=0;
01167                 wait_us(208);
01168                 
01169                 floor3 = 1;
01170                 col0=1;
01171                 col4=1;
01172                 col2=1;
01173                 wait_us(208);
01174                 floor3 = 0;
01175                 col0=0;
01176                 col4=0;
01177                 col2=0;
01178                 wait_us(208);
01179                 
01180                 floor3 = 1;
01181                 col4=1;
01182                 col1=1;
01183                 col2=1;
01184                 wait_us(208);
01185                 floor3 = 0;
01186                 col4=0;
01187                 col1=0;
01188                 col2=0;
01189                 wait_us(208);
01190                 
01191                 floor3 = 1;
01192                 col0=1;
01193                 col1=1;
01194                 col2=1;
01195                 col4=1;
01196                 wait_us(208);
01197                 floor3 = 0;
01198                 col0=0;
01199                 col1=0;
01200                 col2=0;
01201                 col4=0;
01202                 wait_us(208);
01203                 
01204                 floor4 = 1;
01205                 col0=1;
01206                 wait_us(208);
01207                 floor4 = 0;
01208                 col0=0;
01209                 wait_us(208);
01210                 
01211                 floor4 = 1;
01212                 col1=1;
01213                 wait_us(208);
01214                 floor4 = 0;
01215                 col1=0;
01216                 wait_us(208);
01217                 
01218                 floor4 = 1;
01219                 col0=1;
01220                 col1=1;
01221                 wait_us(208);
01222                 floor4 = 0;
01223                 col0=0;
01224                 col1=0;
01225                 wait_us(208);
01226                 
01227                 floor4 = 1;
01228                 col1=1;
01229                 col2=1;
01230                 wait_us(208);
01231                 floor4 = 0;
01232                 col1=0;
01233                 col2=0;
01234                 wait_us(208);
01235                 
01236                 floor4 = 1;
01237                 col0=1;
01238                 col1=1;
01239                 col2=1;
01240                 wait_us(208);
01241                 floor4 = 0;
01242                 col0=0;
01243                 col1=0;
01244                 col2=0;
01245                 wait_us(208);
01246                 
01247                 floor4 = 1;
01248                 col3=1;
01249                 wait_us(208);
01250                 floor4 = 0;
01251                 col3=0;
01252                 wait_us(208);
01253                 
01254                 floor4 = 1;
01255                 col0=1;
01256                 col1=1;
01257                 col3=1;
01258                 wait_us(208);
01259                 floor4 = 0;
01260                 col0=0;
01261                 col1=0;
01262                 col3=0;
01263                 wait_us(208);
01264                 
01265                 floor4 = 1;
01266                 col3=1;
01267                 col2=1;
01268                 wait_us(208);
01269                 floor4 = 0;
01270                 col3=0;
01271                 col2=0;
01272                 wait_us(208);
01273                 
01274                 floor4 = 1;
01275                 col0=1;
01276                 col3=1;
01277                 col2=1;
01278                 wait_us(208);
01279                 floor4 = 0;
01280                 col0=0;
01281                 col3=0;
01282                 col2=0;
01283                 wait_us(208);
01284                 
01285                 floor4 = 1;
01286                 col4=1;
01287                 wait_us(208);
01288                 floor4 = 0;
01289                 col4=0;
01290                 wait_us(208);
01291                 
01292                 floor4 = 1;
01293                 col0=1;
01294                 col4=1;
01295                 wait_us(208);
01296                 floor4 = 0;
01297                 col0=0;
01298                 col4=0;
01299                 wait_us(208);
01300                 
01301                 floor4 = 1;
01302                 col1=1;
01303                 col4=1;
01304                 wait_us(208);
01305                 floor4 = 0;
01306                 col1=0;
01307                 col4=0;
01308                 wait_us(208);
01309                 
01310                 floor4 = 1;
01311                 col0=1;
01312                 col4=1;
01313                 col2=1;
01314                 wait_us(208);
01315                 floor4 = 0;
01316                 col0=0;
01317                 col4=0;
01318                 col2=0;
01319                 wait_us(208);
01320                 
01321                 floor4 = 1;
01322                 col4=1;
01323                 col1=1;
01324                 col2=1;
01325                 wait_us(208);
01326                 floor4 = 0;
01327                 col4=0;
01328                 col1=0;
01329                 col2=0;
01330                 wait_us(208);
01331                 
01332                 floor4 = 1;
01333                 col0=1;
01334                 col1=1;
01335                 col2=1;
01336                 col4=1;
01337                 wait_us(208);
01338                 floor4 = 0;
01339                 col0=0;
01340                 col1=0;
01341                 col2=0;
01342                 col4=0;
01343                 wait_us(208);
01344                 
01345                 floor5 = 1;
01346                 col1=1;
01347                 col2=1;
01348                 wait_us(208);
01349                 floor5 = 0;
01350                 col1=0;
01351                 col2=0;
01352                 wait_us(208);
01353                 
01354                 floor5 = 1;
01355                 col1=1;
01356                 col2=1;
01357                 col0=1;
01358                 wait_us(208);
01359                 floor5 = 0;
01360                 col1=0;
01361                 col2=0;
01362                 col0=0;
01363                 wait_us(208);
01364                 
01365                 floor5 = 1;
01366                 col3=1;
01367                 wait_us(208);
01368                 floor5 = 0;
01369                 col3=0;
01370                 wait_us(208);
01371                 
01372                 floor5 = 1;
01373                 col4=1;
01374                 wait_us(208);
01375                 floor5 = 0;
01376                 col4=0;
01377                 wait_us(208);
01378                 
01379                 floor5 = 1;
01380                 col4=1;
01381                 col0=1;
01382                 wait_us(208);
01383                 floor5 = 0;
01384                 col4=0;
01385                 col0=0;
01386                 wait_us(208);
01387                 
01388                 floor5 = 1;
01389                 col4=1;
01390                 col1=1;
01391                 wait_us(208);
01392                 floor5 = 0;
01393                 col4=0;
01394                 col1=0;
01395                 wait_us(208);
01396                 
01397             }/* else if (618<max[0] && max[0]<635) {
01398                 x="sexto patron";
01399             } else if (775<max[0] && max[0]<805) {
01400                 x="septimo patron";
01401             } else if (995<max[0] && max[0]<1025) {
01402                 x="octavo patron";
01403             }*/
01404             count++;
01405             if(count == 5){
01406                 pc.printf("%s",x);
01407                 count = 0;
01408             }
01409             
01410             max[0]=0;
01411             max[1]=0;
01412  
01413             // Se vuelve a incertar la interrupción de muestreo
01414             samplingBegin();
01415         }
01416     }
01417 }