Forum: Mikrocontroller und Digitale Elektronik Attiny2313 Frequenz erzeugen klappt nicht, Bascom


von Ghost R. (ghostrider1911)


Lesenswert?

Hallo liebes µC.net,

mein Ziel wahr es, mit hilfe des Attiny2313 eine
Frequenz mit dem Tastverhältniss 50% zu erzeugen,
diese soll mittels 2 Tastern verändert werden.

Mit dem Atmega8 funktioniert der Code (mit kleinen Veränderungen 
natürlich) mit dem
Attiny leider nicht, warum ist mir leider rätselhaft.

Für jegliche Tipps bin ich dankbar :-)

Programmiert wurde in Bascom, steht ja in der Überschrift.

1
$regfile = "attiny2313.dat"
2
3
$crystal = 8000000
4
5
Config Portb.2 = Output
6
Config Portd.5 = Input
7
Config Portd.4 = Input
8
9
Config Timer1 = Timer , Prescale = 1
10
11
12
Dim Timervorgabe As Word
13
14
On Timer1 Timer_irq
15
Timervorgabe = 55000
16
17
Enable Timer1
18
Enable Interrupts
19
20
21
22
Do
23
   If Pind.5 = 1 And Timervorgabe > 1 Then
24
      Decr Timervorgabe
25
      Waitms 4
26
   End If
27
   If Pind.4 = 1 And Timervorgabe < 65535 Then
28
      Incr Timervorgabe
29
      Waitms 4
30
   End If
31
Loop
32
33
34
35
Timer_irq:
36
  Portb.2 = 1
37
  Portb.2 = 0
38
  Timer1 = Timervorgabe
39
Return

von Karl H. (kbuchegg)


Lesenswert?

Das

Timer_irq:
  Portb.2 = 1
  Portb.2 = 0

kann dir aber kein 50:50 Tastverhältnis liefern. Weder mit dem M8 noch 
mit dem Tiny.

> funktioniert nicht
Was bedeutet das konkret?

von Hannes L. (hannes)


Lesenswert?

Ghost Rider schrieb:
> Tastverhältniss 50%

Ghost Rider schrieb:
> Timer_irq:
>   Portb.2 = 1
>   Portb.2 = 0
>   Timer1 = Timervorgabe
> Return

Das passt nicht zusammen. Versuch's mal mit "toggle". Oder nimm gleich 
den Hardware-Ausgang des Timers und den entsprechenden Compare-Mode. 
Infos gibts im Datenblatt des Tiny2313...

Ghost Rider schrieb:
> Mit dem Atmega8 funktioniert der Code (mit kleinen Veränderungen
> natürlich) mit dem
> Attiny leider nicht, warum ist mir leider rätselhaft.

Dazu fällt mir ein, dass beim Tiny2313 glaube nicht alle von Bascom 
vorgefertigten Timer-Features korrekt funktionieren. Verzichte auf das 
Config-Geraffel und sprich die Timer-Register direkt an. Deren Namen und 
Bitnamen stehen im Datenblatt des Controllers und werden von Bascom 
unterstützt.

...

von Hannes L. (hannes)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das

Ups, auch noch wach? - Beste Grüße in die Berge...

...

von Ghost R. (ghostrider1911)


Lesenswert?

Mit den Registern muss ich mich wohl noch auseinandersetzen, das mir 
momentan noch zu komplex..

Oder hätte vielleicht wer n Beispielcode in Bascom?

mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.