0 Usuarios y 1 Visitante están viendo este tema.
Outputs the specified value (0 or 1) to the specified I/O pin. The method of setting the direction register is determined by the last #USE *_IO directive.
Shifts a bit into an array or structure. The address may be an array identifier or an address to a structure (such as &data). Bit 0 of the lowest byte in RAM is treated as the LSB.
output_bit()CitarOutputs the specified value (0 or 1) to the specified I/O pin. The method of setting the direction register is determined by the last #USE *_IO directive.shift_left()CitarShifts a bit into an array or structure. The address may be an array identifier or an address to a structure (such as &data). Bit 0 of the lowest byte in RAM is treated as the LSB.Supongamos que definimos como pin de salida a algun pin, al que llamaremos DATA y que tenemos una variable de 8 bits VAR la cual vamos a sacar bit a bit por el pin DATA:Código: C#for(i=0;i<8;i++) output_bit(DATA, shift_left(&VAR,1,0));Saludos
Con la calculadora se puede hacer 1/baudrate y se tiene el periodo de cada bit. Con eso ya se puede utilizar delay_xs(....)Saludos!
Ufff... A 500000 tienes que tener en cuenta cuanto demora cada instrucción en C, y a partir de ello agregarle la demora necesaria para que cada bit sea colocado o leido cada 2us (1/500k) .Puede que las instrucciones de C demoren mucho y lo mejor sea incrustar código en asm.Saludos!
Cita de: Suky en 27 de Abril de 2011, 12:51:49Ufff... A 500000 tienes que tener en cuenta cuanto demora cada instrucción en C, y a partir de ello agregarle la demora necesaria para que cada bit sea colocado o leido cada 2us (1/500k) .Puede que las instrucciones de C demoren mucho y lo mejor sea incrustar código en asm.Saludos!de asm no tengo mucha idea :S¿Como quedaria más o menos?Gracias.