mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fusebits und Timer1


Autor: Patrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
Ich habe das Evulationsboard von pollin und versuche für eine 
Druckregelung den Timer1 zu benutzen. Dieser zaehlt bei mir jedoch 
schneller als er soll. Daher mein Verdacht, dass ich die falschen 
Fusebits gesetzt habe und das er garnicht den 16MHz Quarz, der auf dem 
Board ist, verwendet. Ich benutze einen Atmega16.
Villeicht ist der Fehler aber beim Timer1, hier mein Code:

$regfile = "m16def.dat"
 $crystal = 16000000

 'PA2 auf Board
 Config Porta.1 = Output

 '###############################################
 'Display

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , 
Db7 = Porta.7 , E = Portb.0 , Rs = Portb.2
 Config Lcdbus = 4

 'ADC Initzialisierung
 Config Adc = Single , Prescaler = Auto , Reference = Internal
 Start Adc
 '###############################################
 Dim Sekunden As Integer
 Sekunden = 0

 Dim W As Word , Channel As Byte
 Dim Wmulti As Single
 Dim Wstring As String * 10

 Channel = 0

 'Begrüßungsbildschirm
 Cls
 Locate 1 , 1
 Lcd "HS Bremen"
 Locate 2 , 1
 Lcd "Waterhammer v.1"
 Wait 2
 Cls

 'timer
 Config Timer1 = Timer , Edge = Rising , Prescale = 1024
 Enable Timer1
 On Timer1 Timer_overflow
 Enable Interrupts
 '65535 - (16000000 / 1024)
 '65535 - 15625
 '49910
 Timer1 = 49911


Do
  'Wert von ADC channel 0 auslesen
  W = Getadc(channel)

  'W umrechnen
  Wmulti = W * 0.0048288
  Wstring = Str(wmulti)
  Wstring = Fusing(wmulti , "#.&&")

  'LCD-Darstellung
  Locate 1 , 1
  Lcd "Wert: " ; W
  Locate 2 , 1
  Lcd "Sec. " ; Sekunden
  'Lcd "Volt: " ; Wstring
  Waitms 300
  Cls

Loop
End

'jede Sekunde 'Sekunden' erhöhen
Timer_overflow:
Sekunden = Sekunden + 1
Timer1 = 49911
Return

und so sehen meine Fusebits aus die ich über PonyProg einstelle:
haken bei JATGEN, SPIEN, CKOPT, BOOTSZ1, BOOTSZ0, SUT1

Zur zeit zählt er einfach viel zu schnell die Sekunden, die werden auf 
dem Addon board von Pollin ausgegeben.

Danke euch
Patrik

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> schneller als er soll. Daher mein Verdacht, dass ich die falschen
> Fusebits gesetzt habe und das er garnicht den 16MHz Quarz, der auf dem
> Board ist, verwendet. Ich benutze einen Atmega16.

wenn die interne Taktquelle benutzt werden würde, müsste aber alles 
langsamer laufen als mit dem 16MHz-Quarz erwartet...

Autor: Patrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
müsste langsamer laufen bzw genau so wie es soll. nen kumpel hat mir die 
fusebits eingestellt. wie muss ich die denn schalten für den atmega16 
wenn ich den internen takt verwenden will und muss ich dem dann trotzdem 
$crystal=1000000 sagen?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrik wrote:
> müsste langsamer laufen bzw genau so wie es soll.

du verstehst nicht was ich meine: Du glaubst, dass wegen falscher Fuses 
der interne RC-Oszillator statt dem Quarz benutzt wird, und deswegen 
dein Zähler zu schnell läuft. Der interne Oszi ist aber langsamer, 
also müsste der Zähler auch langsamer als wie von dir erwartet jede 
Sekunde eins hochzählen..

> fusebits eingestellt. wie muss ich die denn schalten für den atmega16
> wenn ich den internen takt verwenden will und muss ich dem dann trotzdem
> $crystal=1000000 sagen?

kA, vielleicht solltest du in einem Bascom-Forum fragen, hier sind nach 
meinem Eindruck mehrheitlich C & Assembler-Anwender unterwegs...

Autor: Patrik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe deinen Ansatz, das macht Sinn. Kann mir trotzdem jemand 
zeigen wie ich über ponyprog meinen atmega16 an meinem pollin board so 
einstelle dass der externe quarz benutzt wird?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.