[AVR] Unterschied zwischen atmega8L-8PU und atmega8-16PU

OP #938030
Hi,
Ich denke die Überschrift sagt bereits das meiste aus, aber konkret geht 
es mir um dieses Problem: Ich habe folgenden bascom-Quelltext 
geschrieben:
1
$regfile = "m8def.dat"
2
$crystal = 8000000
3

4
Dim Number As Byte
5
Dim Seg1 As Byte                                            '10er Anzeige
6
Dim Seg2 As Byte                                            '1er Anzeige
7
Dim Seg3 As Byte                                            'LED Anzeige, bei erstem test obsolet
8
Dim Einer As Byte                                           'Evtl anderer Typ, muss nur 0-9 beinhalten
9
Dim Zehner As Byte                                          'Evtl anderer Typ
10
Dim I As Byte
11
Dim Lednumber As Byte                                       'lednumber 0-6
12

13
Config Timer0 = Timer , Prescale = 64
14
Enable Timer0
15

16
On Timer0 Isr_timer0
17

18
Enable Interrupts                                           'Interrupts global aktivieren
19

20
Config Portb = Output
21
Config Portc = Output
22
Config Portd = Input
23
Portd = &B11111111                                          ' Pull-up Widerstatände aktivieren
24

25
Number = 0
26
I = 0
27
Lednumber = 0                                               'Standard W4 keine LED
28

29
Do
30
Debounce Pind.2 , 0 , Isr_int0 , Sub
31
Debounce Pind.3 , 0 , Isr_int1 , Sub
32
Zehner = Number \ 10                                        '\ beudetet ganzzahldivision
33
Zehner = Zehner Mod 10                                      'Dumm dass man nur ein Befehl pro Zeile tun darf: Zehner = number\10mod10
34
Einer = Number Mod 10
35
Seg1 = Lookup(zehner , Segdata)                             'Ansteuerung ist ja für Seg1 und Seg2 gleich, da beide gleich beschaltet sind
36
Seg2 = Lookup(einer , Segdata)
37
Seg3 = Lookup(lednumber , Leddata)
38
Loop
39
End
40

41
Isr_int0:
42
Incr Number
43
Return
44

45
Isr_int1:
46
If Lednumber <= 5 Then
47
   Incr Lednumber
48
   Else
49
   Lednumber = 0
50
End If
51

52

53
Isr_timer0:
54
If I = 0 Then
55
   Portc = &B00000001
56
   Portb = Seg1
57
   Incr I
58
   Elseif I = 1 Then
59
      Portc = &B00000010
60
      Portb = Seg2
61
      Incr I
62
      Elseif I = 2 Then
63
         Portc = &B00000100
64
         Portb = Seg3
65
         I = 0
66
End If
67
Return
68

69
Segdata:
70
Data &B00111110 , &B00011000 , &B00101101 , &B00011101 , &B00011011 , &B00010111 , &B00110111 , &B00011100 , &B00111111 , &B00011111       'ByteCode für Segmentanzeigen eintragen:Reihenfolge :0-9
71
Leddata:
72
Data &B00000000 , &B00000001 , &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00100000

Hauptsinn dessen ist es, 2 7-Segment-Anzeigen und 7 LEDs zu multiplexen.
Mit dem atmega8L-8PU funktioniert das absolut flimmerfrei mit obiger 
config.

Nutze ich nun den günstigeren atmega8-16PU, so flimmert die Anzeige bei 
gleicher config.

Was kann ich dagegen tun und worin liegt der Unterschied zwischen den 
zwei AVRs?

//Bitte die eventuell seltsamen Kommentare im Quelltext ignorieren ;)

Danke für alle Antworten;)

LG
tyzmon
Gast #938039
Guck bitte mal in das Datenblatt! Nenne die Unterscheide hier! Lasse 
Dich dann von uns auffordern die Unterschiede gegen Deine Schaltung zu 
prüfen!
Schaue nicht unaufgefordert in das Datenblatt. Auf keinen Fall selbst 
denken. Unterscheide auf jeden Fall prüfen gegen Rechtschreibung der 
Kommentare im Quelltext.

Danke für die Beachtung aller Sicherheitsmassnahmen.
Gast #938065
In der Hardware auch nicht, aber das ist ja schon lange bekannt.
Sind absolut identisch, nur 2 unterschiedliche Testszenarien,
sonst eineiige Zwillinge.

Vielleicht hast Du ja vergessen die Fusebits für den Quarz zu setzen und 
jetzt läuft der Mega8 mit dem internen Oszillator und der ist nun mal 
langsam (imho nur 1MHz).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.