der tiny 14 kann doch gar kein 1Mhz, zumindest nicht ohne externen
Quarz.
intern hat der 9,6(default) oder 4,8 dies kannst du wahlweise noch
teilen lassen (default: 8)
der standardtakt ist also 1,2Mhz.
wird aber nicht dein Problem sen.
Das mit den Kommentaren tut mir leid.
Ich wollte ein einfaches Bascom Programm mit dem ich mit einem Attiny13
od. 15 auf Pin6 (Portb.1) eine Led alle Minuten für 1 Sekunde zum
Leuchten bringe.
Stromversorgung ist 4,2V
Kondensator zwischen Plus u. Minus
Vorwiderstand 100 Ohm mit weisser LED-minus auf Pin6, Plus der Led auf
Versorgungsplus
47k Widerstand von Plus zu Pin 1(Reset)
lg
LS
hallo Leopold Schilling,
ich hatte mit bascom und tiny13 auch schonmal probleme
mit einem portpin als ausgang. irgendwie schein bascom da die
spi-schnittstelle nicht richtig zu verwalten.
versuch das ganze mal mit nem anderen pin. z.b. pb4.
das programm sieht doch sonst gut aus.
gruss klaus
Was ist denn das Problem?
gehts gar nicht, gehts falsch? das Prgrammieren geht?
>Vorwiderstand 100 Ohm mit weisser LED-minus auf Pin6, Plus der Led auf
Versorgungsplus
Das heißt deine LED ist low-Aktiv. sprich sie leuchtet, wenn dein Port
auf Low ( LED = 0) ist und wenn High (LED=1) geht die LED aus.
Der vorwiderstand ist für ne weiße LED, die typischerweise eine
Durchlasspannung von ~3V haben recht hoch, sollte aber passen.
Der Pullup am reset ist auch ok.
edit:
> Waitms 150> Waitms 5000 'Pin>Ich wollte [...] eine Led alle Minuten für 1 Sekunde zum Leuchten bringe.
??? du kennst die umrechnungfaktoren von ms -> s -> min?
Karl heinz Buchegger schrieb:
> Schnellschuss:> Du hast aber schon ausprobiert, ob die LED nicht verpolt eingebaut> wurde. Sowas kann schon mal passieren.
lol.
Das wärs aber.
Leider hat sich der TO ja trotz aufforderung nicht überreden lassen das
Fehlerbild geanuer zu beschreiben.
Hallo!
Ich verwende:
zum Brennen das Mysmartusb MK2,mit MyAvrWorkpad Plus
Bascom zum programmieren
ATtiny13 u. 15
mit Reset-Widerstand
100nF auf Versorgungsspannung
weisse LED mit 100 Ohm Vorwiderstand
auf einer Lochrasterplatine aufgebaut mit IC-Sockel
Spannungsversorgung ist ein LiIon Akku mit 4,1Volt
Die LED funktioniert einwandfrei wenn ich Spannung darauf anlege.
Wenn ich an die Schaltung eine Spannung anlege passiert nichts.
Fusebits hab ich bei Bodlev und Suto u. CKSEL0 gesetzt.
lg
LS
'Bascom Projekt
'von Leopold Schilling
'*************************************
'Alarmatrappe mit Led-Flasher
' mittels Attiny13
' weisse LED mit 100Ohm Vorwiderstand
' Widerstand 47k an Pin1
'*************************************
$regfile = "ATtiny13.dat"
$crystal = 1000000
Config Portb.4 = Output 'Ein Pin wird aus Ausgang konfiguriert
Led Alias Portb.1
Do
Led = 1 'Pin wird auf Low, also 0V geschaltet-LED
leuchtet
Waitms 100 'für 0,1 Sekunden
Led = 0 'LED aus
Waitms 5000 'für 50 Sekunden
Loop
End
---------------------------------------------------------------
Das ist der Programmstand; nicht ganz klar ist für mich die
Cristalanweisung da ich den internen Quarz verwenden will und
unsicher bin ich mir mit den Waitmsanweisungen.
lg
LS
Du definierst PB4 als Ausgang, haengst aber mit der LED an PB1.
Waitms 5000 wartet 5000ms d.h. 5 Sekunden. Wait 50 wartet 50 Sekunden.
"Crystal" bedeutet allgemein: die Taktfrequenz.
MfG Paul
Hallo!
Danke für den Hinweis
Ich hab es vorher mit portb.1 propiert und dann auf portb.4 umgestellt
und
auf diese Änderung vergessen.
Warum muß ich eine $cristalanweisung schreiben wenn ich den internen
Takt
verwenden will???
lg
LS
>>der tiny 14 kann doch gar kein 1 Mhz, zumindest>>nicht ohne externen Quarz. Intern hat der 9,6 ...
Hallo,
wenn der ATtiny intern 9,6 MHz hat, kommt man bei einem Teiler von acht
auf 1,2 MHz.
Wenn ich $crystal= 1000000 setze, versagt der ATtiny dann seinen
Betrieb, oder schwingt er neben der Frequenz?
Daniel W. schrieb:
>>>der tiny 14 kann doch gar kein 1 Mhz, zumindest>>>nicht ohne externen Quarz. Intern hat der 9,6 ...>>> Hallo,>> wenn der ATtiny intern 9,6 MHz hat, kommt man bei einem Teiler von acht> auf 1,2 MHz.>> Wenn ich $crystal= 1000000 setze, versagt der ATtiny dann seinen> Betrieb, oder schwingt er neben der Frequenz?
Schau bitte in die BASCOM Hilfe.
Da ist jeder Befehl ziemlich gut beschrieben.
$CRYSTAL teilt BASCOM mit, mit welcher Frequenz dein AVR arbeitet. Aber:
ES VERÄNDERT NICHT WIE SCHNELL DER AVR TATSÄCHLICH ARBEITET.
Das ist reine Information für den BASCOM Compiler, damit der die
Warteschleifen richtig berechnen kann.
mensch Autor: Leopold Schilling (leopold) ,
was ist denn mit dir los, dass du so oberflächlich bist.
wenn du ein problem hast, musst du es lokalisieren
und dann ändern. ... also erst analysieren und dann friemeln.
du hast ja meinen vorschlag befolgt mal den pb4 zu verwenden.
leider hast du dann wieder vergessen, das programm anzupassen.
wenn du unsicher mit alias bist, dann lass ihn doch weg.
... das heisst dann du vereinfachst dein problem:
also...
config portb.4 = output
und dann später portb.4 = 1
oder port.4 = 0
das mit den waits sollte doch für sich genommen auch einleuchten:
1uS = 10hoch minus 6 sekunden
ist so ähnlich wie mikrogramm
brauchst du halt 1000 mikrogramm um ein gramm zu haben.
danach kommt dann das gramm (milli-kilogramm) oder die millisekunde
.. sind halt 10hoch minus 3 sekunden ... also brauchte 1000 davon
(also von den ms) dann haste 1 sekunde
dann kannste schreiben wait 1 für die sekunde.
und nun nochmal zum crystal:
der bascomgeist rechnet durch die angabe von crystal aus, was er machen
soll, wenn du wait 1 eingibst.
du willst also einen wait 1 (sekunde) ... und der denkt sich aus,
wieviele systemtakte (abhängig vom takt) er nun warten muss , um
ungefähr deinen wünschen nachjzukommen.
.. und deshalb ist die angabe nicht unwichtig,
obwohl zwischen 1000000 und 1200000 nfür deine anwendung erstmal nicht
viel
passiert ... ausser dass deine sekunde um 20% kürzer oder länger wird.
ich könnte ja mal vorschlagen, dass du mal sowas in das prog schreibst:
do
wait 2
portb.4=1
wait 2
portb.4=0
loop
wenn dein crystal falsch ist, kann es ja durchaus einige minuten dauern,
bis sich was tut.. aber es sollte sich schon was tun.
die wartezeit ist aber doch besser investiert als in die ganzen texte
hier.
............ also .............. streng dich an
gruss
>>$CRYSTAL teilt BASCOM mit, mit welcher Frequenz dein AVR arbeitet. Aber:>>ES VERÄNDERT NICHT WIE SCHNELL DER AVR TATSÄCHLICH ARBEITET.
Aha! -Wenn man ...
$crystal = 1000000 statt $crystal = 1200000
... eingibt, würde der AVR also nicht den Dienst 100% quittieren,
sondern
der AVR würde funktionieren, und die Sekunde, die man mit Wait 1 angibt,
wäre bloss um 20% kürzer oder um 20% länger.
Hallo!
Ihr habt natürlich recht.
Ich hab in der Vergangenheit sowas mit einem NE555 gemacht.
Jetzt hab ich mir ein mysmartusb zugelegt, ein Buch gekauft, das
ich leider noch nicht studieren konnte und wollte schnell einen
Attiny zum Blitzen bringen(den Attiny deswegen weil der weniger Strom
verbraucht).
In Zukunft werd ich mir ein ordentliches Bascom-Tool zulegen
(dzt. hab ich eine Demoversion wo z.B. die Hilfe fehlt).
Ich hoffe das ich heute das Projekt positiv beenden kann.
lg und Danke für die Hilfen
LS
Leopold Schilling schrieb:
> In Zukunft werd ich mir ein ordentliches Bascom-Tool zulegen> (dzt. hab ich eine Demoversion wo z.B. die Hilfe fehlt).
Die Hilfe gibts auch online.
Auf genau derselben Web-Site von der du auch die Demo hast.
Und ja. Man kann sich die Hilfe von dort auch downloaden.
.... huh und vor allem ist natürlich die preiswerte vollversion von
bascom auch nicht schlecht.
was ich nicht verschweigen will, ist natürlich, dass die vollversion //
diese hab ich jetzt seit etwa 2 jahren // auch nicht mehr wirklich
mitwächst.
die kostenlosen updates sind prima .. aber bei neueren prozessoren als
vor zwei jahren .. wird es doch immer wieder sehr merkwürdig, was da
passiert.
als neuere prozessoren fällt mir z.b. schon der mega88 im vergleich zum
mega8 ein.
da gibs manchmal sachen, wobei ich an mir zweifele.
im ende lese ich dann den teil des datenblattes , der relevant ist und
programmier die nötigen register in inline assembler.
trotzden... schön dass es bascom gibt
und schön, dass amn sich dann nach der eingeöhnungszeit einfach nicht
mehr wundert .. sondern das problem analysiert und es // man ist ja auch
selber gewachsen // einfach anders lösen kann.
ohne bascom hätte ich wohl garnicht damit angefangen
gruss klaus
ich kann nur nicht nachvollziehen warum man sich von einer
Minderheitensprache wie bascom abhängig macht.
zum einen hast du das Problem, mit neuer Hardware.
Zum anderen hast du ein totales Problem mit anderer Hardware.
(Dazu kommt der Preis)
Wenn du irgendwann mal nen anderen µC verwenden muss, musst du die
ganzen Bascom-Programme umschreiben.
Wenn man es direkt in C schreibt, muss man nur die Hardwareabstraktion
anpassen.
hallo vlad,
lass das doch lieber !
dadurch kommt doch das ganze thema durcheinander.
deine erfahrung sollte dir gezeigt haben, dass jetzt alle auf den zug
aufspringen.
ja ja .. ich meine diese merkwürdigen c-ler.
gruss klaus
ich wollt ihm nur einen Rat geben, der ihm eventuell etwas Geld spart
und zum anderen möglicherweise Arbeit.
außerdem ist es nie verkehrt, wenn man ein wenig c kann.
Bascom ist von recht eingeschränktem Nutzen.
(weiß ja nicht, was er beruflich macht, bzw. vor hat berufllich zu
machen)
Aber ich gebe dir recht! das ist OT. und sollte woanders diskutiert
werden.
Gruß,
Vlad
>> Bascom ist von recht eingeschränktem Nutzen.
Eine reichlich unqualifizierte Aussage.
Denke ich kann C ein wenig und dennoch schätze ich die unkomplizierte
Programmierung mit Bascom. Versteh' wirklich nicht woher die abschätzige
Meinung kommt.
Das wirklich Wesentliche ist nicht das Werkzeug, sondern der mehr oder
weniger intelligente Kopf dahinter. Wenn ich mir manche Posts hier im
Forum anschaue, auch die unter C geschriebenen, kommen mir Zweifel, ob
diese zu Ersteren zählen sind.
Und ansonsten scheint mir Bascom Neuanfängern den Einstieg in diese
Materie sehr zu erleichtern. Daß da manches Merkwürdige rauskommt ist
auch klar und natürlich.
Wie steht's übrigens mit dem Programm des OP's ?
>Fusebits hab ich bei Bodlev und Suto u. CKSEL0 gesetzt.
Da würde mich mal interessieren wie, was gesetzt wurde.
Bodlevel auf 4.3V bei 4.1V Betriebsspannung bedeutet
Dauerreset. Am besten mal Bodlevel auf 2.7V setzen
oder auch mal ganz deaktivieren.
MWS schrieb:
>>> Bascom ist von recht eingeschränktem Nutzen.>> Eine reichlich unqualifizierte Aussage.
Danke.
>> Denke ich kann C ein wenig und dennoch schätze ich die unkomplizierte> Programmierung mit Bascom. Versteh' wirklich nicht woher die abschätzige> Meinung kommt.
Ich meinte außerhalb des AVR-Hobbybastelerbereichs wirds dir nicht viel
bringen. C ist universell. für nahezu jede Hardware/Os gibts c compiler.
Einnicht zu unterschätzendenr Faktor ist auch: Wenn du
Programmierkenntnisse in C im Lebenslauf vorweisen kannst wiegt das mit
sicherheit mehr als Bascom Erfahrungen.
>> Das wirklich Wesentliche ist nicht das Werkzeug, sondern der mehr oder> weniger intelligente Kopf dahinter.
Das Werkzeug spielt eine ganz entscheidene Rolle!
Es ist etwas anderes, ob du ein Produkt in C entwickeslt, was mit
geringem Anpassungsaufwand auf den verschiedensten Harswareplatformen
lauffähig ist, oder ob du für jede Hardwareplatform in einer speziellen
Programmiersprache/Toolchain alles neu schreiben muss.
> Wenn ich mir manche Posts hier im> Forum anschaue, auch die unter C geschriebenen, kommen mir Zweifel, ob> diese zu Ersteren zählen sind.
wer sind erstere? und wer sind letztere?
>> Und ansonsten scheint mir Bascom Neuanfängern den Einstieg in diese> Materie sehr zu erleichtern. Daß da manches Merkwürdige rauskommt ist> auch klar und natürlich.
Was auf jeden Fall sehr gut ist, dass die Geräteinitialisierungen recht
unkomplizirt gekapselt werden. Bei C ist da die ewige
Register-Bit-Schuppserrei. Aber da könnte man sich auch nette
Abstraktions-Header basteln.
>>als neuere prozessoren fällt mir z.b. schon der mega88 im vergleich zum>>mega8 ein. da gibs manchmal sachen, wobei ich an mir zweifele.
woher soll ein anfänger dawissen, ob er was falsch gemacht hat, oder der
Compiler
das pasiert bei c nicht, das ist (nahezu) immer der Programmierer
schuld, da die compiler sehr ausgereift sind. und die AVR header sind
auch sehr gut.
>> Wie steht's übrigens mit dem Programm des OP's ?
Richtig: Zurück zu Thema
Hallo!
Ich hab jetzt alles neu aufgenaut mit Attiny2313.
Hab auf Portd.5 den Vorwiderstand zur LED welche permanent 4,1V Plus
hat.
------------------------------------------------------
'Bascom Projekt
'von Leopold Schilling
'*************************************
'Alarmatrappe mit Led-Flasher
' mittels Attiny2313
' weisse LED mit 67 Ohm Vorwiderstand
' Widerstand 10k an Pin1
'*************************************
$regfile = "ATtiny2313.dat"
$crystal = 3686400
$sim
Config Pind.5 = Output
Do
Portd.5 = 1
Waitms 200
Portd.5 = 0
Waitms 2000
Loop
End
-------------------------------------------------------------
Hab die Fusebits auf Standard und alles bleibt finster.
Ich weis keinen Rat mehr warum???
lg
LS
Das $sim hab ich nur zum Testen gesetzt und wieder auskommentiert.
Die LED hab ich Minus auf Minus permanent und Plus der LED mit
Vorwiderstand auf das Portd.5 (oben hab ich das verwechselt
geschrieben).
lg
LS
Wenn ich simuliere geht der Zeiger zum 1. wait und bleibt dort stehen.
Meine CPU vom PC geht auf 100% Auslastung?
Ich kenn bascom nicht, aber das kommt mir komisch for:
Config Pind.5 = Output
sicher dass es Pind.5 und nicht Portd.5 oder Ddrd.5 heißen muss?
AVR hat für IO-Ports jeweils 3 register:
DDR[A|B|C|D] - hier stellt man ein , ob ausgang oder eingang (standard:
eingang)
PIN[A|B|C|D] - hier ließt man werte von auf eingang konfigurierten Pins
aus
auf Output konfigurierte Pins können meist getoggelt werden, indem man
hier ne 1 an das entsprechende Bit reinschreibt.
PORT[A|B|C|D] - hier schreibt man rein, ob ein auf ausgang konfigurerter
Pin an oder aus sein soll. wenn ein Pin auf eingang steht, schaltet man
hier die Pullups ein, oder aus.
was heißt:
$sim
?
Remarks
Simulation of a WAIT statement can take a long time especially when
memory view windows are opened.
The $SIM compiler directive instructs the compiler to not generate code
for WAITMS and WAIT. This will of course allows faster simulation.
When your application is ready you must remark the $SIM directive or
otherwise the WAIT and WAITMS statements will not work as expected.
When you forget to remove the $SIM option and you try to program a chip
you will receive a warning that $SIM was used.
Ja, nee is klar, ein Destop-Bild mit den Fusebits
sollte es schon sein
nicht das ich Dir nicht glauben würde...
Hast Du aus PinD.5 PortD.5 gemacht ?
Wigbert
Wenn Du Fuses auf Standard hast, dann läuft der 2313 mit Voreinstellung
1 MHz.
Da der Compiler den $crystal = 3686400 Wert für die Vorberechnung der
Wait.. verwendet, ergäbe sich so eine Verzögerung von 0.74 Sek auf High
und 7.4 Sek auf Low.
Deshalb wäre $crystal = 1000000 richtig.
Das Programm scheint bis auf $sim richtig zu sein, $sim erzeugt anderen
Code wie schon richtig erwähnt, ist nur für den Bascom Simulator zu
verwenden. Zum flashen muss ohne $sim kompiliert werden !
Die Verwendung des Config für einzelne Bits eine Ports ist mit:
Config Pind.5 = Output
auch richtig, das steht alles in der Hilfe Datei.
Aus Deiner Beschreibung geht nicht hervor, wie die Led angeschlossen
ist, ein Pin der Led auf Minus, dann Widerstand, Widerstand an PinD.5 ?
Leuchtet die Led wenn der Widerstand statt am Pin direkt an Minus
angeschlossen wird ?
Mit der $sim Anweisung drin sollte die Led halb so hell wie normal
leuchten, aber scheinbar dauernd, da die entstehende Frequenz zu schnell
für`s Auge ist.
>Die Verwendung des Config für einzelne Bits eine Ports ist mit:>Config Pind.5 = Output>auch richtig, das steht alles in der Hilfe Datei.
Bist du sicher? Meiner meinung nach beschreibt er hier das falsche
register.
Versuchs doch einfach mal mit
Config Portd.5 = Output
Hi,
laut Hilfe kann wohl Pin als auch Port mit Output definiert werden.
Da gibt es nur ja nur 2 Möglichkeiten.
Aber es ist ein "krummer" Quarz definiert, und wenn der Takt intern
erzeugt wird, deshalb mal die orginal Fuses, haben wir ein Konflikt
Wigbert
Ja, bin mir sicher, Beschreibung in der Bascom Hilfe:
"You can also set a single port pin with the CONFIG PIN = state,
statement."
und auch als Beispiel in der Hilfe:
1
$framesize = 32
2
Config Print0 = Portb. 0 , Mode = Set
3
Config Pinb. 0 = Output 'set the direction yourself
4
Dim Resp As String * 10
Aber im Zweifel:
DDRD = &H20
oder
DDRD = &B00100000
Schaltung ist ok.
Ist die Polung der Led richtig ? Leuchtet die Led wenn der Widerstand
statt an Pin 9 an Plus gelegt wird ?
Wenn Du bei den Angaben für die Fuses keinen Fehler reingehaut hast:
> Low High Extended Lockbits> 01100010 11011111 11111111 11111111
dann läuft Dein 2313 mit internem R/C Oszillator 4MHz, da die DIV8 Fuse
aktiv ist, hast Du eine tatsächliche Taktfrequenz von 500kHz, 3,68MHz
wäre also ganz falsch.
http://www.engbedded.com/fusecalc/
Das ist somit nicht mehr der Auslieferungszustand, denn der wäre 1MHz.
Du musst dann:
$crystal = 500000
in den Quelltext schreiben.
Du kannst das Hex-File posten, dann schau' ich Dir auf Assemblerebene
an, ob's wenigsten SW-seitig passt.
Hallo
Hab das Flasher.hex File angehängt!
Wenn ich plus zum Vorwiderstand halte leuchtet die LED!
Hab jetzt schon mit 1x Attiny13 2x Attiny15L und 3xAttiny2313 probiert!
lg
LS
meine Geduld ist schon ziemlich am Ende
Hallo,
um das Bascom-Programm zu kompilieren muss man so vorgehen:
1) Kompilieren (F7)
2) Programm auf den Chip schreiben (F4)
Bist du sicher, dass dein Programm korrekt auf den Chip geschrieben
wird?
Hallo
Ich verwende Bascom-AVR Demo
Prüfe Syntax
Compiliere(F7)
Program chip(F4)
dann gehen 2 Fenster auf in denen der Balken läuft während des Brennens
das wars
lg
LS
Als Programmieradapter verwende ich mysmartusb MK2
Ich kann die Fusebits auslesen
Es wird der Progger und der Attiny erkannt
>Wenn ich plus zum Vorwiderstand halte leuchtet die LED!
Wenn Du das getan hast, als der Kontroller noch mit dem
Vorwiderstand der LED verbunden war, dann hast Du die
Betriebsspannung auf einen AUSGANGS-PIN gegeben.
Das vertraegt der Kollege Kontroller nicht.
Aendere mal die Zeile:
PortD = &B0010000
in
PortD = &B11111111
und schliesse die LED an einen anderen Ausgang an, um zu testen, ob
der Portd.4 von und gegangen ist.
MfG Paul
Um dem Elend endlich mal auf die Spur zu kommen
versuch die LED doch einfach nur mal einzuschalten.
Am besten gleich alle Portd Pins schalten:
$regfile = "ATtiny2313.dat"
'$crystal = 1000000
$crystal = 500000
$hwstack = 32
$swstack = 10
$framesize = 40
Config PortD = Output
Do
DDRD = &B11111111 'Vorsichtshalber. Später evtl. wieder entfernen
PortD = &B11111111
Loop
End
So, leuchtet das Ding jetzt endlich?
Leopold,
Dein Hexfile ist unbrauchbar, Grund ist daß Du in Bascom Einstellungen
geändert hast und zwar so wie sie nicht gehören.
Geh mal unter "Optionen -> Compiler -> Output" und nimm den Haken aus
"Swap Words" raus.
Denn damit werden Lower Byte und Higher Byte eines Words im Hexfile
vertauscht, damit kann der Atmel dann nix mehr anfangen.
Probier auch anhängendes Hexfile aus, ist auf 500kHz konfiguriert und
sollte laufen.
Hier noch der korrigierte Quellcode basierend auf Deinen Einstellungen
der Fuses:
1
'Bascom Projekt
2
'von Leopold Schilling
3
'*************************************
4
'Alarmatrappe mit Led-Flasher
5
' mittels Attiny2313
6
' weisse LED mit 67 Ohm Vorwiderstand
7
' Widerstand 10k an Pin1
8
'*************************************
9
10
11
$regfile = "ATtiny2313.dat"
12
$crystal = 500000
13
14
Config Pind.5 = Output
15
16
Do
17
Portd.5 = 1
18
Waitms 200
19
Portd.5 = 0
20
Waitms 2000
21
Loop
22
End
Und aufpassen bei den Pin-Zuweisungen und den Anschlüssen des Atmel,
Portpins beginnen immer bei 0 und enden bei 7, wobei PinX.0 der erste
und PinX.7 der achte Anschluss ist. Ein Beinchen daneben und Du kannst
lange warten, bis etwas passiert. :D
Hallo!
Super das mit dem Swap Word war sichtlich die Ursache!
Wenn ich jetzt die waitms von 2000 auf 50000 umstelle schreibt er mir
Checksummenfehler!
Wie krieg ich das in Griff.
Ich möchte 1x aufblitzen und dann ca. 1 Minute bis zum nächsten Blitz
warten!
lg
LS
Na, dann ist's ja gut.
Checksummenfehler ? Schau mal auf welche Zeile verwiesen wird, ob der
Wert 50000 die Ursache ist. Bis 65535 sollte gehen.
Bei mir kompiliert das ohne Probleme.
Ansonsten nimm eine For/Next Schleife mit einem Waitms 1000 drin.
Hallo!
Hab ein Erase gemacht und neu gebrannt;
geht jetzt mit waitms 52000; die Wartezeit sind ca. 70 Sekunden!
Das ist ok.
Freu mich das es funzt!
Schönen Abend und gute Nacht!
Mir ist ein Stein vom Herzen gefallen!
lg
LS
>Wobei 52000mS eigentlich 52 Sek sein sollten...
jep, das heißt das die Compilerkonstante $crystal nicht mit der
tatsächlichen Taktrate übereinstimmt.
sie ist rnd ein viertel niedriger als der tatsächliche Takt.
Hallo!
Ich hätte noch eine kleine Zusatzfrage.
Wieviel Stromverbrauch habe ich mit dem Attiny2313 und der weissen LED;
bzw. wielange wird ein LiIonenakku mit 800mA reichen?
lg
LS
Hallo Leopold,
>>Wieviel Stromverbrauch habe ich mit dem At ...
also der ATtiny13 (siehe mein Posting vom: 16.07.2009 23:14)
hat folgenden Stromverbrauch:
Stromverbrauch bei 5V:
2,6 mA wenn LED aus
3,4 mA wenn LED ein
Dein Akku mit 800mAh würde (bei einem Durchschnitts-Strom von 3mA) 11
Tage und 2 Stunden halten.
wie kommst du auf 0,8mA für die LED?
>2,6 mA wenn LED aus
Das ganze geht viel sparsamer (ein paar µA)
das Haupt Programm besteht nur aus:
Watchdog auf maximale Zeit (8sec) initialisieren und Interupt mode
configurieren. (Datenblatt abschnitt 8.4)
leere endlosschleife,
Die Watchdog-ISR:
die mitzählt und alle 7-8 mal eine sec. lang den Pin anschalten
am ende der Routine in den power-down modus gehen
Um das ganze noch sparsamer zu machen, den internen Takt auf 128 kHz
fusen (und den CPU-Prescaler in der Main am anfang auf 256 stellen -
weiß nicht ob das wirklich Strom spart).
Vorsicht ich bin mir nicht sicher, ob man den mit 128kHz noch per isp
programmieren kann.
Edit :
Den Strom im Power-Down kannst du fast vernachlässigen
wichtig ist also nur noch der "An"-strom
Ne normale LED braucht ca 20mA, der AVR mit 128kHz 0,2 + WDT.
macht großzügig 21mA
großzügig 25, da er ja zwischendurch für ein paar Takte aufwacht und
auch im Schlaf ein wenig verbraucht
25 * 1/60 Dutycycle = 0,42 mA
-> 800/0,42 -> 1900h = 79 Tage
Wenn ich Fehler gemacht habe korrigiert mich bitte
hab das ganze mal aufgebaut.
im anhang der Code.
Mein Messgerät misst 5µA in der Zeit wo die LED aus ist.
Wobei das das unterste Ende der kleinsten Scala (2000µA) meines 5€
Baumarktmessgerätes ist.
Betrieben war er mit 5V, die FUses sind auf 4,8Mhz
gestellt intern der höchste Prescaler eingestellt.
Macht eine resultierende Frequenz von 18,750kHz -> das sollte im Tool
als CPU-Frequenz eingestellt werden, damit die 1000ms Wartezeit
funktionieren.
Der Watchdogtimerfrequenz ist spannungsabhänig.
Das heißt bei geringeren Spannungen muss man gegebeennfalls ein wenig
experimientieren bis man eine Blinkfrequenz erreicht hat, die einem
gefällt.
Ich habe eine frage
Ich habe mit dem Attiny13 ein lauflicht gebaut möchte aber mit einen
Porti die Takt erhöhen wie geht das
Das Ganze unter Bascom
Ich bitte um Antwort
Was ist Porti am Attiny13 ?
Ich kenne nur portb.0 bis portb.5
Was ist die Takt erhöhen? Schneller durchlauf,mehr Pause ,etc.
Nur bei konkr.Fragen kann man auch konkret antworten.
Wie viele einzelne nacheinander leuchtente LEDs sollen angeschlossen
werden?
4 oder 8 oder 10 oder 12Leds.
Eberhard B. schrieb:> Ich habe eine frage>> Ich habe mit dem Attiny13 ein lauflicht gebaut möchte aber mit einen> Porti die Takt erhöhen wie geht das>> Das Ganze unter Bascom>> Ich bitte um Antwort
Dann fang einen neunen Thread an und fladere nicht einen 6 Jahre alten.
Und ansonsten: RTFM
steht alles in der Hilfe vom Bascom
Grüße
MiWi