Forum: Mikrocontroller und Digitale Elektronik Suche Programmierung Attiny12 in Berlin


von bernte_one (Gast)


Lesenswert?

ein fröhliches Hallo an Alle,

ich habe seit einiger Zeit versucht einen Attiny12 zu programmieren aber 
bei mir scheitert es schon daran das Atmel Evaluations Board von Pollin 
per USB Programmer mit dem PC zu verbinden.

Daher die Frage: wer in Berlin oder Umland kann mir den Attiny (eine 
oder mehrere) gegen eine kleine Aufwandsentschädigung programmieren bzw. 
mir beibringen wie ich das selber hinbekomme (was mir am leibsten 
wäre,Hardware ist vorhanden)

der Hexcode sowie der assembler Code ist vorhanden allerdings nur in 
einem pdf Dokument - müsste daher wohl einmalig abgetippt werden.

Bitte um Hilfe, ich komm alleine nicht weiter.

von Frank L. (hermastersvoice)


Lesenswert?

dann fang am Besten schonmal mit abtippen an. Wenn du ein brennbares 
File hast kannst du mal bei Segor nachfragen, Die hatten mal einen 
Brennservice angeboten.

bye

Frank

von Tip (Gast)


Lesenswert?

bernte_one schrieb:
> der Hexcode sowie der assembler Code ist vorhanden allerdings nur in
> einem pdf Dokument - müsste daher wohl einmalig abgetippt werden.

Hast du schon mal "copy & paste" probiert. Das sollte deutlich weniger 
fehlerträchtig sein.

von bernte_one (Gast)


Lesenswert?

Hallo,

bitte nur schreiben wenn ihr mir helfen könnt, wie gesagt es scheitert 
schon an der Verbindung der Hardware. Und ja ich bin ein Noob auf dem 
Gebiet. Also wer kann für mich programmieren (code auf chip laden) oder 
mir zeigen wie es mit meiner Hardware geht.

Danke bisher für den Tip mit Segor aber ich bezahle lieber einen 
Studenten der es auch braucht. Außerdem kann ich kein hexfile oder 
Assembler code vorlegen sonder nur das besagte pdf mit text.

von ich (Gast)


Lesenswert?

besagter Student wird das aber für dich nur gegen großen Aufpreis 
abtippen

von tt2t (Gast)


Lesenswert?

> dann fang am Besten schonmal mit abtippen an

1. OCR
2. aus vielen PDF-Doukenten kann man den Text auch extrahieren. z.B. mit 
dem kostenlosen Foxit Reader www.foxitsoftware.com, läuft auch ohne 
Installation

von Thomas Kiss (Gast)


Lesenswert?

Also ich habe das Pollin Board schon lange im Einsatz

http://www.pollin.de/shop/dt/NTI5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_V2_0_1_Fertigmodul.html

Ich denke Dein Problem ist, was Du nicht lösen kannst, die USB-Serielle 
Verbindung. Ich habe keinen einzigen Adapter gefunden, was funzt. Ein PC 
mit echte serielle Schnittstelle oder Notebook mit sowas :

http://www.google.de/products/catalog?hl=de&biw=1366&bih=578&q=ex-1370-2&bav=on.2,or.&um=1&ie=UTF-8&cid=11225835654627396093&sa=X&ei=Hou2TY0YjPiyBubmkcoN&ved=0CEAQ8wIwAg#

Das Ding ist nicht ganz billig aber es geht ohne Probleme ( wird eine 
Com5) im System angezeigt. In dieser Kombination habe ich schon zig AVRs 
geflasht ohne Probleme !!!

von tt2t (Gast)


Lesenswert?

oder gleich einen USB-Proggi wie den hier 
http://www.mikrocontroller.net/articles/AVR-ISP-Stick

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> aber ich bezahle lieber einen Studenten der es auch braucht

> Außerdem kann ich kein hexfile oder
> Assembler code vorlegen sonder nur das besagte pdf mit text.

Aufgabe des Studenten wäre es also,
1. den Assemblercode aus dem pdf Dokument abzutippen
2. den Assemlercode in einem (von dir oder dem Studenten zu liefernden) 
Tiny12 hinein zu bringen

Sehe ich das richtig?

von Thomas Kiss (Gast)


Lesenswert?

Fuse Einstellungen bekannt ?

von ich (Gast)


Lesenswert?

@tt2t

OCR macht die gleiche Arbeit wie abtippen, weil man alles nochmal ganz 
genau korrekturlesen müsste....

ein falsches zeichen macht ev. schon dein programm nutzlos

von Kopfschüttel (Gast)


Lesenswert?

Thomas Kiss schrieb:
> Ich denke Dein Problem ist, was Du nicht lösen kannst, die USB-Serielle
> Verbindung. Ich habe keinen einzigen Adapter gefunden, was funzt.

Da das Pollin Board eine ISP Anschluß hat, wird's ja wohl mit jedem 
ISP-Programmer gehen, z.B.
http://shop.myavr.de/Programmer/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006

> Das Ding ist nicht ganz billig
Wie wahr

von Suchender (Gast)


Lesenswert?

Zeig doch mal das PDF mit dem Programm. Es ist doch ziemlich sicher 
davon auszugehen, dass es auch als Source oder Hex im Internet zu finden 
sein wird, denn eigentlich ist doch schon fast alles erfunden, was man 
auf dem AVR programmieren kann. ;-) Umso mehr, da Du das Programm ja 
auch irgendwoher bekommen und nicht selbst geschrieben hast.

von Thomas Kiss (Gast)


Lesenswert?

Kopfschüttel:
Habe Glück gehabt, weil meine Fa. die Karte mit dem Laptot gestellt 
hat..LoL

von tt2t (Gast)


Lesenswert?

> OCR macht die gleiche Arbeit wie abtippen, weil man alles nochmal ganz
> genau korrekturlesen müsste....

Auch beim Abtippen muss man Korrektur lesen. Die Fehlerhäufigkeit bei 
OCR ist heute schon verdammt niedrig, gerade bei PDFs (sofern es keine 
eingescannten sind). Extrahieren aus PDF mit Foxt Reader ist aber noch 
besser (wenn das Dokument geeignet ist).

von bernte_one (Gast)


Lesenswert?

..also nchmal Stück für Stück.

ATtiny12 liefer ich, die Zeichen die abzutippen wären umfassen nicht 
ganz eine A4 Seite (glaub ich, war jedenfalls nicht viel) das wäre eine 
einmalige Arbeit den Assembler code kann man ja speichern genauso wie 
das hex file (hab da nicht so die Ahnung aber die Zeiche Tippe ich 
selber in 20min ab)

ich selbst bin im besitz eine usb isp Programmier Adapters (ich glaube 
er entsprucht den Protokollen Stk500 oder 200)
hab das Teil auch schon mit dem Board verbunden PC USB - USb ISp 
Adapter- Programmier Bord (isp Anschluss)
Treiber für den Adapter sind installiert

Nun das Problem ich starte AVR Studio 4 und keine Ahnung wie es 
weitergeht
(an dieser Stelle steckt der ATtiny bereits an der dafür vorgesehenen 
Stelle auf dem Bord)

Hab mir auch schon ganz viel Tutorial durchgelesen aber ich blick da 
einfach nicht durch (bei den ganze Einstellungen, Häckchen, Taktraten 
usw.)

Also evtl gibt es ja jmd der mir zeigt wie ich aus dem Text im pdf ein 
Assembler code erzeuge der für AVR studio brauchbar ist. Sowie mir 
erklärt wie ich alle Einstellungen vornehme um den ATtiny12 bespielen zu 
können.
So das ich das am Ende reproduzieren kann das wäre schön.

Alterntiv: wer kann das mal eben für ein paar Euro machen

von Falk B. (falk)


Lesenswert?

@  bernte_one (Gast)

>Nun das Problem ich starte AVR Studio 4 und keine Ahnung wie es
>weitergeht

Neues Projekt anlegen, Menu Poject -> Project Wizard
ASM Projekt, Namen vergeben, weiter, ATtiny1 als Typ auswählen.
Programm in das Sourcecodefenster kopieren, assemblieren mit F7.
Danach programmieren, Menu Tools -> Programm AVR -> Connect, Board 
auswählen, connect

MFG
Falk

von Thomas Kiss (Gast)


Lesenswert?

Ich glaube er braucht jemanden Vorort...also eine kleine Schulung 
machen..

von Mathias U. (munter)


Lesenswert?

@bernte_one:

Die Zeit, die Du bisher hier mit Deinen Postings "vertrödelt" hast, 
hättest Du den Assembler-Code schon tausend mal abgeschrieben....und 
wenn es nur in eine (oder mehrere, je nach Code) einfache *.txt-Dateien 
gewesen wäre...

von bernte_one (Gast)


Lesenswert?

ok,

danke erstmal für die Hilfe, ich werd es einfach nochmal probieren.

btw. wer wohnt in Berlin und kann mir für 40 Euro zeigen wie es geht, 
falls ich doch nicht weiterkomme.

von Thomas Kiss (Gast)


Lesenswert?

40 € die Stunde ? der Tag ?

von bernte_one (Gast)


Lesenswert?

kommt drauf an wie lange er / sie dafür braucht
wenn ich davon ausgehe das ich recht aufnahmefähig bin
und das einfügen des codes in eine txt datei von mir übernommen wird der 
Schwerpunkt also in AVR Studio und der Datenüberspielung (incl 
anschließen der Hardware) liegt denke ich ist das fair uns ollte schnell 
zu erledigen sein

von Paul Baumann (Gast)


Lesenswert?

Ich sehe schon Millionen von Menschen auf Deine Haustür zumarschieren...
;-)
MfG Paul

von tom (Gast)


Lesenswert?

hi bernd,

könnte dir da evtl. in berlin unkompliziert weiterhelfen, schicke mir 
mal das pdf an tom at tktronic punkt de und ich sehe was sich da machen 
lässt.
sollte nur einen zumutbaren zeitlichen rahmen nicht übersteigen.

gruss, tom.

von Ben _. (burning_silicon)


Lesenswert?

ich bin in berlin, in welchem stadtteil bist du denn?

von bernte_one (Gast)


Lesenswert?

Adlershof

ja ja sagt jetzt bitte nicht "ich hätte ja auch einen Studenten bei der 
Uni anquatschen können" - denn ich war kurz davor

ich zieh den Code erstmal in ein txt Dokument dann könnt ihr ihn 
einsehen dann mal schauen wer immer noch Lust hat mir zu zeigen wie es 
geht.

Kann ja meine Hardware nochmal fotografieren damit man sich schon mal 
vorher drauf einstellen kann.

von bernte_one (Gast)


Lesenswert?

man könnte sich auch an einem neutralen Ort treffen - Netbook wäre 
vorhanden müsste mal schauen dass ich AVR Studio noch draufpacke

von Ben _. (burning_silicon)


Lesenswert?

ich bin aus köpenick. um wieviele ICs geht es dir denn?

meine, ich bin kein AVR lehrer oder so, nur AVR-verfechter... :) deine 
hardware ist wahrscheinlich nicht allzu interessant für mich, genau so 
wie das programm was du in den µC haben willst.

im wesentlichen könnte ich dir nur dabei helfen ein compilierbares oder 
assemblierbares bzw. die .hex-datei in den AVR zu flashen und was du 
dann damit machst ist dein ding...

von tom (Gast)


Lesenswert?

..und vielleicht gleich noch den krams auf attiny13a portieren 
(pinkompatibel+fehlerbereinigt), mit dem ollen attiny12 würde ich mich 
nicht mehr rumärgern, die externe rc-beschaltung für den oszillator 
kannste dann auch sparen. die applic wird ja nicht allzuviel tun, 
schätze ich und dann kann man das mal fix in C machen...

also bernte - schaff mal dein pdf bzw. den asm sourcecode ran.

von bernte_one (Gast)


Lesenswert?

@ben

würde dein angebot annehmen, will ja auch keinen untterricht würde mir 
schon reichen wenn ich dir mal über die schulter schauen kann, so dass 
ich die schritte später selber nachvollziehen kann.

wäre schon gut wenn ich später auch andere programme auf den attiny 
bekomme
will den code ja nicht selber schreiben, evtl nur leicht abwandeln.
Hauptsächliche geht es mir ja nur um den Ablauf bzw. die richtigegen 
Einstellungen. Kann ja auch sei dass jmd der Ahnung hat gleich sagt 
meine Hardware ist nutzlos.

wie bereits vom Vorredner vorgeschlagen könnte man wohl gleich einen 
ATtiny 13 verwenden.

von bernte_one (Gast)


Lesenswert?

;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT1
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :15.12.2003
;* Version :2.1
;* Autor :böses tier
;* Hardware :für BT1 Layot-Version 1.1
;* :PB0 an R220->LF357/6,
;* :PB1 an Poti,
;* :PB3 an R1K->BC547->R22->CNY17->IRF9640,
;* :PB2 an R1K->BC547->SPK,
;* :PB4 an R1K2->LED
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
.equ ACSR,0x08
.equ PINB,0x16
.equ DDRB,0x17
.equ PORTB,0x18
;-----------------------------------------------------------------------
.equ PulsDauer,4 ;1..20 ca 10..200 yS
.equ HalbZyklus,80 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
.equ Delay1,5 ;Sample-Delay 1 nach Pulsende 3-15
.equ Delay2,8 ;Sample-Delay 2 nach Delay 1
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init
; bei ATiny12 kein SRAM und kein STACK initalisieren
main: nop
cbi DDRB,0 ; PB0 IN OPV comperator
cpi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
sbi DDRB,4 ; PB4 OUT LED
;-----------------------------------------------------------------------
mainloop: wdr
ldi r16,HalbZyklus ;wait ca. 800 yS
wait801: rcall wait10
subi r16,1
brcc wait801 ;Warteschleife
ldi r16,0b0001000 ;PB3=1
out PORTB,r16 ;IMPULS ON
wdr
ldi r16,PulsDauer ;wait 150 yS IMPULS
wait150: rcall wait10
subi r16,1 ;Warteschleife
brcc wait150
ldi r16,0b0000000 ;PB3=0
out PORTB,r16 ;IMPULS OFF
wdr
ldi r16,Delay1 ; 1. sampledelay
wait81: rcall wait10
subi r16,1
brcc wait81 ;Warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0000100 ;PB2=1 Speakerimpuls Ton1
out PORTB,r16
ldi r16,Delay2 ; 2. sampledelay
wait82: rcall wait10
subi r16,1
brcc wait82 ;Warteschleife
in r24,ACSR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0010100
;breiter Sekundärimpuls PB2=1 PB4=1 LED=ON und Ton2
out PORTB,r16
wdr
ldi r16,HalbZyklus ; HI für LED und SPK
wait802: rcall wait10
subi r16,1
brcc wait802
ldi r16,0b0000000 ;alle Lichtel aus ;-) PB2-4
out PORTB,r16 ;LO für LED und SPK
skip: rjmp mainloop
;----------------------------------------------------------------------- 
--
wait10: ldi r25,2 ;warte 10 yS bei 1,2MHz
w10: subi r25,1
brcc w10
ret
;----------------------------------------------------------------------- 
--

von bernte_one (Gast)


Lesenswert?

Hexdump
:1000000005C0189518951895189518950000B8987A
:100010007130BA9ABB9ABC9AA89500E526D00150D7
:10002000E8F708E008BBA89504E01FD00150E8F706
:1000300000E008BBA89505E018D00150E8F788B1AA
:1000400000E085FF04E008BB08E00FD00150E8F7AE
:1000500088B100E085FF04E108BBA89500E505D064
:100060000150E8F700E008BBD7CF92E09150F0F7DD
:020070000895F1
:00000001FF

von bernte_one (Gast)


Lesenswert?

anderes modell

;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT2
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :29.0.2004
;* Version :1.3
;* Autor :böses tier
;* Hardware :für BT2 Layot-Version 1.9
;* :PB0 an Poti,
;* :PB1 an R220->LF357/6,
;* :PB3 an IRF9640,
;* :PB2 an SPK,
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
.equ ACSR,0x08
.equ PINB,0x16
.equ DDRB,0x17
.equ PORTB,0x18
.equ WDTCR,0x21
;-----------------------------------------------------------------------
.equ PulsDauer,10 ;1..20 ca 10..200 yS
.equ Zyklus,200 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
.equ Delay,3 ;SampleDelay
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init bei ATiny12 kein SRAM und STACK
main: nop
ldi R24,0x1F
out WDTCR,R24
ldi R24,0x17
out WDTCR,R24
; ------ watchdog is disable ----------------------
cbi DDRB,0 ; PB0 IN OPV comperator
cbi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
;----------------------------------------------------------------------- 
-
ldi r17,0b001000
ldi r16,0b001100
mainloop: nop
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Zyklus
waitZyklus: rcall wait10
subi r18,1
brcc waitZyklus ;warteschleife
;---------------------------------------------------
eor r16,r17
out PORTB,r16 ;IMPULS ON
ldi r18,PulsDauer ;wait 150 yS IMPULS
waitPuls: rcall wait10
subi r18,1 ;warteschleife
brcc waitPuls
eor r16,r17
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Delay ;wait ca 20-40 yS
sampleDelay: rcall wait10
subi r18,1
brcc sampleDelay ;warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0001000 ;alles aus oder ...
sbrc r24,5 ;wenn schwellwert skip next
ldi r16,0b0001100 ;PB2=1 Speakerimpulse Ton1
skip: rjmp mainloop
;---------------------------------------------------------------------
wait10: ldi r25,1 ;warte 10 yS
w10: subi r25,1
brcc w10
ret
;---------------------------------------------------------------------




Hexdump
:1000000005C01895189518951895189500008FE15A
:1000100081BD87E181BDB898B998BA9ABB9ABC9A5C
:1000200040E118E00CE0000008BB28EC16D021509D
:10003000E8F7012708BB2AE010D02150E8F7012794
:1000400008BB23E00AD02150E8F7042708BB88B199
:10005000042708E085FD0CE0E6CF91E0915008957B
:00000001FF

von Hannes L. (hannes)


Lesenswert?

bernte_one schrieb:
> main: nop
> cbi DDRB,0 ; PB0 IN OPV comperator
> cpi DDRB,1 ; PB1 IN poti comperator
> sbi DDRB,2 ; PB2 OUT SPEAKER
> sbi DDRB,3 ; PB3 OUT Endstufe
> sbi DDRB,4 ; PB4 OUT LED

Das CPI ist bestimmt ein Tippfehler... ;-)
Denn CPI vergleicht ein Register (r16..r31) mit einer Konstante, da ist 
nix mit Datenrichtung...

Meinst Du nicht, dass es einfacher wird, eine konkrete Aufgabenstellung 
zu machen, die besagt, was genau das Programm machen soll und es dann 
für einen Tiny13 neu zu schreiben? Dem vorhandenen Quältext kann ich 
jedenfalls nicht allzuviel abgewinnen.

...

von Suchender (Gast)


Lesenswert?

Er ist ein Schatzsucher mit Metalldetektor. Einfach mal nach "Autor 
:böses tier" googlen.

von tom (Gast)


Lesenswert?

bernte,

programme assemblieren nach min. änderungen wg. avr-assembler statt gnu.
kauf dir attiny13a im dip8 bei segor oder wo immer auch.

mach mal selbst zwei projekte im avr-studio und versuche erfolgreich zu 
übersetzen.

die hex-files sehen evtl. leicht unterschiedlich aus zum original 
hex-dump, sollte aber kein problem sein.

dann ic in den sockel deines pollin boards, spannungsversorgung 
anschliessen, serielles kabel zw. PC und das eva-board (1:1 Kabel, kein 
nullmodem glaube ich), dort den zum ISP führenden anschluss verwenden.

ponyprog installieren und damit versuchen dich zu connecten.
du MUSST eine vollwertige serielle schnittstelle am PC haben, billig 
USBzuRS232-Wandler zeugs geht nicht, da der konverter auf dem eval-board 
modem-steuersignale benutzt.

wenn der connect geht musst du die fuses des tiny13a auf 9,6MHz 
oszillator stellen und Clockdiv/8 aktivieren. so läuft dein programm 
dann wie der tiny12 mit 1,2Mhz dann.

viel erfolg, und wenn gar nix geht evtl. nexte woche Do abend bei mir in 
Berlin, email siehe mein posting.

tom

>>>> hier mal die appliks:
;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT2
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :29.0.2004
;* Version :1.3
;* Autor :böses tier
;* Hardware :für BT2 Layot-Version 1.9
;* :PB0 an Poti,
;* :PB1 an R220->LF357/6,
;* :PB3 an IRF9640,
;* :PB2 an SPK,
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
#define  ACSR  0x08
#define  PINB  0x16
#define  DDRB  0x17
#define  PORTB  0x18
#define  WDTCR  0x21
;-----------------------------------------------------------------------
#define  PulsDauer  10 ;1..20 ca 10..200 yS
#define  Zyklus    200 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
#define  Delay    3 ;SampleDelay
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init bei ATiny12 kein SRAM und STACK
main: nop
ldi R24,0x1F
out WDTCR,R24
ldi R24,0x17
out WDTCR,R24
; ------ watchdog is disable ----------------------
cbi DDRB,0 ; PB0 IN OPV comperator
cbi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
;----------------------------------------------------------------------- 
-
ldi r17,0b001000
ldi r16,0b001100
mainloop: nop
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Zyklus
waitZyklus: rcall wait10
subi r18,1
brcc waitZyklus ;warteschleife
;---------------------------------------------------
eor r16,r17
out PORTB,r16 ;IMPULS ON
ldi r18,PulsDauer ;wait 150 yS IMPULS
waitPuls: rcall wait10
subi r18,1 ;warteschleife
brcc waitPuls
eor r16,r17
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Delay ;wait ca 20-40 yS
sampleDelay: rcall wait10
subi r18,1
brcc sampleDelay ;warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0001000 ;alles aus oder ...
sbrc r24,5 ;wenn schwellwert skip next
ldi r16,0b0001100 ;PB2=1 Speakerimpulse Ton1
skip: rjmp mainloop
;---------------------------------------------------------------------
wait10: ldi r25,1 ;warte 10 yS
w10: subi r25,1
brcc w10
ret
;---------------------------------------------------------------------


>>>>und die andere:
;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT1
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :15.12.2003
;* Version :2.1
;* Autor :böses tier
;* Hardware :für BT1 Layot-Version 1.1
;* :PB0 an R220->LF357/6,
;* :PB1 an Poti,
;* :PB3 an R1K->BC547->R22->CNY17->IRF9640,
;* :PB2 an R1K->BC547->SPK,
;* :PB4 an R1K2->LED
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
#define ACSR   0x08
#define PINB  0x16
#define DDRB  0x17
#define PORTB  0x18
;-----------------------------------------------------------------------
#define PulsDauer  4 ;1..20 ca 10..200 yS
#define HalbZyklus  80 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
#define Delay1  5 ;Sample-Delay 1 nach Pulsende 3-15
#define Delay2  8 ;Sample-Delay 2 nach Delay 1
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init
; bei ATiny12 kein SRAM und kein STACK initalisieren
main: nop
cbi DDRB,0 ; PB0 IN OPV comperator
cbi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
sbi DDRB,4 ; PB4 OUT LED
;-----------------------------------------------------------------------
mainloop: wdr
ldi r16,HalbZyklus ;wait ca. 800 yS
wait801: rcall wait10
subi r16,1
brcc wait801 ;Warteschleife
ldi r16,0b0001000 ;PB3=1
out PORTB,r16 ;IMPULS ON
wdr
ldi r16,PulsDauer ;wait 150 yS IMPULS
wait150: rcall wait10
subi r16,1 ;Warteschleife
brcc wait150
ldi r16,0b0000000 ;PB3=0
out PORTB,r16 ;IMPULS OFF
wdr
ldi r16,Delay1 ; 1. sampledelay
wait81: rcall wait10
subi r16,1
brcc wait81 ;Warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0000100 ;PB2=1 Speakerimpuls Ton1
out PORTB,r16
ldi r16,Delay2 ; 2. sampledelay
wait82: rcall wait10
subi r16,1
brcc wait82 ;Warteschleife
in r24,ACSR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0010100
;breiter Sekundärimpuls PB2=1 PB4=1 LED=ON und Ton2
out PORTB,r16
wdr
ldi r16,HalbZyklus ; HI für LED und SPK
wait802: rcall wait10
subi r16,1
brcc wait802
ldi r16,0b0000000 ;alle Lichtel aus ;-) PB2-4
out PORTB,r16 ;LO für LED und SPK
skip: rjmp mainloop
;----------------------------------------------------------------------- 
--
wait10: ldi r25,2 ;warte 10 yS bei 1,2MHz
w10: subi r25,1
brcc w10
ret
;----------------------------------------------------------------------- 
--

von bernte_one (Gast)


Lesenswert?

danke für die tolle unterstützung bis hierher

werd am wochenende mal ne nachtschicht einlegen

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.