Micros 03

Você também pode gostar

Você está na página 1de 4

2.

Código:

1
Para o caso desta questão, a intenção era utilizar o PORTB para conectar 8 leds, ou
seja, todos os pinos do PORTB foram configurados como saída. Após isso, foi utilizado
a interrupção do TIMER1, para fazer os leds serem desligados a cada 0,8 segundos, do
led conectado ao pino 7 do PORTB, ao led conectado ao pino 0 do PORTB. Após todos
os leds serem desligados, o processo inverte, e a cada 0,8 segundos um led é ligado, desta
vez, do pino 0 do PORTB, ao pino 7 do PORTB, e essa sequência se repete enquanto o
programa está sendo executado. Para o caso do TIMER1, foi utilizado um prescale 1:8,
ou seja, o maior prescale, e mesmo com o maior prescale, não é possível gerar um estouro
de 0,8 segundos. Para contornar esta situação, foi utilizada a seguinte fórmula, para gerar
um estouro a cada 0,4 segundos, fazendo com que o led fosse aceso ou apagado a cada
dois estouros do TIMER1.

t = ciclo de máquina × prescale × (65536 − T M R1H : T M R1L) (1)

2
Desafio Código:

3
Para o caso deste desafio, é bastante semelhante a questão 2, com um acréscimo, para
esta questão, está sendo usado dois timers, o TIMER0 e o TIMER1, com o TIMER0,
configurado com um prescale de 1:256, é utilizado para apagar os leds que começam
inicialmente acesos a cada 0,5 segundos, para isto ser possível, os leds são apagados a cada
8 estouros do TIMER0. Quando todos os leds são apagados, é desligada a interrupção
do TIMER0, e o TIMER1 é habilitado com um prescale de 1:8, para fazer um led piscar
a uma frequência de 3Hz, utilizando a mesma fórmula da questão 2, para chegar a esse
resultado de 3Hz.

 ∂Mx     
∂t Mx 0
 ∂My 
 ∂t =γ My  ×  0 
   
∂Mz Mz B0
∂t
(2)

Você também pode gostar