Paso 3: onda de seno, 1,790 Mhz
RESET:
R1=255*sin(0)
R2=255*sin(PI/4)
R3=255*sin(pi/2)
R4=255*sin(3pi/4)
R5=255*sin(PI)
R6=255*sin(5pi/4)
R7=255*sin(3pi/2)
Bucle:
salida portN, r1
salida portN, r2
salida portN, r3
salida portN, r4
salida portN, r5
salida portN, r6
salida portN, r7
rjmp ciclo
El irregular poco "inmersión" en la forma de onda es causado por la declaración de rjmp que lleva 2 ciclos de reloj para procesar. Para conseguir alrededor de esto, copiar/pegar la secuencia en la función de lazo muchas veces espalda con espalda, produciendo muchos períodos de la forma de onda para cada bucle. Esta foto es de una secuencia de 10 períodos por loop, el atmega16-16pu tiene memoria suficiente para diez veces que fácilmente.
Para otras frecuencias, tienes que ser creativa:
-cambiar la resolución (pi/n), como es tener en cuenta mayores valores de n requieren más registros.
-utilizar la instrucción nop (no hace nada y tiene un ciclo de reloj para hacerlo)
-uso de temporizadores
-utilizar una tabla de seno en la EEPROM
-trucos raros: Observe cómo el artefacto rjmp trae la tensión por debajo del valor cero de la onda... esto es porque representa el valor 0 existente para los 3 ciclos de reloj, y lo que puntas de prueba que utilice tendrá cierta capacitancia e inductancia que resiste los cambios de corriente y voltaje. Usted podría hacer su programa de producir una forma de onda asimétrica reemplazando r1 con un número entero positivo distinto de cero, de modo que el voltaje decae exactamente para el "punto cero" del resto de la forma de onda en ciclos de reloj 2. Si puede hacerlo, entonces mi sombrero es a usted.