Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Fragen zur Software

Basteleien analog und digital mit Strom und Spannung.

Moderator: radioscout

Benutzeravatar
radioscout
Geoking
Beiträge: 24964
Registriert: Mo 1. Mär 2004, 00:05
Wohnort: Aachen

Re: Fragen zur Software

Beitrag von radioscout »

Der FM-Transmitter erzeugt Hochfrequenz die natürlich stören kann. Den Effekt kennt jeder, den schonmal ein Funker mit unpostalischem Nachbrenner den TV-Empfang gestört oder die Nadel des eigenen CB-Geräts runtergezogen hat.

Versuch mal, die Leitungen zum Transmitter zu verdrosseln und für eine gute HF-Erde zu sorgen.
Bild
Wir hätten nie uns getraut doofe Dosen anzumelden schon aus Respekt vor diesem geheimnisvollen Spiel (Dosenfischer, Die goldenen Jahre)
Benutzeravatar
rainmuel
Geocacher
Beiträge: 71
Registriert: So 20. Jan 2008, 11:02

Re: Fragen zur Software

Beitrag von rainmuel »

Aaaaaalso, Bericht zur Lage:
Jetzt habe ich eine Entstörung vor den Transmitter gelötet aus einem R mit 100Ohm, einer Spule mit 47µH, einem C mit 100µF und einem C mit 47pF direkt vor dem FM Tx. Zusätzlich habe ich noch einen 100nF C direkt hinter den Bat ausgang gepackt. Es ist jetzt nicht 100%ig entstört aber zumindest brauchbar und so lasse ich es jetzt.

Allen, die sich bei der Lösung meines Problem beteiligt haben, einen Großen Dank!
Ansonsten Happy Caching an alle!
Bild
Benutzeravatar
huzzel
Geowizard
Beiträge: 2787
Registriert: Mi 10. Okt 2007, 22:01
Kontaktdaten:

Re: Fragen zur Software

Beitrag von huzzel »

upigors hat geschrieben:error : 202 Line: 1 .EQU not found, probably using functions that ar not supported by the selected chip [wdtcr] , in c:\programme.......und so weiter

diese Fehlermeldung bekomme ich beim kompilen (oder heißt das kompilieren?) mit Bascom
Das Programm läuft fehlerfrei aber ich hätte die trotzdem gern weg....
was ist "EQU" bzw wie kann ich diesen fehler weg bekommen?
gruß Uwe
Ich hatte gerade das gleiche Problem.
Nimm die neuste Bascom-Version, dann ist der Fehler weg. Steht in den einschlägigen Foren beschrieben, ist ein Fehler in den dat-Dateien (der 24er ist nicht der einzige mit dem Fehler)
Schwalbe64
Geocacher
Beiträge: 44
Registriert: Mi 28. Jun 2006, 21:38

Re: Fragen zur Software

Beitrag von Schwalbe64 »

Hallo,

ich benötige Hilfe bei meinem kleinen Programm.
Das soll folgende Funktion haben:

Sobald Licht auf den LDR fällt, soll der Portb.3 für 3 sec auf
1 Signal gehen, danach 5 sec Pause, bevor der Port b.0 auch
für 3 sec auf 1 Signal geht.
Anschließend soll für 10 min nichts passieren, (im Programm hier
nur für 20sec. Pause zum testen).
Anschließend sollen dann noch einmal die Ausgänge wie oben schalten.

Im Prinzip läuft das Programm, aber mit den Zeiten komme ich nicht
klar. Obwohl ich die Zeiten noch erhöht habe, ändert sich die Zeit
an den Ausgängen nicht wirklich.
Außerdem möchte ich Zwangsimpuls raushaben. Leider weiß ich nicht,
welche Stelle ich da wirklich anfassen muß. Ich habe jetzt den Zähler
in der Schleife einfach auf Null gesetzt.

Die Hardware ist ähnlich wie beim reaktivem Licht, nur sitzt anstelle der
LED ein 2,5 Volt Relais.

Ich würde mich echt freuen, wenn einer sich das Programm mal
anschauen würde. :hilfe:

Danke und Gruß
Markus

Code: Alles auswählen

' µC: ATtiny13V
' +Ub: 3,00 V
' I: 17 µA im Leerlauf (Nachtbetrieb)
' I: 5 µA bei Tagabschaltung
' Reichweite: 650 m mit Maglite 5D
'
'============================================================
$regfile = "ATtiny13.DAT"
$crystal = 16000                                            'Frequenz des internen Oszillators
$hwstack = 22                                               'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen
Config Adc = Single , Prescaler = Auto
Config Portb = &B00001001                                   'Pinb.0 Und 3 Auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0                                                   'Ausgänge auf Low setzen
Stop Ac                                                     'Analog-Komparator abschalten, um Strom zu sparen
Wdtcr = &B11010011                                          'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset
Enable Interrupts                                           'Interrupts freigeben
Const Schwelle = 50                                         'je größer der Schwellwert, desto unempfindlicher
Const Tagschwelle = 800                                     'Schwellwert für Schlafmodus
Const Zwangsimpuls = 8                                      'LED-Impuls tagsüber alle X Schlafyklen (á ca. 8 Sekunden)
Dim A As Byte                                               'Variablen definieren
Dim Tagzaehler As Byte
Dim Schlafzaehler As Byte
Dim Ldr As Integer                                          '0 = Dunkel, 1023 = Hell
Dim Alt As Integer
Dim Merker As Integer
Do
Reset Watchdog
Powerdown                                                   'prozessor bremsen da sonst lichtänderung nicht erkannt wird
Start Adc                                                   'A/D-Wandler starten
Ldr = Getadc(2)                                             'Helligkeitswert einlesen
Stop Adc                                                    'A/D-Wandler zum Stromsparen wieder stoppen
Merker = Ldr - Alt                                          'Unterschied zwischen letzter und aktueller Messung ermitteln
Alt = Ldr                                                   'letzten LDR-Wert sichern
If Merker > Schwelle Then Gosub Blinken                     'Bei großer Änderung Dunkel->Hell: Blinken
If Ldr > Tagschwelle Then                                   'prüfen ob helligkeit über tagschwelle liegt
If Tagzaehler < 255 Then                                    'int-variable geht nur bis 255
Tagzaehler = Tagzaehler + 1
End If
Else
Tagzaehler = 0                                              'wenn wieder dunkel tagzähler löschen
End If
If Tagzaehler > 200 Then Gosub Pause                        'wenn mehr als x zyklen hell dann schlafmodus
Loop


Blinken:                                                    'Ansteuerung Signale zum Gerät

Portb.3 = 1                                                 'Gerät 1 Ein Signal
Waitms 3000                                                 'für 3000ms
Portb.3 = 0
Waitms 5000                                                 '5000ms Pause
Portb.0 = 1                                                 'Gerät 2 Start Signal
Waitms 3000                                                 ' für 3000ms
Portb.0 = 0

Waitms 4000                                                 ' 20 sec. Pause 
Waitms 4000
Waitms 4000
Waitms 4000
Waitms 4000

Portb.0 = 1                                                 'Gerät 1 Aus Signal
Waitms 3000                                                 'für 1000ms
Portb.0 = 0
Waitms 9000                                                 '9000ms Pause
Portb.3 = 1                                                 'Gerät 2 Aus Signal
Waitms 3000                                                 ' für 3000ms
Portb.3 = 0

Reset Watchdog
Powerdown
Alt = 1023                                                  'Doppelauslösung verhindern
Return
Pause:
Wdtcr = &B11110001                                          'Watchdog auf 8 Sekunden stellen
Reset Watchdog
Powerdown
Wdtcr = &B11010011                                          'Watchdog wieder auf 0,125 Sekunden zurückstellen
Schlafzaehler = Schlafzaehler + 0                           'merken wie oft Schlafmodus durchlaufen wurde
If Schlafzaehler = Zwangsimpuls Then                        'als Funktionskontrolle tagsüber LED auslösen

Reset Watchdog
Powerdown

Schlafzaehler = 0
End If
Return
End
Benutzeravatar
upigors
Geowizard
Beiträge: 2359
Registriert: Mo 24. Sep 2007, 15:52
Wohnort: 39326 Hohenwarsleben
Kontaktdaten:

Re: Fragen zur Software

Beitrag von upigors »

warum soviel waitms? vielleicht sind die begrenzt?
lässt sich das nicht mit, von vorn herein verlängerten wdtcsr befehlen, also diesen watchdog zeilen besser realisieren? hab mal sowas gemacht 10 sek an, aus, 5 min warten, noch mal 10 sek an, aus aber eben nur mit einem port. da hab ich die wdtc(s)r der pause auf max (glaub 8 sekunden) gestellt und die dann x mal durchlaufen.
Bild..Bild..[
stonewood
Geowizard
Beiträge: 1062
Registriert: Mo 3. Apr 2006, 10:15
Kontaktdaten:

Re: Fragen zur Software

Beitrag von stonewood »

Schwalbe64 hat geschrieben:

Code: Alles auswählen

' µC: ATtiny13V

$regfile = "ATtiny13.DAT"
$crystal = 16000                                            'Frequenz des internen Oszillators
Sicher daß der Tiny mit 16 Khz getaktet wird? Wahrscheinlich doch 128 Khz? Was sagen die Fuses? 'waitms' wartet entsprechend viele Takte für eine Sekunde, also 16000 Takte.

-> $crystal=128000 sollte einigermaßen richtige Zeiten ergeben. Wenn das immer noch nicht paßt muß man da noch ein wenig dran drehen, ich hab schon in einigen Programmen was mit 116000 gesehen.

Alternativ: Watchdog-Timer auf 1, 2, 4 bzw. 8 Sekunden schalten und damit warten. Der ist nicht vom internen Takt abhängig (ist immer 128 Khz, egal was die Fuses machen), außerdem verbrät 'waitms' dadurch strom daß der Chip nicht in Powerdown runtergefahren wird.
Schwalbe64
Geocacher
Beiträge: 44
Registriert: Mi 28. Jun 2006, 21:38

Re: Fragen zur Software

Beitrag von Schwalbe64 »

Danke für die Antworten.

Wie angeraten, habe ich die wait xx ms Befehle rausgenommen
und durch die Watchdog-Timer ersetzt.
Die habe ich dann in ein Schleife gesetzt.
Und es funktioniert super.

Mit der Einstellung
Wdtcr = &B11010011
steht der Watchdock auf 0,125 sec,
mit
Wdtcr = &B11110001
steht er auf 8 sec.

Die Werte habe ich mir aus dem Programm geklaut.
Wie aber sehen die Einstellwerte für für 1,2 oder 4 sec
aus? Ich habe mal probiert, aus dem Datenblatt schlau
zu werden, hat leider nicht geklappt :ops:

Nochmals Danke und Gruß
Markus
stonewood
Geowizard
Beiträge: 1062
Registriert: Mo 3. Apr 2006, 10:15
Kontaktdaten:

Re: Fragen zur Software

Beitrag von stonewood »

Schwalbe64 hat geschrieben: Wie aber sehen die Einstellwerte für für 1,2 oder 4 sec
aus? Ich habe mal probiert, aus dem Datenblatt schlau
zu werden, hat leider nicht geklappt :ops:
Schade, auf http://reaktivlicht.pbworks.com/Reaktiv ... +ATtiny13V kann man das nicht abschreiben. ;)

Kapitel 'Watchdog Timer Control Register - WDTCR' schreibt:

Code: Alles auswählen

WDTCR
Bit  7     6     5    4    3   2    1    0
    WDTIF WDTIE WDP3 WDCE WDE WDP2 WDP1 WDP0
Wdtcr = &B11010011
steht der Watchdock auf 0,125 sec,
WDTIF=1
WDTIE=1
WDP3=0
WDCE=1
WDE=0
WDP2=0
WDP1=1
WDP0=1

Nach Tabelle 17: WDP3 ... WDP0 = 0011 = 0,125s
Und da steht: 0110 = 1s
Wdtcr = &B11010110
und so weiter.

Leider hat Atmel die WDPx-Bits auf dem WDTCR etwas durcheinandergebracht, die sind also nicht nur am Ende. Die anderen Bits sind schon so vorbelegt damit das ganze funktioniert, die bleiben also gleich.
Benutzeravatar
upigors
Geowizard
Beiträge: 2359
Registriert: Mo 24. Sep 2007, 15:52
Wohnort: 39326 Hohenwarsleben
Kontaktdaten:

Re: Fragen zur Software

Beitrag von upigors »

huzzel hat geschrieben:
upigors hat geschrieben:error : 202 Line: 1 .EQU not found, probably using functions that ar not supported by the selected chip [wdtcr] , in c:\programme.......und so weiter

diese Fehlermeldung bekomme ich beim kompilen (oder heißt das kompilieren?) mit Bascom
Das Programm läuft fehlerfrei aber ich hätte die trotzdem gern weg....
was ist "EQU" bzw wie kann ich diesen fehler weg bekommen?
gruß Uwe
Ich hatte gerade das gleiche Problem.
Nimm die neuste Bascom-Version, dann ist der Fehler weg. Steht in den einschlägigen Foren beschrieben, ist ein Fehler in den dat-Dateien (der 24er ist nicht der einzige mit dem Fehler)
Tatsächlich, weg ist der Fehler :D
Danke schöööööön
Bild..Bild..[
Benutzeravatar
upigors
Geowizard
Beiträge: 2359
Registriert: Mo 24. Sep 2007, 15:52
Wohnort: 39326 Hohenwarsleben
Kontaktdaten:

Re: Fragen zur Software

Beitrag von upigors »

nun hab ich auch mal ne Frage zum programmieren. Ich benötige ein Programm für den Attiny 13 mit LDR (am liebsten das Standartprogramm - geändert) nur das ich die Eingangssignale zählen möchte und erst nach 3 kurzen Blitzen input das Blinken auslöst. Kann mir jemand unter die Arme greifen?
Danke und Gruß
Uwe
Bild..Bild..[
Antworten