AVR-Assemblercode von Atmega88 auf -8 umstricken

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 3 2024  15:47:09      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
AVR-Assemblercode von Atmega88 auf -8 umstricken

    







BID = 793623

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen
 

  


Hi!
Ich möchte mir ein Elektorprojekt nachbauen.
Dafür wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier.
Ich habe schon etwas über die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch.
http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf
Z.B. meckert der Compiler über "out TCCR0A,r16"
Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc.
Aber wie schreibe ich das um?
Geht das überhaupt, oder war der Atmega88 _statt_ dem 8er nötig?
Wäre schön, wenn mir jemand weiterhelfen würde


Code :

;*********************************************************************

; LaserPro.asm
;
; For the ATmega88
;
; Laserprojector steering software
;
; Program settings:
; BOOTSZ = 11, BODLEVEL = 100, CKSEL = 0111, SUT = 11
; (brownout VCC = 4,3V, ext. full swing XTal)
;
;*********************************************************************

.include "m88def.inc"


;*********************************************************************
; Definitions
;*********************************************************************

.def T0 = r13 ;servo response time x 100 uS
.def Td = r14 ;extra response time (Tr = T0 + Td x dS/dSmax)
.def px = r22 ;projection x coordinate
.def py = r23 ;projection y coordinate
.def prevX = r4 ;previous X
.def prevY = r5 ;previous Y
.def prSize = r24 ;image proj. size
.def TimeH = r20 ;Timer H x 1 mS
.def TimeL = r19 ;Timer L x 1 mS
.def RxBufPtr = r7 ;Rx buffer index
.def Key = r8 ;Last KEY from terminal
.def ScrollWidth = r12 ;Scrollwidth (letters)
.def RevXY = r15 ;Reverse X/Y (b1,b0)
.def Mode = r9 ;Mode 1-4

;*********************************************************************





;*********************************************************************
; Constants
;*********************************************************************
.equ on = 1
.equ off = 0
.equ end = 2

;modes
.equ TxScr = 1
.equ TxWd = 2
.equ Yt = 3
.equ XYZ = 4

;default settings
.equ T0def = 15
.equ Tddef = 100
.equ TimeHdef = high(300)
.equ TimeLdef = low(300)
.equ prSizedef = 30
.equ ScrollWidthdef = 5
.equ RevXYdef = 0b00000001 ;b0 Y, b1 X
.equ ModeDef = TxScr

;misc
.equ StrBufSize = 35
.equ ScrollBufSize = 256
.equ TextBufSize = 238
.equ RxBufSize = 241
.equ CMDsize = 2
.equ ScrollY = 0 ;text start Y

.equ CTCrun = 0b00001001
.equ CTChalt = 0b00001000

.equ ADCmux = 0b01100000 ;ref=Vcc, ADLAR (8bits)
.equ ADCpre = 0b00000111 ;prescaler 128

.equ UBRR = 129 ;9600 Baud

;ASCII control
.equ CR = 13
.equ LF = 10
.equ BS = 8

.equ Prompt = '>'

.equ EWr = 0x5a ;flag EEPROM settings written

;*********************************************************************



;*********************************************************************
; Variables
;*********************************************************************
.dseg

;buffers
strbuf: .byte StrBufSize
ScrollBuf: .byte ScrollBufSize
RxBuf: .byte RxBufSize
TextBuf: .byte TextBufSize

;*********************************************************************




;*********************************************************************
; Macro's
;*********************************************************************
.macro LASER
.if @0 == on
sbi PortD,4
.endif
.if @0 == off
cbi PortD,4
.endif
.endm


.macro MoveTo
sbrc RevXY,1
com @0
out OCR0B,@0 ;X
sbrc RevXY,1
com @0

sbrc RevXY,0
com @1
sts OCR2B,@1 ;Y
sbrc RevXY,0
com @1

sub PrevX,@0
brcc mt00
neg PrevX
mt00:
sub PrevY,@1
brcc mt01
neg PrevY
mt01:
cp PrevX,PrevY
brcc mt02
mov PrevX,prevY
mt02:
mov r16,Td
mul r16,PrevX
mov r16,T0

mov PrevX,@0
mov PrevY,@1

add r16,r1
rcall Delay100uS

.endm



.macro LoadScrollBuf
ldi Zl,low(@0*2)
ldi Zh,high(@0*2)
rcall msg2scrollbuf
.endm




.macro LoadTextBuf
ldi Zl,low(@0*2)
ldi Zh,high(@0*2)
rcall msg2Textbuf
.endm



.macro DrawPattern
ldi r17,@1
Dp:

ldi Zl,low(@0*2)
ldi Zh,high(@0*2)
rcall Draw
dec r17
brne Dp
.endm



.macro StartTimer
clt
mov r11,@0
mov r10,@1

;reset prescaler
ldi r16, 1<<PSRSYNC
out GTCCR,r16
;set timer to zero
clr r16
sts TCNT1H,r16
sts TCNT1L,r16
;run timer
ldi r16,CTCrun ;CTC mode,presc=1
sts TCCR1B,r16
.endm



.macro IfTime

brts @0
.endm



.macro IfnTime

brtc @0
.endm



.macro StartADC
;select channel
ori @0,ADCmux
sts ADMUX,@0
;start conversion
ldi @0,ADCpre | (1<<ADEN) | (1<<ADSC) | (1<<ADIF)
sts ADCSRA,@0
.endm



.macro IfADCbusy

lds r16,ADCSRA
andi r16,1<<ADIF
breq @0
.endm

.macro TxByte
;Wait for Tx rdy
txb0:

lds r6,UCSR0A
sbrs r6,UDRE0
rjmp Txb0
;transmit
sts UDR0,@0
.endm


.macro LoadTxBuf
ldi Zl,low(@0*2)
ldi Zh,high(@0*2)
rcall Txmsg2buf
.endm

;*********************************************************************







.cseg





;*********************************************************************
; Interrupt adresses
;*********************************************************************
.org 0x0000 rjmp Reset
.org 0x000B rjmp T1_COMPA ;T1 OC int
.org 0x0012 rjmp RxRdy ;USART Rx complete




.org 0x0020

;*********************************************************************




;*********************************************************************
; Tables
;*********************************************************************

;default settings
defSet:
.db T0def,Tddef,TimeHdef,TimeLdef,prSizedef,ScrollWidthdef,RevXYdef,Modedef
defTxt:
.db "Laser-projector 2008",0

;ASCII table:
;space to /
a32: .db 0,0,end
a33: .db 127,0,on,127,32,off,127,127,on,127,255,end
a34: .db 127-32,255,on,127-32,255-32,off,127+32,255,on,127+32,255-32,end
a35: .db 0,0,end
a36: .db 0,0,end
a37: .db 0,0,end
a38: .db 0,0,end
a39: .db 127,255,on,127-32,255-32,end
a40: .db 0,0,end
a41: .db 0,0,end
a42: .db 64,255-64,on,255-64,64,off,255-64,255-64,on,64,64,off,127,255-64,on,127,64,end
a43: .db 0,127,on,255,127,off,127,255,on,127,0,end
a44: .db 127,48,on,127-48,0,end
a45: .db 0+64,127,on,255-64,127,end
a46: .db 127,0,on,127,16,end
a47: .db 0,0,on,255,255,end




;0-9
a48: .db 0,0,on,0,255,on,255,255,on,255,0,on,0,0,end
a49: .db 127,0,on,127,255,end
a50: .db 0,255,on,255,255,on,255,127,on,0,127,on,0,0,on,255,0,end
a51: .db 0,255,on,255,255,on,255,0,on,0,0,off,255,127,on,0,127,end
a52: .db 0,255,on,0,127,on,255,127,off,255,255,on,255,0,end
a53: .db 255,255,on,0,255,on,0,127,on,255,127,on,255,0,on,0,0,end
a54: .db 255,255,on,0,255,on,0,0,on,255,0,on,255,127,on,0,127,end
a55: .db 0,255,on,255,255,on,0,0,end
a56: .db 0,0,on,0,255,on,255,255,on,255,0,on,0,0,off,0,127,on,255,127,end
a57: .db 0,0,on,255,0,on,255,255,on,0,255,on,0,127,on,255,127,end

;symbols :,;,<,=,>,?,@
a58: .db 127,0,on,127,10,off,127,255-10,on,127,255,end
a59: .db 127-10,0,on,127,10,off,127,255-10,on,127,255,end
a60: .db 255,255,on,0,127,on,255,0,end
a61: .db 0,127+64,on,255,127+64,off,0,127-64,on,255,127-64,end
a62: .db 0,255,on,255,127,on,0,0,end
a63: .db 0,255,on,255,255,on,255,127,on,127,127,on,127,64,off,127,32,on,127,0,end
a64: .db 0,0,end;255,127+20,on,255-20,127+20,on,255-20,127,on,255,127,on,255,255,on,0,255,on,0,0,on,255,0,end


;A-Z
a65: .db 0,0,on,0,255,on,255,255,on,255,0,off,255,127,on,0,127,end
a66: .db 0,127,on,0,0,on,255,0,on,255,127,on,0,127,on,0,255,on,255-30,255,on,255-30,127,end
a67: .db 255,0,on,0,0,on,0,255,on,255,255,end
a68: .db 0,0,on,0,255,on,255,255-50,on,255,50,on,0,0,end
a69: .db 255,0,on,0,0,on,0,255,on,255,255,off,0,127,on,255,127,end
a70: .db 0,0,on,0,255,on,255,255,off,0,127,on,255,127,end
a71: .db 255,255,on,0,255,on,0,0,on,255,0,on,255,127,on,127,127,end
a72: .db 0,0,on,0,255,off,255,255,on,255,0,off,255,127,on,0,127,end
a73: .db 127-32,255,on,127+32,255,off,127,0,on,127,255,off,127-32,0,on,127+32,0,end
a74: .db 0,0,on,255,0,on,255,255,end
a75: .db 0,0,on,0,255,off,255,255,on,0,127,on,255,0,end
a76: .db 0,255,on,0,0,on,255,0,end
a77: .db 0,0,on,0,255,on,127,127,on,255,255,on,255,0,end
a78: .db 0,0,on,0,255,on,255,0,on,255,255,end
a79: .db 0,0,on,0,255,on,255,255,on,255,0,on,0,0,end
a80: .db 0,0,on,0,255,on,255,255,on,255,127,on,0,127,end
a81: .db 255,0,on,0,0,on,0,255,on,255,255,on,255,0,on,255-75,75,end
a82: .db 0,0,on,0,255,on,255,255,on,255,127,on,0,127,on,255,0,end
a83: .db 255,255,on,0,255,on,0,127,on,255,127,on,255,0,on,0,0,end
a84: .db 0,255,on,255,255,off,127,255,on,127,0,end
a85: .db 0,255,on,0,0,on,255,0,on,255,255,end
a86: .db 0,255,on,127,0,on,255,255,end
a87: .db 0,255,on,0,0,on,127,127,on,255,0,on,255,255,end
a88: .db 0,0,on,255,255,off,0,255,on,255,0,end
a89: .db 0,255,on,0,127,on,255,127,off,255,255,on,255,0,on,0,0,end
a90: .db 0,255,on,255,255,on,0,0,on,255,0,end

;symbols [,\,],^,_,'
a91: .db 127,0,on,0,0,on,0,255,on,127,255,end
a92: .db 0,255,on,255,0,end
a93: .db 127,255,on,255,255,on,255,0,on,127,0,end
a94: .db 127-64,255-64,on,127,255,on,127+64,255-64,end
a95: .db 0,0,on,255,0,end
a96: .db 127-30,255,on,127,255-30,end

;a to z
a97: .db 0,255-64,on,255,255-64,on,255,0,on,0,0,on,0,127,on,255,127,end
a98: .db 0,255,on,0,0,on,255,0,on,255,127,on,0,127,end
a99: .db 255,127+64,on,0,127+64,on,0,0,on,255,0,end
a100: .db 255,127,on,0,127,on,0,0,on,255,0,on,255,255,end
a101: .db 0,(127+64)/2,on,255,(127+64)/2,on,255,127+64,on,0,127+64,on,0,0,on,255,0,end
a102: .db 0,0,on,0,255-32,on,255,255-32,off,255,127,on,0,127,end
a103: .db 0,0,on,255,0,on,255,127+64,on,0,127+64,on,0,(127+64)/2,on,255,(127+64)/2,end
a104: .db 0,255,on,0,0,on,0,127,on,255,127,on,255,0,end
a105: .db 127,255,on,127,255-32,off,127,127,on,127,0,end
a106: .db 127,255,on,127,255-32,off,127,127,on,127,0,on,0,0,end
a107: .db 0,0,on,0,127+64,off,255,127+64,on,0,(127+64)/2,on,255,0,end
a108: .db 127,0,on,127,255,end
a109: .db 0,0,on,0,127+64,on,255,127+64,on,255,0,off,127,0,on,127,127+64,end
a110: .db 0,127+64,on,0,0,off,0,127+64,on,255,127+64,on,255,0,end
a111: .db 0,0,on,0,127+64,on,255,127+64,on,255,0,on,0,0,end
a112: .db 0,0,on,0,127+64,on,255,127+64,on,255,(127+64)/2,on,0,(127+64)/2,end
a113: .db 255,0,on,255,127+64,on,0,127+64,on,0,(127+64)/2,on,255,(127+64)/2,end
a114: .db 0,0,on,0,127+64,off,0,127,on,255,127+64,end
a115: .db 0,0,on,255,0,on,255,(127+64)/2,on,0,(127+64)/2,on,0,127+64,on,255,127+64,end
a116: .db 0,255-32,on,0,0,on,255,0,off,255,(255-32)/2,on,0,(255-32)/2,end
a117: .db 0,127+64,on,0,0,on,255,0,on,255,127+64,end
a118: .db 0,127+64,on,127,0,on,255,127+64,end
a119: .db 0,127+64,on,0,0,on,255,0,on,255,127+64,off,127,127+64,on,127,0,end
a120: .db 0,0,on,255,127+64,off,0,127+64,on,255,0,end
a121: .db 255,127+64,on,0,0,off,0,127+64,on,127,(127+64)/2,end
a122: .db 0,127+64,on,255,127+74,on,0,0,on,255,0,end

;symbols {,|,},~
a123: .db 0,0,end
a124: .db 0,0,end
a125: .db 0,0,end
a126: .db 0,0,end
a127: .db 0,0,end


;ASCII reference table
Char: .dw a32,a33,a34,a35,a36,a37,a38,a39,a40,a41
.dw a42,a43,a44,a45,a46,a47,a48,a49,a50,a51
.dw a52,a53,a54,a55,a56,a57,a58,a59,a60,a61
.dw a62,a63,a64,a65,a66,a67,a68,a69,a70,a71
.dw a72,a73,a74,a75,a76,a77,a78,a79,a80,a81
.dw a82,a83,a84,a85,a86,a87,a88,a89,a90,a91
.dw a92,a93,a94,a95,a96,a97,a98,a99,a100,a101
.dw a102,a103,a104,a105,a106,a107,a108,a109,a110,a111
.dw a112,a113,a114,a115,a116,a117,a118,a119,a120,a121
.dw a122,a123,a124,a125,a126,a127








;Test patterns
TP1: .db 0,0,on,0,255,on,255,255,on,255,0,on,0,0,end
TP2: .db 0,127,on,127,255,on,255,127,on,127,0,on,0,127,end
TP3: .db 127,0,on,127,255,off,0,127,on,255,127,off,0,0,on,0,255,on,255,255,on,255,0,on,0,0,end
TP4: .db 0,127,on,127,255,on,255,127,on,127,0,on,0,127,off,0,127,on,255,127,off,127,255,on,127,0,end

XYadj: .db 127,255,on,255,255,on,255,127,off,255,255,on,0,0,end


;Star
US: .db 0,0,on,255,160,on,0,160,on,255,0,on,127,255,on,0,0,end
;Square face
Face1: .db 0,0,on,0,255,on,255,255,on,255,0,on,0,0,off,(127-32),255-64,on,(127-32),255-64-32,off,127+64,255-64,on,127+64,255-64-32,off,64,64,on,255-64,64,end

;Flying bird
Bird0: .db 0,127,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127,end
Bird1: .db 0,127-16,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127-16,end
Bird2: .db 0,127-32,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127-32,end
Bird3: .db 0,127-32-16,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127-32-16,end
Bird10: .db 0,127+16,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127+16,end
Bird20: .db 0,127+32,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127+32,end
Bird30: .db 0,127+32+16,on,127-32,127,on,127,127-32,on,127+32,127,on,255,127+32+16,end


;Text constants
Headr: .db cr,lf," *** LASER-projector 2008 ***",CR,LF,LF,0
LCMsg: .db "LC<enter> for help",CR,LF,LF,0

CRLF: .db CR,LF,0

;---------------------------------------------------------------------------------
;commands CMD addr Syntax
;---------------------------------------------------------------------------------
CMDs: .db "TS" .dw TextSetUp ;TS <projsize 0-9> <width 0-9> <delay 0-9>
.db "TX" .dw Text ;TX <scroll text>
.db "TM" .dw Timing ;TM <T0 0-9> <Td 0-9>
.db "RE" .dw Reverse ;RE <X 0/1> <Y 0/1>
.db "XY" .dw adjXY
.db "AX" .dw AdjX
.db "AY" .dw AdjY
.db "S1" .dw XYsc
.db "S2" .dw YTsc
.db "D1" .dw Demo1
.db "T1" .dw Test1
.db "T2" .dw Test2
.db "T3" .dw Test3
.db "T4" .dw Test4
.db "LD" .dw LoadDefaults
.db "LS" .dw LoadSettings
.db "SS" .dw SaveSettings
.db "MS" .dw GetMode
.db "LC" .dw ListCommands

.equ nrCMD = (PC-CMDs) / 2 ;nrCMD := #CMD's
;---------------------------------------------------------------------------------



CommandList:

.db "Command-list:",Cr,LF,LF
.db "TS <size 0-9> <width 0-9> <delay 0-9> Text-Setup",Cr,Lf
.db "TX <Text max 240 char> ScrollText input",Cr,Lf
.db "TM <T0 0-9> <Td 0-9> Servo-timing",Cr,Lf
.db "RE <X 0/1> <Y 0/1> Reverse X Y 1=Yes",Cr,Lf

.db "XY Arrow to right-up",Cr,Lf
.db "AX Adjust X step",Cr,Lf
.db "AY Adjust Y step",Cr,Lf

.db "T1-T4 <proj.size> Testpattern 1-4",Cr,Lf
.db "D1 <proj.size> Demo1",Cr,Lf

.db "LD Load defaults",Cr,Lf
.db "LS Load (saved) settings",Cr,Lf
.db "SS Save (current) settings",Cr,Lf
.db "MS <mode 1-4> Mode-set 1=Scroll,2=Words,3=Yt,4=XYZ",Cr,Lf
.db "LC List commands (this screen)",Cr,Lf
.db Cr,Lf,"(Commands in capitals)",Cr,Lf
.db Lf,">",0xFF


;*********************************************************************







;*********************************************************************
; Reset
;*********************************************************************
Reset:

ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16

;init I/O

;Pull-up on Z input (of XYX)
sbi PortC,2

;Laser control
sbi DDRD,4
cbi PortD,4 ;laser off

;TXD output
sbi DDRD,1

;X DAC (Timer0 PWM, OC0B)
ldi r16,0b00100011 ;Fast PWM
out TCCR0A,r16
ldi r16,0b00000001 ;No prescaler
out TCCR0B,r16
;center X
ldi r16,127
out OCR0B,r16
;connect
sbi DDRD,5 ;OC0B = output


;Y DAC (Timer2 PWM, OC2B)
ldi r16,0b00100011 ;Fast PWM
sts TCCR2A,r16
ldi r16,0b00000001 ;No prescaler
sts TCCR2B,r16
;center X
ldi r16,127
sts OCR2B,r16
;connect
sbi DDRD,3 ;OC2B = output

;Timer1, int timer
ldi r16,0b00000000 ;normal operation
sts TCCR1A,r16
ldi r16,CTCrun ;CTC mode,presc=1
; ldi r16,CTChalt ;CTC mode,no clk
sts TCCR1B,r16
;compare match value (int-rate = 20E6 / value)
ldi r16,high(20000-1)
sts OCR1AH,r16
ldi r16,low(20000-1)
sts OCR1AL,r16
;enable compare-match-A interrupt
ldi r16,1<<OCIE1A
sts TIMSK1,r16

;enable the ADC
ldi r16,ADCpre | (1<<ADEN)
sts ADCSRA,r16

;USART setup
ldi r16,0b10011000 ;Rx int en, Rx en, Tx en
sts UCSR0B,r16
ldi r16,0b00001110 ;async,no par,8 bits,1 stb
sts UCSR0C,r16
;Baudrate
ldi r16,high(UBRR)
sts UBRR0H,r16
ldi r16,low(UBRR)
sts UBRR0L,r16

;Vdd rise delay
Vddr:
dec r16
brne Vddr
dec r17
brne Vddr

rjmp Main
;*********************************************************************





;*********************************************************************
; Interrupt: T1 compare-match-A (CTC mode)
;
; Usage: Timer 1mS
; r11:r10 = Time x 1 mS
;
;
;*********************************************************************

T1_COMPA:

;count down timer r11:r10
brts T100

dec r10
brne T100
tst r11
breq T101
dec r11
rjmp T100

T101:
set ;T-bit is time-out

;stop timer
push r16
ldi r16,CTChalt ;CTC mode,halt
sts TCCR1B,r16
pop r16
T100:
reti

;*********************************************************************





;*********************************************************************
; Rx complete interrupt (UART buffer contains a char to read)
;
;
;*********************************************************************
RxRdy:
push Xl
push Xh
push r16

lds Key,UDR0
mov r16,Key
;test for control chars
cpi r16,CR
breq rxr00
cpi r16,BS
breq rxr01

;handle data
mov r16,RxBufPtr
cpi r16,RxBufSize ;ignore if buffer full
brne rxr02
rjmp endRx
rxr02:
txbyte Key ;echo
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
add Xl,RxBufPtr
clr r16
adc Xh,r16
st X,Key
inc RxBufPtr
rjmp endRx

;Handle enter
rxr00:
ldi r16,CR
TxByte r16
ldi r16,LF
TxByte r16 ;send crlf
ldi r16,'>'
TxByte r16 ;send command prompt
rjmp endRx

;Handle backspace
rxr01:
tst RxBufPtr
breq endrx

dec RxBufPtr

ldi r16,BS
TxByte r16
ldi r16,' '
TxByte r16
ldi r16,BS
TxByte r16

endRx:
pop r16
pop Xh
pop Xl

reti
;*********************************************************************





;*********************************************************************
; Delay100uS
;
; delays r16 x 100uS
; uses r25
; affects r16
;*********************************************************************
Delay100uS:
ldi r25,200
Dl1m0:
nop
nop
nop
nop
nop
nop
nop
dec r25
brne Dl1m0

dec r16
brne Delay100uS
ret

;*********************************************************************







;*********************************************************************
; Draw
; Draws a pattern of lines
;
; entry: Z -> pattern
; pattern: .db x1,y1,laser,x2,y2,laser,....,xn,yn,end ;laser=on/off
;
; uses r2,r3,r21
;*********************************************************************



[ Diese Nachricht wurde geändert von: ElektroNicki am 24 Okt 2011 20:30 ]

BID = 793625

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

 

  

Ich wollte eigentlich den Code in einem Fenster posten, aber dann trollte mich das Forum mit nem komplett leeren Post...


Code :

Draw:

push Zl
push Zh

Dr00:
lpm r2,Z+
lpm r3,Z+
lpm r21,Z+

mul r2,prSize
mov r2,r1
add r2,px
mul r3,prSize
mov r3,r1
add r3,py

MoveTo r2,r3
cpi r21,end
breq Dend
cpi r21,off
breq Loff

Laser on
rjmp Dr00
Loff:
Laser off
rjmp Dr00

Dend:
Laser off

pop Zh
pop Zl
ret
;*********************************************************************




;*********************************************************************
; Drawchar
; Draws an ACII character
;
; entry: r16 =ASCII value
;
; uses r16,r0,r1,Zh,Zl
;*********************************************************************
DrawChar:
subi r16,32
ldi Zh,high(Char*2)
ldi Zl,low(Char*2)
lsl r16
add Zl,r16
clr r16
adc Zh,r16
lpm r0,Z+
lpm r1,Z
lsl r0
rol r1
mov Zl,r0
mov Zh,r1
rcall Draw
ret
;*********************************************************************




;*********************************************************************
; DrawStr
; Draws a string
;
; entry: StrBuf (0 terminated string)
;*********************************************************************

DrawStr:
push Yl
push Yh

ldi Yl,low(StrBuf)
ldi Yh,high(StrBuf)
DS00:
;get char from string
ld r16,Y+
cpi r16,0
;if 0 then end
breq DSend
;else draw the char
rcall DrawChar
;next x position
add px,prSize ;add char width
ldi r16,75
mul prSize,r16
add px,r1 ;add char width x 75/256 (separation btwn chars)
;next char
rjmp DS00
DSend:
ldi px,0
ldi py,ScrollY

;carriage return extra delay
Moveto px,py
ldi r16,50
rcall delay100us

pop Yh
pop Yl
ret
;*********************************************************************






;*********************************************************************
; msg2scrollbuf
;
; Copy const string to ScrollBuf for scrolling text
; adds leading and trailing spaces
;
; entry Z -> const.string
; uses r16,r17
;*********************************************************************
msg2scrollbuf:
ldi Yl,low(ScrollBuf)
ldi Yh,high(ScrollBuf)
;leading spaces
ldi r16,' '
mov r17,ScrollWidth
dec r17
m2b00:
st Y+,r16
dec r17
brne m2b00
mg00:
lpm r16,Z+
cpi r16,0
breq mg01
st Y+,r16
rjmp mg00
mg01:
;trailing spaces
ldi r16,' '
mov r17,ScrollWidth
dec r17 ;ScrollWidth-1
m2b01:
st Y+,r16
dec r17
brne m2b01
;terminate with 0
clr r16
st Y,r16
ret
;*********************************************************************




;*********************************************************************
; Txmsg2buf
;
; Copy const string to ScrollBuf for serial TX
;
; entry Z -> const.string
; uses r16,r17
;*********************************************************************
Txmsg2buf:
ldi Yl,low(ScrollBuf)
ldi Yh,high(ScrollBuf)
tmg00:
lpm r16,Z+
cpi r16,0
breq tmg01
st Y+,r16
rjmp tmg00
tmg01:
;terminate with 0
clr r16
st Y,r16
ret
;*********************************************************************


;*********************************************************************
; msg2Textbuf
;
; Copy const string to TextBuf
;
; entry Z -> const.string
; uses r16,r17
;*********************************************************************
msg2Textbuf:
ldi Yl,low(TextBuf)
ldi Yh,high(TextBuf)
mgt00:
lpm r16,Z+
cpi r16,0
breq mgt01
st Y+,r16
rjmp mgt00
mgt01:
;terminate with 0
clr r16
st Y,r16
ret
;*********************************************************************





;*********************************************************************
; Textwords
;
; Shows a string word by word
; usage: first copy string to TxtBuf
; set delay and char size
; ScrollBuf: 0 terminated string
;*********************************************************************
TextWords:
ldi Yl,low(TExtbuf);ScrollBuf)
ldi Yh,high(Textbuf);ScrollBuf)
;copy a word from ScrollBuf to strbuf
Ws01:
;get word until $20 or $0
ldi Xl,low(StrBuf)
ldi Xh,high(StrBuf)
ldi px,0
ldi py,ScrollY
Ws00:
ld r16,Y+
mov r17,r16 ;save
cpi r16,' '
breq shw
cpi r16,0
breq shw
st X+,r16
rjmp Ws00
;show (draw) the word
shw:
clr r16
st X,r16 ;terminate string (word)

;set time and show
mov r19,TimeH
mov r18,TimeL
lsl r18
rol r19
lsl r18
rol r19

StartTimer r19,r18
shw00:
ldi r16,CR
cp Key,r16
breq WsEnd ;abort if CMD input

ldi px,0
ldi py,ScrollY
rcall DrawStr
IfnTime shw00
tst r17
brne Ws01
WsEnd:
ret
;*********************************************************************





;*********************************************************************
; Textscroll
;
; Shows a string scrolling
; usage: first copy string to TxtBuf
; set delay and char size
; ScrollBuf: 0 terminated string
;
;*********************************************************************
TextScroll:
clr r18
Ts01:
ldi Xl,low(StrBuf)
ldi Xh,high(StrBuf)
ldi r17,0
Ts00:
ldi Yl,low(ScrollBuf)
ldi Yh,high(ScrollBuf)
add Yl,r17
clr r16
adc Yh,r16
add Yl,r18
adc Yh,r16

ld r16,Y
cpi r16,0
breq TxEnd
st X+,r16

inc r17
cp r17,ScrollWidth
brne Ts00
;show (draw) the word

clr r16
st X,r16 ;terminate string (word)

;set time and show
StartTimer TimeH,TimeL
Ts03:
ldi r16,CR
cp Key,r16
breq TxEnd ;abort if CMD input

ldi px,0
ldi py,ScrollY
rcall DrawStr
IfnTime Ts03

inc r18
rjmp Ts01
TxEnd:

ret
;*********************************************************************





;*********************************************************************
; XYZscope
;
; Input ADC0 -> X projection
; Input ADC1 -> Y projection
; Input PC2 -> Z (laser on/off)
;
; Uses r16
;*********************************************************************
XYZscope:
sbis PinC,2
Laser off
sbic PinC,2
Laser on

ldi r16,0
StartADC r16
xys00:
IfADCbusy xys00

lds r16,ADCH
sts OCR2B,r16 ;ch0 to Y

ldi r16,1
StartADC r16
xys01:
IfADCbusy xys01

lds r16,ADCH
out OCR0B,r16 ;ch1 to X

ret
;*********************************************************************






;*********************************************************************
; YTscope
;
; Input ADC0 -> Y projection
;
; Uses r16
;*********************************************************************
YTscope:
ldi r17,0
xts01:
ldi r16,0
StartADC r16
xts00:
IfADCbusy xts00

lds r16,ADCH
out OCR0B,r17 ;timebase to X
sts OCR2B,r16 ;ADC0 to Y

ldi r16,1
rcall Delay100uS

cpi r17,0
brne xts02

;suppress flyback
ldi r16,50
rcall delay100us
Laser on
xts02:
inc r17
brne xts01

laser off

ret
;*********************************************************************




;*********************************************************************
; CalY
;
; Plot stepresponce Y
;
; Uses r16,r17
;*********************************************************************
.equ a = 50

CalY:
laser on
ldi r17,0
ldi r18,0
Cy00:
ldi r18,127+a
cpi r17,0
brcs Cy01
cpi r17,127
brcc cy01
ldi r18,127-a
cy01:
out OCR0B,r17
sts OCR2B,r18

ldi r16,1
rcall Delay100uS

inc r17
brne cy00

laser off
ldi r17,0
ldi r18,127+a
out OCR0B,r17 ;
sts OCR2B,r18
ldi r16,100
rcall delay100us

ret
;*********************************************************************


;*********************************************************************
; CalX
;
; Plot stepresponce X
;
; Uses r16
;*********************************************************************
Calx:

laser on
ldi r17,0
ldi r18,0
Cx00:
ldi r18,127+a
cpi r17,0
brcs Cx01
cpi r17,127
brcc cx01
ldi r18,127-a
cx01:
out OCR0B,r18
sts OCR2B,r17

ldi r16,1
rcall Delay100uS

inc r17
brne cx00

laser off
ldi r17,0
ldi r18,127+a
out OCR0B,r18 ;
sts OCR2B,r17
ldi r16,100
rcall delay100us

ret
;*********************************************************************





;*********************************************************************

; TxBuf
;
; Send contents of ScrollBuf to USART Tx
;
;*********************************************************************
TxBuf:
ldi Yl,low(ScrollBuf)
ldi Yh,high(ScrollBuf)

TB00:
;get data byte from buffer
ld r16,Y+
cpi r16,0
breq TBend
;transmit
TxByte r16
rjmp TB00
TBend:
ret
;*********************************************************************





;*********************************************************************
; Text2Scroll
;
; Copy textbuffer to scrollbuffer
; adding leading and trailing spaces for scrolling
;*********************************************************************
Text2Scroll:
;copy to scrollbuffer
ldi Yl,low(ScrollBuf)
ldi Yh,high(ScrollBuf)


;add leading spaces to scrollbuffer
ldi r16,' '
mov r17,ScrollWidth
dec r17 ;Scrollwidth-1
te01:
st Y+,r16
dec r17
brne te01


;copy textbuffer to scrollbuffer
ldi Xl,low(TextBuf)
ldi Xh,high(TextBuf)
Te00:
ld r17,X+
cpi r17,0
breq Te03
st Y+,r17
rjmp Te00

Te03:
;add trailing spaces to scroll buffer
ldi r16,' '
mov r17,ScrollWidth
dec r17
Te02:
st Y+,r16
dec r17
brne Te02
;terminate with 0
clr r16
st Y,r16

ret
;*********************************************************************




;*********************************************************************
;GetCMD
;
;Translates RxBuf to CMD
;
;Then executes CMD
;
;*********************************************************************
GetCMD:
tst RxBufPtr
brne gc02
ret
gc02:
;command = RxBuf[0..2] must be capitals
ldi Zl,low(CMDs*2)
ldi Zh,high(CMDs*2)
ldi r16,0
gc01:
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
lpm r0,Z+
ld r1,X+
cp r0,r1
lpm r0,Z+
ld r1,X+
brne gc00
cp r0,r1
brne gc00

;command found
;get cmd routine adress
lpm r0,Z+
lpm r1,Z
mov Zl,r0
mov Zh,r1
ijmp

gc00:
;skip routine addr
lpm r0,Z+
lpm r0,Z+
inc r16
cpi r16,nrCMD
brne gc01

ldi r16,'?'
TxByte r16
ldi r16,CR
TxByte r16
ldi r16,LF
TxByte r16
ldi r16,Prompt
TxByte r16

ret



; Command handling

;TS CMD
;text-scroll settings <charsize> <scrollwidth> <scrolldelay>

TextSetUp:
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3

;get charsize
ld r16,X+
subi r16,'0'
;input x 10
ldi r17,10
mul r16,r17
mov prSize,r0

ld r16,X+ ;skip space

;get scrollwidth
ld r16,X+
subi r16,'0'
mov ScrollWidth,r16

ld r16,X+ ;skip space

;get scrolldelay
ld r16,X+
subi r16,'0'
;input x 50 mS
ldi r17,50
mul r16,r17
mov TimeH,r1
mov TimeL,r0

rcall Text2Scroll ;update scrollbuffer (new scrollwidth)

ret



;TX CMD
;input scrolltext from Terminal rdy
Text:
;save RxBuf to TextBuf (input text to scroll)
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3
ldi Yl,low(TextBuf)
ldi Yh,high(TextBuf)
cp00:
ld r17,X+
st Y+,r17
inc r16
cp r16,RxBufPtr
brne cp00
;terminate with 0
clr r16
st Y,r16

;copy Text to scrollbuffer
rcall Text2Scroll
ret

;TM CMD
;read T0,Td (input x 5)
;Timing for servo's Tdelay = T0 + Td x ds (ds = dx or dy (largest))
Timing:
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3

ld r16,X+
subi r16,'0'
ldi r17,5
mul r16,r17
mov T0,r0

ld r16,X+

ld r16,X+
subi r16,'0'
ldi r17,25
mul r16,r17
mov Td,r0

ret



;RE CMD
;set reverse for X and Y (1/0) for text projections
Reverse:
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3

ld r16,X+
clt
cpi r16,'0'
breq Rvs0
set
Rvs0:
bld RevXY,1

ld r16,X+
ld r16,X+
clt
cpi r16,'0'
breq Rvs01
set
Rvs01:
bld RevXY,0
ret


adjXY:
rcall runs
clr Px
clr Py
clr Key
axy:
DrawPattern XYadj,10
mov r18,Key
cpi r18,CR
brne axy

ret

AdjX:
rcall runs
clr Key
adx:
rcall CalX
mov r18,Key
cpi r18,CR
brne adx

ret


AdjY:
rcall runs
clr Key
ady:
rcall CalY
mov r18,Key
cpi r18,CR
brne ady

ret




XYsc:
rcall runs
clr Key
xy0:
rcall YTscope
mov r18,Key
cpi r18,CR
brne xy0

ret



YTsc:
rcall runs
clr Key
xt0:
rcall XYZscope
mov r18,Key
cpi r18,CR
brne xt0

ret



.equ n=5

Demo1:
push prSize

rcall runs

ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3
ld r16,X
subi r16,'0'
ldi r18,20
mul r16,r18
mov prSize,r0

clr Key
fl0:
DrawPattern bird0,n
DrawPattern bird1,n
DrawPattern bird2,n
DrawPattern bird3,n
DrawPattern bird2,n
DrawPattern bird1,n
DrawPattern bird0,n
DrawPattern bird10,n
DrawPattern bird20,n
DrawPattern bird30,n
DrawPattern bird20,n
DrawPattern bird10,n

mov r18,Key
cpi r18,CR
breq D1end
rjmp Fl0
D1end:
pop prSize
ret



Test1:
ldi Zl,low(TP1*2)
ldi Zh,high(TP1*2)
rjmp DrawTP

Test2:
ldi Zl,low(TP2*2)
ldi Zh,high(TP2*2)
rjmp DrawTP

Test3:
ldi Zl,low(TP3*2)
ldi Zh,high(TP3*2)
rjmp DrawTP

Test4:
ldi Zl,low(TP4*2)
ldi Zh,high(TP4*2)
rjmp DrawTP



DrawTP:
push prSize

rcall runs

ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3
ld r16,X
subi r16,'0'
ldi r18,20
mul r16,r18
mov prSize,r0

clr Px
clr Py

clr Key
DT00:
rcall Draw

mov r18,Key
cpi r18,CR
breq TPend
rjmp DT00
TPend:
pop prSize
ret

GetMode:
ldi Xl,low(RxBuf)
ldi Xh,high(RxBuf)
ldi r16,3
adiw Xl,3

ld r16,X+
subi r16,'0'
mov Mode,r16

ret

ListCommands:
ldi r16,CR
TxByte r16
ldi r16,LF
TxByte r16
TxByte r16

ldi Zl,low(2*CommandList)
ldi Zh,high(2*CommandList)
LC00:
lpm r16,Z+
cpi r16,0xff
breq lc01
TxByte r16
rjmp LC00
lc01:
ret


runs:
ldi r16,'.'
TxByte r16
TxByte r16
TxByte r16
clr RxBufPtr

ret
;*********************************************************************


;*********************************************************************
; EEPROM_write
;
; EEPROM[Xh:Xl] <- r16
;*********************************************************************
EEPROM_write:
; Wait for completion of previous write
sbic EECR,EEPE
rjmp EEPROM_write
; Set up address (Xh:Xl) in address register
out EEARH, Xh
out EEARL, Xl
; Write data (r16) to Data Register
out EEDR,r16
; Write logical one to EEMPE
sbi EECR,EEMPE
; Start eeprom write by setting EEPE
sbi EECR,EEPE
ret



;*********************************************************************
; EEPROM_read
;
; EEPROM[Xh:Xl] -> r16
;*********************************************************************

EEPROM_read:
; Wait for completion of previous write
sbic EECR,EEPE
rjmp EEPROM_read
; Set up address (Xh:Xl) in address register
out EEARH, Xh
out EEARL, Xl
; Start eeprom read by writing EERE
sbi EECR,EERE
; Read data from Data Register
in r16,EEDR
ret
;*********************************************************************




;*********************************************************************
; LoadDefaults
;
; Load default settings
;*********************************************************************
LoadDefaults:
ldi Zl,low(2*defSet)
ldi Zh,high(2*defSet)
ldi r17,8

lpm T0,Z+
lpm Td,Z+
lpm TimeH,Z+
lpm TimeL,Z+
lpm prSize,Z+
lpm ScrollWidth,Z+
lpm RevXY,Z+
lpm Mode,Z+

LoadTextBuf defTxt ;load textbuffer
LoadScrollBuf defTxt ;load scrollbuffer

ret
;*********************************************************************



;*********************************************************************
; LoadSettings
;
; Load setting from EEPROM
;*********************************************************************
LoadSettings:

clr Xh
clr Xl

rcall EEPROM_read
cpi r16,EWr
brne Lo0

adiw Xl,1
rcall EEPROM_read
mov T0,r16

adiw Xl,1
rcall EEPROM_read
mov Td,r16

adiw Xl,1
rcall EEPROM_read
mov TimeH,r16

adiw Xl,1
rcall EEPROM_read
mov TimeL,r16

adiw Xl,1
rcall EEPROM_read
mov prSize,r16

adiw Xl,1
rcall EEPROM_read
mov ScrollWidth,r16

adiw Xl,1
rcall EEPROM_read
mov RevXY,r16

adiw Xl,1
rcall EEPROM_read
mov Mode,r16


adiw Xl,1
ldi Yh,high(TextBuf)
ldi Yl,low(TextBuf)
rdEEtx:
rcall EEPROM_read
st Y+,r16
adiw Xl,1
cpi r16,0
brne rdEEtx

;load text to scrollbuffer
rcall Text2Scroll

lo0:

ret
;*********************************************************************






;*********************************************************************
; Savesettings
;
; Save current settings to EEPROM
;*********************************************************************
SaveSettings:
clr Xh
clr Xl

ldi r16,EWr
rcall EEPROM_write

adiw Xl,1
mov r16,T0
rcall EEPROM_write

adiw Xl,1
mov r16,Td
rcall EEPROM_write

adiw Xl,1
mov r16,TimeH
rcall EEPROM_write

adiw Xl,1
mov r16,TimeL
rcall EEPROM_write

adiw Xl,1
mov r16,prSize
rcall EEPROM_write

adiw Xl,1
mov r16,ScrollWidth
rcall EEPROM_write

adiw Xl,1
mov r16,RevXY
rcall EEPROM_write

adiw Xl,1
mov r16,Mode
rcall EEPROM_write

adiw Xl,1
ldi Yh,high(TextBuf)
ldi Yl,low(TextBuf)
wrEEtx:
ld r16,Y+
rcall EEPROM_write
adiw Xl,1
cpi r16,0
brne wrEEtx

ret
;*********************************************************************



;*********************************************************************
; Inits
;
; Startup settings
;*********************************************************************
Inits:
LoadTxBuf Headr
rcall TxBuf
LoadTxBuf LCMsg
rcall TxBuf
ldi r16,prompt
TxByte r16

clr Xh
clr Xl
rcall EEPROM_read
cpi r16,EWr
breq Main01

rcall LoadDefaults
rcall SaveSettings
Main01:
rcall LoadSettings


ret
;*********************************************************************




;*********************************************************************
; Main
;*********************************************************************
Main:
rcall Inits

sei

txtsh:
mai:
mov r16,Mode
cpi r16,TxScr
breq Tsc
cpi r16,Yt
breq YtS
cpi R16,XYZ
breq XYZs
cpi r16,TxWd
breq TxWds
Tsc:
rcall Textscroll
rjmp Mai00
Yts:
rcall YtScope
rjmp Mai00
XYZs:
rcall XYZscope
rjmp Mai00
TxWds:
rcall TextWords
rjmp Mai00

Mai00:
ldi r16,CR
cp Key,r16
brne mai

;Serial data received
;decode command
rcall GetCMD
clr RxBufPtr
clr Key
rjmp mai






_________________

BID = 793628

Jornbyte

Moderator



Beiträge: 7055

Wenn include
.include "m88def.inc"
in
.include "m8def.inc"
umbenannt wird, sollte es gehen.
Wenn nicht, pack den Quältext mal gezip her.



_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 793638

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

Das habe ich instinktiv als erste ausprobiert, ging natürlich nicht, wäre ja auch zu einfach
Danke für deine Bemühungen
Das sind übrigens die Originaldateien, da ist natürlich noch nichts umbenannt ;)


_________________

BID = 793641

Jornbyte

Moderator



Beiträge: 7055

Habs geladen und schaue Morgen mal drüber.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 793652

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5307
Wohnort: irgendwo südlich von Berlin

Atmel hat eine Application Note für den ungekehrten Weg geschrieben, also einen M8 durch einen M88 ersetzen aber da sind die Unterschiede ganz gut zu sehen. Heisst AVR094 das Pamphlet.

BID = 793666

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Heisst AVR094 das Pamphlet.
Das hat Nicki ja im ersten Beitrag verlinkt.
Warum er es allerdings von einer russischen Seite holt, anstatt bei Atmel direkt, wird wohl sein Geheimnis bleiben.

BID = 793672

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

Weil das bei Google als Deeplink relativ weit oben stand

_________________

BID = 793708

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier.
Warum besorgst du dir dann nicht einfach den passenden Prozessor?

Das ist viel billiger und nervenschonender als alle derartige Änderungen zu berücksichtigen und ggfs umzubauen:
Zitat :
The I/O Registers listed in Table 4 have not maintained the same functionality as some of the bits are changed or moved compared to ATmega88.

BID = 793725

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

Ich habe momentan noch nicht viel auf der Reicheltliste, das lohnt noch nicht

_________________

BID = 793776

Jornbyte

Moderator



Beiträge: 7055

Der m88 hat Feature die dem m8 fehlen. Das Umstricken geht prinzipiell, wobei die Schaltung zu beachten ist. Kannst du die auch mal zeigen? Der Grund sind die PWM-Ausgänge. Nich das da auch noch eine Änderung erfolgen muss.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 793816

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

Hier ist der Scan...
Es ist noch relativ egal, an welche PWM-Ausgänge ich die Schaltung hardwareseitig angeschlossen werden, da ich noch nichts verdrahtet habe, bin ich da flexibel.
Mach es so, wie es für dich am einfachsten ist.
Die Analogeingänge wären schön zu haben, sind aber nicht für die eigentliche Funktion der Schaltung zuständig. Wenn sie sich nicht "weiterschreiben" lassen, ist das auch nicht so schlimm.
Danke für deine Bemühungen!


_________________

BID = 793840

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Mach es so, wie es für dich am einfachsten ist.
Lieber Nicki, um 3,50€ einzusparen würde ich überhaupt nichts machen, sondern den Prozessor nehmen, mit dem das bekanntermaßen funktioniert.
Etwas anderes wäre es, wenn du von der falschen Sorte vielleicht 20.000 Stück auf Halde liegen hättest.
Dann dürftest du für die Anpassung sogar bezahlen.

BID = 794009

Jornbyte

Moderator



Beiträge: 7055

So, nun hab ich mir das mal angesehen. Bei 75 errors und 70 warnings ist der Aufwand zu groß um 3,55€ zu sparen.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 794017

ElektroNicki

Inventar



Beiträge: 6429
Wohnort: Ugobangowangohousen

Okay
Dann wird das Projekt auf die Warteliste gesetzt
Der Laser ist aber schon mal vorhanden

_________________


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 16 Beiträge verfasst
© x sparkkelsputz        Besucher : 180692498   Heute : 8399    Gestern : 12674    Online : 492        29.3.2024    15:47
10 Besucher in den letzten 60 Sekunden        alle 6.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0998339653015