Moin Moin,
ich hab jetzt mal einen Assemblercode erstellt, mit dem ich auf dem PORTB eines Mega8 eine änderbare Frequenz ausgeben kann.
Code:
.include "m8def.inc"
.org 0
rjmp reset
.org 3
rjmp interrupt
reset: ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,0b11111011
out DDRB,r16
ldi r16,0b00000011
out PORTB,r16
ldi r16,0b00001111 ;CTC - PRS 8
out TCCR2,r16
ldi r16,0b10000000 ;Interrupt enable
out TIMSK,r16
sei ;global int. enable
ldi r16,0b01100010
out ADMUX,r16
ldi r17,0b10101010
;Hier Init-Code eintragen.
;------------------------------------------------------------------------
mainloop: wdr
rjmp mainloop
interrupt:
;toggle Port B
in r16,PINB
com r16
out PORTB,r16
ldi r16,0b11000010
out ADCSRA,r16
bis_converted:
in r20,ADCSRA
ori r20,0b11101111
cpi r20,0b11111111
brne bis_converted
in r25,ADCH
ori r25,1
out OCR2, r25
reti
(Könnte man ja auch fix programieren). Angenommen, diese Frequenz ist mein Taktsignal, auf das ich die Daten draumodulieren will, kann mir jemand sagen, an welcher stelle ich das wie im Code machen müsste, um ständig eine 1 zu übertragen?
Und wodurch wird die Frequenz des Taktsignals bestimmt?
Danke
Lesezeichen