Hallo AVR - Praxis Gemeinde,
Ich bin Matthias, ich beschäftige mich jetzt seit gut einer Woche mit AVR´s und hab schon meine ersten Problemchen. Zuerst einmal die Frage, welche Programmiersprache emfehlt ihr mir, ich weiss die Meinungen gehen da auseinander aber es muss ja ein für und wieder geben(grob). Ich selbst habe in meiner Lehrzeit mal mit Assambler zu tun gehabt und damals waren das 8080 und 8086 Prozessoren, ist glaub ich nicht vergleichbar und auch nicht mehr aktuell und viel zu lang her.
Gut nun zu meinem (Problem), ich habe mir aus einer Siebensegmentanzeige (max 188) tot-4301ng-1 und einem Atmega8 einen einfachen Zähler so zum testen aufgebaut. Erst eine Stelle dann Multiplex und darauf wollt ich dann weiter aufbauen.
Mein Problem ist das mein Zähler der einfach nur von 00 - 199 zählen soll, bei einem Reset (oder einschalten der avcc) mit 80 anfängt. Ich habe den code dahin ändern können das er bei 00 anfängt aber ich möchte zum besseren verständnis wissen was ich falsch gemacht habe das er bei 80 anfängt wenn ich die variablen i und n auf 0 stelle, bei I = 0 und N = 2 zählt er von 00
verzeiht mir wenn das noch n bissel durcheinander aussieht - ich lerne noch.
Sollte es zu diesem Thema schon einen Beitrag geben, dann bitte einen Link dorthin, hatte aber nix gefunden.
Ich danke euch schon einmal im vorraus.
Gruss Matthias
Ich bin Matthias, ich beschäftige mich jetzt seit gut einer Woche mit AVR´s und hab schon meine ersten Problemchen. Zuerst einmal die Frage, welche Programmiersprache emfehlt ihr mir, ich weiss die Meinungen gehen da auseinander aber es muss ja ein für und wieder geben(grob). Ich selbst habe in meiner Lehrzeit mal mit Assambler zu tun gehabt und damals waren das 8080 und 8086 Prozessoren, ist glaub ich nicht vergleichbar und auch nicht mehr aktuell und viel zu lang her.
Gut nun zu meinem (Problem), ich habe mir aus einer Siebensegmentanzeige (max 188) tot-4301ng-1 und einem Atmega8 einen einfachen Zähler so zum testen aufgebaut. Erst eine Stelle dann Multiplex und darauf wollt ich dann weiter aufbauen.
Mein Problem ist das mein Zähler der einfach nur von 00 - 199 zählen soll, bei einem Reset (oder einschalten der avcc) mit 80 anfängt. Ich habe den code dahin ändern können das er bei 00 anfängt aber ich möchte zum besseren verständnis wissen was ich falsch gemacht habe das er bei 80 anfängt wenn ich die variablen i und n auf 0 stelle, bei I = 0 und N = 2 zählt er von 00
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
Ocr1a = 12500
Config Timer1 = Timer , Prescale = 64 , Clear Timer = 1 , Compare A = Disconnect
On Oc1a T1
Enable Oc1a
Enable Interrupts
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Portb = Output
Config Portd = Output
Config Portc.5 = Output
Portd = &HFF
Portb = &HFF
Portc.5 = 0
Dim Speed As Integer
Dim I As Byte
Dim N As Byte
Dim H As Byte
Dim Z As Integer
Dim X(10) As Byte
Restore Value_table
For I = 1 To 10
Read X(i)
Next
Z = 0
I = 0
N = 2
H = 1
Do
For Z = 1 To Speed
Portd = X(i)
Portb = &HFE
Waitms 1
Portd = X(n)
Portb = &HFD
Waitms 1
Next
If I = 10 Then
Incr N
I = 0
End If
If N = 11 Then
Incr H
N = 1
End If
If H = 2 Then
H = 0
End If
Incr I
If H = 0 Then
Portc.5 = 0
Else
Portc.5 = 1
End If
Loop
T1:
Speed = Getadc(0)
Return
End 'end program
Value_table:
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10
verzeiht mir wenn das noch n bissel durcheinander aussieht - ich lerne noch.
Sollte es zu diesem Thema schon einen Beitrag geben, dann bitte einen Link dorthin, hatte aber nix gefunden.
Ich danke euch schon einmal im vorraus.
Gruss Matthias