Forum: Mikrocontroller und Digitale Elektronik AT90s4433 - Uhrzeit mit BASCOM


von Matthias (Gast)


Lesenswert?

Hallo,
ich habe seit langem mal wieder meine Mikrocontroller aus dem Schrank 
geholt, da ich für ein Aquarium eine Steuerung basteln wollte.
Ein Punkt ist z.B. Dimmen über die 1-10V Schaltung.
Es soll morgens halt langsam angehen und eine Stunde später auf ca. 80% 
sein.

Dummerweise musste ich jetzt feststellen das Bascom AVR mir sagt das die 
Timer Funktion nicht für meinen Mikrocontroller supported wäre.

$regfile = "4433def.dat"
$crystal = 4000000


Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , 
Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcd = 16 * 2                                         'configure 
lcd screen
Config 1wire = Portd.7                                      'DS1820 Pin
Config Portd = Output
Config Portb = Input
Config Clock = Soft

Es kommt beim kompilieren zu den Fehlern:
error 210 line 10 Bit definition not found [AS2
error 232 line 10 not supported for the selected micro


Laut Datenblatt unterstützt der 4433 doch timer.

Hat jemand Rat?

Danke!

von spess53 (Gast)


Lesenswert?

Hi

>Laut Datenblatt unterstützt der 4433 doch timer.

Timer ist aber nicht gleich Timer. Der 4433 ist ein ururalt AVR. Da 
waren die Timer recht spartanisch ausgestattet. Nimm einen aktuellen 
AVR.

MfG Spess

von Matthias (Gast)


Lesenswert?

hab nur noch ein paar von denen hier rum liegen, werde dann eh auf die 
atmega wechseln. Aber nur wegen der Uhr jetzt erst neue bestellen...
Wie wurde das denn vorher gemacht?
Es musst doch noch codebeispiele geben, oder ging das nicht vorher?

von spess53 (Gast)


Lesenswert?

Hi

>hab nur noch ein paar von denen hier rum liegen, werde dann eh auf die
>atmega wechseln. Aber nur wegen der Uhr jetzt erst neue bestellen...
>Wie wurde das denn vorher gemacht?

Mit zählen. Aber dein Programm scheint auf den Asynchron-Mode eines 
Timers zuzugreifen zu wollen. Und das hat der 4433 nicht.

MfG Spess

von Karl (Gast)


Lesenswert?

Ja, da muss man "von Hand" zählen. Z.b. so:
1
$regfile = "4433def.dat"
2
$crystal = 4000000
3
'$sim
4
Dim Sekunde As Integer
5
Config Timer1 = Timer , Prescale = 64
6
Enable Timer1
7
On Timer1 Sekundeisr
8
Enable Interrupts
9
Start Timer1
10
11
Do
12
  Print Sekunde
13
Loop
14
15
End
16
17
Sekundeisr:
18
  Timer1 = 3036
19
  Incr Sekunde
20
  If Sekunde = 60 Then Sekunde = 0
21
Return

von Matthias (Gast)


Lesenswert?

Danke die für die Hilfe!
Das hilft mir erstmal weiter ;)

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.