Son para arduino pero solo para la pantalla que tengo.Loquis, sto es CCS ? PIC? o para tus micros raros esos que soles manejar?
no baje nada aun por que tengo señal EDGE![]()
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Son para arduino pero solo para la pantalla que tengo.Loquis, sto es CCS ? PIC? o para tus micros raros esos que soles manejar?
no baje nada aun por que tengo señal EDGE![]()
//Once we\'ve got that, we split it up into separate bytes.
MSB = (int)((calculated_freq_word & 0xFFFC000)>>14); //14 bits
LSB = (int)(calculated_freq_word & 0x3FFF);
//Once we\'ve got that, we split it up into separate bytes.
MSB = (int)((calculated_freq_word & 0xFFFC000)>>14); //14 bits
LSB = (int)(calculated_freq_word & 0x3FFF);
int pinLed = 13; // Declaramos la variable pin del Led.
char caracter;
String comando;
void setup()
{
Serial.begin(9600);
}
void loop()
{
pinMode(pinLed, OUTPUT); // Inicializa el pin del Led 1 como salida.
/* Voy leyendo carácter a carácter lo que se recibe por el canal
* serie (mientras llegue algún dato allí), y los voy concatenando
* uno tras otro en una cadena. En la práctica, si usamos el
* "Serial monitor" el bucle while acabará cuando pulsemos Enter.
* El delay es conveniente para no saturar el canal serie y que la
* concatenación se haga de forma ordenada.
*/
while (Serial.available() > 0)
{
caracter= Serial.read();
comando.concat(caracter);
delay(10);
}
/* Unavez ya tengo la cadena "acabada", compruebo su valor y hago
* que la placa Arduino reaccione según sea este. Aquí podríamos
* hacer lo que quiesiéramos: si el comando es "tal", enciende
* un Led, si es cual, mueve un motor... y así.
*/
if (comando.equals("s1000") == true) // Led_ON
{
digitalWrite(pinLed, HIGH); // Enciende el Led.
Serial.println("EQUA");
}
if (comando.equals("s0000") == true) // Led_OFF
{
digitalWrite(pinLed, LOW); // Apaga el Led.
Serial.println("EQUA");
}
// Limpiamos la cadena para volver a recibir el siguiente comando.
comando="";
}
#include <16F876A.h>
#fuses HS,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT
#use delay (clock=4000000) //Fosc=4Mhz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //manejo del RS232
#use fast_io (B)
#use fast_io (C)
/*******************************
Declaramos variables a usar
*/////////////////////////
#byte RCSTA=0X018
#define usart_off bit_clear(RCSTA,7)
#define usart_on bit_set(RCSTA,7)
//int xbe_buffer [6];
int dat,dat0,dat1,dat2,dat3;
int1 flag=false;
void main (void)
{
setup_adc_ports(no_analogs);
set_tris_c(0b11111000);
set_tris_a(0b000000);
set_tris_b(0b00000000);
output_a(0b000000);
output_b(0b00000000);
output_c(0b00000000);
while(1)
{
int conta=0;
usart_on;
//delay_ms(100);
while(getc() !=0x73);
{flag=true;
for(conta=0;conta<4;conta++)
{dat=getc();
// ([conta]=getc());
switch(conta)
{
case 0: dat0=dat;
break;
case 1: dat1=dat;
break;
case 2: dat2=dat;
break;
case 3: dat3=dat;
break;
default:
break;
}
//putc(getc());
}
}
if(flag==true)
{
if((dat0=='1') && (dat1=='0') && (dat2=='0') && (dat3=='0'))
{output_high(pin_b5);
output_high(pin_b4);
output_high(pin_c2);
putc ('E');
putc ('Q');
putc ('U');
putc ('A');
flag=false;
}
if(dat0=='0' && dat1=='0' && dat2=='0' && dat3=='0')
{ output_low(pin_a5);
output_low(pin_a1);
output_low(pin_a2);
output_low(pin_b2);
output_low(pin_b1);
output_low(pin_b0);
output_low(pin_b5);
output_low(pin_c1);
output_low(pin_c2);
output_low(pin_b4);
putc ('E');
putc ('Q');
putc ('U');
putc ('A');
flag=false;
}
}
/* El módulo EUSART. Control remoto y monitorización
Este ejemplo recibe una serie de comandos ('0'-'7') que permiten cambiar de estado las salidas
RB7:RB0. Constantemente se transmite, previa conversión a ASCII, el estado actual de esas salidas
a modo de monitorización */
#include <16f886.h>
/* Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades */
#fuses NOLVP,PUT,NOWDT,EC_IO,NOFCMEN,NOBROWNOUT //Palabra 1 de configuración
#fuses NOWRT,BORV40 //Palabra 2 de configuración
/* Con estas directivas las funciones "input" y "output_bit" no reprograman
el pin de la puerta cada vez que son utilizadas. Si no se indica el
modo fast_io se asume por defecto standard_io el cual reprograma el pin
siempre antes de ser utilizadas estas funciones. */
#use fast_io (B)
#use fast_io (C)
#use delay(clock=4000000) //Frecuencia de trabajo
//Habilita las funciones RS232, velocidad a 9600 baudios
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#byte PORTB =0x06 //Dirección de la puerta B
/*Programa de tratamiento de la interrupción que se produce al recibir un carácter. Analiza el
comando recibido ('0' -'7') y actua sobre la salida apropiada haciéndola cambiar de estado */
#int_rda //Vector de interrupción al recibir por el UART
tratamiento()
{ switch(getc()) //Lee el carácter recibido
{
case '0': output_toggle(pin_b0);break; //Si es el comando '0' , RB0 cambia de estado
case '1': output_toggle(pin_b1);break; //Si es el comando '1' , RB1 cambia de estado
case '2': output_toggle(pin_b2);break; //Si es el comando '2' , RB2 cambia de estado
case '3': output_toggle(pin_b3);break; //Si es el comando '3' , RB3 cambia de estado
case '4': output_toggle(pin_b4);break; //Si es el comando '4' , RB4 cambia de estado
case '5': output_toggle(pin_b5);break; //Si es el comando '5' , RB5 cambia de estado
case '6': output_toggle(pin_b6);break; //Si es el comando '6' , RB6 cambia de estado
case '7': output_toggle(pin_b7);break; //Si es el comando '7' , RB7 cambia de estado
}
}
main()
{
signed int Contador;
SETUP_ADC_PORTS(NO_ANALOGS); //Puerta A y B Digitales
output_b(0x00); //Borra las salidas
set_tris_b(0b00000000); //Puerta B salida
set_tris_c(0b10111111); //RC6/TxD salida de datos y RC7/RxD entrada del EUSART
putc('\r'); //Transmite CR
putc('\n'); //Transmite avance de línea
enable_interrupts(INT_RDA); //Activa interrupción en la recepción
enable_interrupts(global); //Habilita interrupciones
while(1)
{
for (Contador=7;Contador>=0;Contador--) //Contador con Nº de bits a chequear
printf ("%c",bit_test(PORTB,Contador)+'0'); //Transmite los bits convertidos a ASCII
putc('\r'); //Transmite CR
}
}
#include <Wire.h> //I2C library
#include <RtcDS3231.h> //RTC library
RtcDS3231 <TwoWire> rtcObject(Wire);
const byte interruptPin = 3;
volatile int16_t seconds = 0;
void setup() {
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, FALLING);
rtcObject.Begin(); //Starts I2C
rtcObject.SetSquareWavePin(DS3231SquareWavePin_ModeClock); //Sets pin mode
rtcObject.SetSquareWavePinClockFrequency(DS3231SquareWaveClock_1Hz); //Sets frequency
}
void handleInterrupt() {
seconds++;
}
void loop() {
// put your main code here, to run repeatedly:
} ...