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:
} ...