diff --git a/Laminator-GUI/Laminator-GUI.v11.suo b/Laminator-GUI/Laminator-GUI.v11.suo index b8df70a..68f5b9b 100644 Binary files a/Laminator-GUI/Laminator-GUI.v11.suo and b/Laminator-GUI/Laminator-GUI.v11.suo differ diff --git a/Laminator-GUI/Laminator-GUI/App.config b/Laminator-GUI/Laminator-GUI/App.config index 9e013eb..3a71acd 100644 --- a/Laminator-GUI/Laminator-GUI/App.config +++ b/Laminator-GUI/Laminator-GUI/App.config @@ -11,13 +11,13 @@ - 32 + 25 - 10 + 20 - COM7 + COM9 1000 diff --git a/Laminator-GUI/Laminator-GUI/Form1.Designer.cs b/Laminator-GUI/Laminator-GUI/Form1.Designer.cs index ab5dff7..12780dd 100644 --- a/Laminator-GUI/Laminator-GUI/Form1.Designer.cs +++ b/Laminator-GUI/Laminator-GUI/Form1.Designer.cs @@ -28,211 +28,244 @@ /// private void InitializeComponent() { - System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); - System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); - System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); - this.label1 = new System.Windows.Forms.Label(); - this.Temp = new System.Windows.Forms.Label(); - this.chart = new System.Windows.Forms.DataVisualization.Charting.Chart(); - this.debug = new System.Windows.Forms.Label(); - this.heater = new System.Windows.Forms.Label(); - this.motor = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.tempbox = new System.Windows.Forms.NumericUpDown(); - this.motorbox = new System.Windows.Forms.NumericUpDown(); - this.heizungSoll = new System.Windows.Forms.Label(); - this.motorSoll = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.tempbox)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.motorbox)).BeginInit(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(61, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Temperatur"; - // - // Temp - // - this.Temp.AutoSize = true; - this.Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 72F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.Temp.ForeColor = System.Drawing.Color.Red; - this.Temp.Location = new System.Drawing.Point(12, 22); - this.Temp.Name = "Temp"; - this.Temp.Size = new System.Drawing.Size(208, 108); - this.Temp.TabIndex = 1; - this.Temp.Text = "0°C"; - // - // chart - // - chartArea1.Name = "ChartArea1"; - this.chart.ChartAreas.Add(chartArea1); - this.chart.Location = new System.Drawing.Point(13, 134); - this.chart.Name = "chart"; - series1.ChartArea = "ChartArea1"; - series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; - series1.Color = System.Drawing.Color.Red; - series1.IsVisibleInLegend = false; - series1.Name = "Temp"; - series2.ChartArea = "ChartArea1"; - series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; - series2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - series2.Name = "Motor"; - series3.ChartArea = "ChartArea1"; - series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; - series3.Color = System.Drawing.Color.Blue; - series3.Name = "Heizung"; - this.chart.Series.Add(series1); - this.chart.Series.Add(series2); - this.chart.Series.Add(series3); - this.chart.Size = new System.Drawing.Size(359, 122); - this.chart.TabIndex = 2; - this.chart.Text = "chart1"; - // - // debug - // - this.debug.AutoSize = true; - this.debug.Location = new System.Drawing.Point(258, 9); - this.debug.Name = "debug"; - this.debug.Size = new System.Drawing.Size(35, 13); - this.debug.TabIndex = 3; - this.debug.Text = "label2"; - // - // heater - // - this.heater.AutoSize = true; - this.heater.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F, System.Drawing.FontStyle.Bold); - this.heater.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.heater.Location = new System.Drawing.Point(256, 23); - this.heater.Name = "heater"; - this.heater.Size = new System.Drawing.Size(82, 22); - this.heater.TabIndex = 4; - this.heater.Text = "Heizung"; - // - // motor - // - this.motor.AutoSize = true; - this.motor.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F, System.Drawing.FontStyle.Bold); - this.motor.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); - this.motor.Location = new System.Drawing.Point(256, 48); - this.motor.Name = "motor"; - this.motor.Size = new System.Drawing.Size(60, 22); - this.motor.TabIndex = 5; - this.motor.Text = "Motor"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(322, 76); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(50, 47); - this.button1.TabIndex = 8; - this.button1.Text = "OK"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // tempbox - // - this.tempbox.Location = new System.Drawing.Point(261, 77); - this.tempbox.Maximum = new decimal(new int[] { + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series(); + this.label1 = new System.Windows.Forms.Label(); + this.Temp = new System.Windows.Forms.Label(); + this.chart = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.debug = new System.Windows.Forms.Label(); + this.heater = new System.Windows.Forms.Label(); + this.motor = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.tempbox = new System.Windows.Forms.NumericUpDown(); + this.motorbox = new System.Windows.Forms.NumericUpDown(); + this.heizungSoll = new System.Windows.Forms.Label(); + this.motorSoll = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.Temp1 = new System.Windows.Forms.Label(); + this.Temp2 = new System.Windows.Forms.Label(); + this.TempDiff = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.tempbox)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.motorbox)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(61, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Temperatur"; + // + // Temp + // + this.Temp.AutoSize = true; + this.Temp.Font = new System.Drawing.Font("Microsoft Sans Serif", 65F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Temp.ForeColor = System.Drawing.Color.Red; + this.Temp.Location = new System.Drawing.Point(12, 22); + this.Temp.Name = "Temp"; + this.Temp.Size = new System.Drawing.Size(191, 98); + this.Temp.TabIndex = 1; + this.Temp.Text = "0°C"; + // + // chart + // + chartArea2.Name = "ChartArea1"; + this.chart.ChartAreas.Add(chartArea2); + this.chart.Location = new System.Drawing.Point(12, 155); + this.chart.Name = "chart"; + series4.ChartArea = "ChartArea1"; + series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; + series4.Color = System.Drawing.Color.Red; + series4.IsVisibleInLegend = false; + series4.Name = "Temp"; + series5.ChartArea = "ChartArea1"; + series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; + series5.Color = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + series5.Name = "Motor"; + series6.ChartArea = "ChartArea1"; + series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; + series6.Color = System.Drawing.Color.Blue; + series6.Name = "Heizung"; + this.chart.Series.Add(series4); + this.chart.Series.Add(series5); + this.chart.Series.Add(series6); + this.chart.Size = new System.Drawing.Size(459, 122); + this.chart.TabIndex = 2; + this.chart.Text = "chart1"; + // + // debug + // + this.debug.AutoSize = true; + this.debug.Location = new System.Drawing.Point(10, 280); + this.debug.Name = "debug"; + this.debug.Size = new System.Drawing.Size(35, 13); + this.debug.TabIndex = 3; + this.debug.Text = "label2"; + // + // heater + // + this.heater.AutoSize = true; + this.heater.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F, System.Drawing.FontStyle.Bold); + this.heater.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.heater.Location = new System.Drawing.Point(357, 22); + this.heater.Name = "heater"; + this.heater.Size = new System.Drawing.Size(82, 22); + this.heater.TabIndex = 4; + this.heater.Text = "Heizung"; + // + // motor + // + this.motor.AutoSize = true; + this.motor.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F, System.Drawing.FontStyle.Bold); + this.motor.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0))))); + this.motor.Location = new System.Drawing.Point(357, 47); + this.motor.Name = "motor"; + this.motor.Size = new System.Drawing.Size(60, 22); + this.motor.TabIndex = 5; + this.motor.Text = "Motor"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(423, 75); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(50, 47); + this.button1.TabIndex = 8; + this.button1.Text = "OK"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // tempbox + // + this.tempbox.Location = new System.Drawing.Point(362, 76); + this.tempbox.Maximum = new decimal(new int[] { 250, 0, 0, 0}); - this.tempbox.Minimum = new decimal(new int[] { + this.tempbox.Minimum = new decimal(new int[] { 1, 0, 0, -2147483648}); - this.tempbox.Name = "tempbox"; - this.tempbox.Size = new System.Drawing.Size(55, 20); - this.tempbox.TabIndex = 9; - this.tempbox.Value = new decimal(new int[] { + this.tempbox.Name = "tempbox"; + this.tempbox.Size = new System.Drawing.Size(55, 20); + this.tempbox.TabIndex = 9; + this.tempbox.Value = new decimal(new int[] { 1, 0, 0, -2147483648}); - // - // motorbox - // - this.motorbox.Location = new System.Drawing.Point(261, 104); - this.motorbox.Maximum = new decimal(new int[] { - 10, + // + // motorbox + // + this.motorbox.Location = new System.Drawing.Point(362, 103); + this.motorbox.Maximum = new decimal(new int[] { + 20, 0, 0, 0}); - this.motorbox.Minimum = new decimal(new int[] { + this.motorbox.Minimum = new decimal(new int[] { 1, 0, 0, -2147483648}); - this.motorbox.Name = "motorbox"; - this.motorbox.Size = new System.Drawing.Size(55, 20); - this.motorbox.TabIndex = 10; - this.motorbox.Value = new decimal(new int[] { + this.motorbox.Name = "motorbox"; + this.motorbox.Size = new System.Drawing.Size(55, 20); + this.motorbox.TabIndex = 10; + this.motorbox.Value = new decimal(new int[] { 1, 0, 0, -2147483648}); - // - // heizungSoll - // - this.heizungSoll.AutoSize = true; - this.heizungSoll.Location = new System.Drawing.Point(337, 32); - this.heizungSoll.Name = "heizungSoll"; - this.heizungSoll.Size = new System.Drawing.Size(16, 13); - this.heizungSoll.TabIndex = 11; - this.heizungSoll.Text = "-1"; - // - // motorSoll - // - this.motorSoll.AutoSize = true; - this.motorSoll.Location = new System.Drawing.Point(337, 53); - this.motorSoll.Name = "motorSoll"; - this.motorSoll.Size = new System.Drawing.Size(16, 13); - this.motorSoll.TabIndex = 12; - this.motorSoll.Text = "-1"; - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(378, 12); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(94, 244); - this.panel1.TabIndex = 13; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(484, 262); - this.Controls.Add(this.panel1); - this.Controls.Add(this.motorSoll); - this.Controls.Add(this.heizungSoll); - this.Controls.Add(this.motorbox); - this.Controls.Add(this.tempbox); - this.Controls.Add(this.button1); - this.Controls.Add(this.motor); - this.Controls.Add(this.heater); - this.Controls.Add(this.debug); - this.Controls.Add(this.chart); - this.Controls.Add(this.Temp); - this.Controls.Add(this.label1); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(500, 300); - this.MinimumSize = new System.Drawing.Size(500, 300); - this.Name = "Form1"; - this.Text = "Laminator GUI"; - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.close); - ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.tempbox)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.motorbox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + // + // heizungSoll + // + this.heizungSoll.AutoSize = true; + this.heizungSoll.Location = new System.Drawing.Point(438, 31); + this.heizungSoll.Name = "heizungSoll"; + this.heizungSoll.Size = new System.Drawing.Size(16, 13); + this.heizungSoll.TabIndex = 11; + this.heizungSoll.Text = "-1"; + // + // motorSoll + // + this.motorSoll.AutoSize = true; + this.motorSoll.Location = new System.Drawing.Point(438, 52); + this.motorSoll.Name = "motorSoll"; + this.motorSoll.Size = new System.Drawing.Size(16, 13); + this.motorSoll.TabIndex = 12; + this.motorSoll.Text = "-1"; + // + // panel1 + // + this.panel1.Location = new System.Drawing.Point(478, 9); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(94, 268); + this.panel1.TabIndex = 13; + // + // Temp1 + // + this.Temp1.AutoSize = true; + this.Temp1.Location = new System.Drawing.Point(15, 124); + this.Temp1.Name = "Temp1"; + this.Temp1.Size = new System.Drawing.Size(24, 13); + this.Temp1.TabIndex = 14; + this.Temp1.Text = "0°C"; + // + // Temp2 + // + this.Temp2.AutoSize = true; + this.Temp2.Location = new System.Drawing.Point(98, 124); + this.Temp2.Name = "Temp2"; + this.Temp2.Size = new System.Drawing.Size(24, 13); + this.Temp2.TabIndex = 15; + this.Temp2.Text = "0°C"; + // + // TempDiff + // + this.TempDiff.AutoSize = true; + this.TempDiff.Location = new System.Drawing.Point(183, 124); + this.TempDiff.Name = "TempDiff"; + this.TempDiff.Size = new System.Drawing.Size(21, 13); + this.TempDiff.TabIndex = 16; + this.TempDiff.Text = "0%"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(584, 302); + this.Controls.Add(this.TempDiff); + this.Controls.Add(this.Temp2); + this.Controls.Add(this.Temp1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.motorSoll); + this.Controls.Add(this.heizungSoll); + this.Controls.Add(this.motorbox); + this.Controls.Add(this.tempbox); + this.Controls.Add(this.button1); + this.Controls.Add(this.motor); + this.Controls.Add(this.heater); + this.Controls.Add(this.debug); + this.Controls.Add(this.chart); + this.Controls.Add(this.Temp); + this.Controls.Add(this.label1); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(600, 340); + this.MinimumSize = new System.Drawing.Size(600, 340); + this.Name = "Form1"; + this.Text = "Laminator GUI"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.close); + ((System.ComponentModel.ISupportInitialize)(this.chart)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.tempbox)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.motorbox)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -250,6 +283,9 @@ private System.Windows.Forms.Label heizungSoll; private System.Windows.Forms.Label motorSoll; private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label Temp1; + private System.Windows.Forms.Label Temp2; + private System.Windows.Forms.Label TempDiff; } } diff --git a/Laminator-GUI/Laminator-GUI/Form1.cs b/Laminator-GUI/Laminator-GUI/Form1.cs index 124628c..6683a3d 100644 --- a/Laminator-GUI/Laminator-GUI/Form1.cs +++ b/Laminator-GUI/Laminator-GUI/Form1.cs @@ -16,7 +16,7 @@ namespace Laminator_GUI { public partial class Form1 : Form { - private Queue hist = new Queue(); + private Queue hist = new Queue(); private Queue hmotor = new Queue(); private Queue hheat = new Queue(); @@ -32,6 +32,10 @@ namespace Laminator_GUI private Settings settings; public delegate void InvokeDelegate(); private InIReader ini = new InIReader("temperatur.ini"); + private string tempText1; + private string tempText2; + private float temp1; + private float temp2; public Form1() { @@ -39,7 +43,7 @@ namespace Laminator_GUI this.createButtons(); this.settings = new Settings(); this.chart.ChartAreas[0].AxisX.Maximum = this.settings.Chart_Items; - this.serialPort = new SerialPort(this.settings.Com_Port, 9600, Parity.None, 8, StopBits.One); + this.serialPort = new SerialPort(this.settings.Com_Port, 38400, Parity.Even, 8, StopBits.One); this.serialPort.Open(); this.serialPort.Write("m" + this.settings.Default_Motor.PadLeft(2, '0') + "\n"); this.motorbox.Value = int.Parse(this.settings.Default_Motor); @@ -79,20 +83,65 @@ namespace Laminator_GUI { string r = this.serialPort.ReadLine(); this.debugText = r; - string[] tmp = r.Split(' '); - if (tmp.Length == 8) + string[] tmp = r.Split(';'); + if (tmp.Length == 11) { - int temp = int.Parse(tmp[3]); - if (temp < 0) - temp = 0; - this.tempText = temp.ToString(); - this.solltempText = tmp[4]; - this.motorText = tmp[5]; - this.heaterBool = (int.Parse(tmp[6]) > 0); - this.motorBool = (int.Parse(tmp[7]) > 0); - this.hist.Enqueue(temp); - this.hmotor.Enqueue(this.motorBool); - this.hheat.Enqueue(this.heaterBool); + foreach(String item in tmp) { + string[] kv = item.Split('='); + switch(kv[0]) { + case "cm": { + float temp = float.Parse(kv[1].Replace(',', '.'), System.Globalization.CultureInfo.InvariantCulture); + if(temp < 0) + temp = 0; + this.tempText = temp.ToString("0.00"); + this.hist.Enqueue(temp); + break; + } + case "c0": { + this.temp1 = float.Parse(kv[1].Replace(',', '.'), System.Globalization.CultureInfo.InvariantCulture); + if(this.temp1 < 0) + this.temp1 = 1; + this.tempText1 = this.temp1.ToString("0.00"); + break; + } + case "c1": { + this.temp2 = float.Parse(kv[1].Replace(',', '.'), System.Globalization.CultureInfo.InvariantCulture); + if(this.temp2 < 0) + this.temp2 = 0; + this.tempText2 = this.temp2.ToString("0.00"); + break; + } + case "t": { + this.solltempText = kv[1]; + break; + } + case "m": { + this.motorText = kv[1]; + break; + } + case "hon": { + this.heaterBool = (int.Parse(kv[1]) > 0); + this.hheat.Enqueue(this.heaterBool); + break; + } + case "mon": { + this.motorBool = (int.Parse(kv[1]) > 0); + this.hmotor.Enqueue(this.motorBool); + break; + } + } + } + //int temp = int.Parse(tmp[3]); + //if (temp < 0) + // temp = 0; + //this.tempText = temp.ToString(); + //this.solltempText = tmp[4]; + //this.motorText = tmp[5]; + //this.heaterBool = (int.Parse(tmp[6]) > 0); + //this.motorBool = (int.Parse(tmp[7]) > 0); + //this.hist.Enqueue(temp); + //this.hmotor.Enqueue(this.motorBool); + //this.hheat.Enqueue(this.heaterBool); if (this.hist.Count > this.settings.Chart_Items) { this.hist.Dequeue(); @@ -112,6 +161,9 @@ namespace Laminator_GUI try { this.Temp.BeginInvoke((MethodInvoker)delegate { this.Temp.Text = this.tempText + "°C"; }); + this.Temp1.BeginInvoke((MethodInvoker)delegate { this.Temp1.Text = this.tempText1 + "°C"; }); + this.Temp2.BeginInvoke((MethodInvoker)delegate { this.Temp2.Text = this.tempText2 + "°C"; }); + this.TempDiff.BeginInvoke((MethodInvoker)delegate { this.TempDiff.Text = ((((this.temp1 == 0 ? 1f : this.temp1) / this.temp2) * 100) - 100).ToString("0.00") + " %"; }); this.debug.BeginInvoke((MethodInvoker)delegate { this.debug.Text = this.debugText; }); this.chart.BeginInvoke((MethodInvoker)delegate { this.drawDia(); }); this.heater.BeginInvoke(new InvokeDelegate(InvokeHeat)); @@ -124,7 +176,7 @@ namespace Laminator_GUI private void InvokeHeat() { - if (this.heaterBool) + if (!this.heaterBool) { this.heater.ForeColor = System.Drawing.Color.Red; } @@ -135,7 +187,7 @@ namespace Laminator_GUI } private void InvokeMotor() { - if (this.motorBool) + if (!this.motorBool) { this.motor.ForeColor = System.Drawing.Color.Red; } @@ -152,7 +204,7 @@ namespace Laminator_GUI int i = 1; try { - foreach (int temp in this.hist) + foreach (float temp in this.hist) { this.chart.Series["Temp"].Points.AddXY(i++, temp); } diff --git a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe index 6abb6b2..145e554 100644 Binary files a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe and b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe differ diff --git a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe.config b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe.config index 9e013eb..3a71acd 100644 --- a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe.config +++ b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.exe.config @@ -11,13 +11,13 @@ - 32 + 25 - 10 + 20 - COM7 + COM9 1000 diff --git a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.pdb b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.pdb index 22a4c64..5c3f533 100644 Binary files a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.pdb and b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.pdb differ diff --git a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.vshost.exe.config b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.vshost.exe.config index fd05c1a..3a71acd 100644 --- a/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.vshost.exe.config +++ b/Laminator-GUI/Laminator-GUI/bin/x86/Release/Laminator-GUI.vshost.exe.config @@ -11,13 +11,13 @@ - 32 + 25 - 10 + 20 - COM16 + COM9 1000 diff --git a/Laminator-GUI/Laminator-GUI/bin/x86/Release/temperatur.ini b/Laminator-GUI/Laminator-GUI/bin/x86/Release/temperatur.ini index cf5d43e..0f1b23a 100644 --- a/Laminator-GUI/Laminator-GUI/bin/x86/Release/temperatur.ini +++ b/Laminator-GUI/Laminator-GUI/bin/x86/Release/temperatur.ini @@ -1,6 +1,6 @@ [Profile 1] temp=200 -motor=10 +motor=20 name=Aufheitzen 200°C [Profile 2] @@ -10,12 +10,12 @@ name=Steppen 200°C [Profile 3] temp=210 -motor=10 +motor=20 name=Brennen 210°C [Profile 4] temp=10 -motor=10 +motor=20 name=Abkühlen Motor ein [Profile 5] diff --git a/Laminator-GUI/Laminator-GUI/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache b/Laminator-GUI/Laminator-GUI/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache index 52cd88d..09abbf4 100644 Binary files a/Laminator-GUI/Laminator-GUI/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache and b/Laminator-GUI/Laminator-GUI/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.FileListAbsolute.txt b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.FileListAbsolute.txt index 7e233e6..986a543 100644 --- a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.FileListAbsolute.txt +++ b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.FileListAbsolute.txt @@ -8,3 +8,13 @@ D:\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Lamina D:\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.pdb D:\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\bin\x86\Release\temperatur.ini D:\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.csprojResolveAssemblyReference.cache +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\bin\x86\Release\Laminator-GUI.exe.config +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.exe +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.pdb +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\bin\x86\Release\temperatur.ini +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\bin\x86\Release\Laminator-GUI.exe +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\bin\x86\Release\Laminator-GUI.pdb +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.csprojResolveAssemblyReference.cache +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator_GUI.Form1.resources +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator_GUI.Properties.Resources.resources +E:\Eigene Dateien\Doc's\Basteleien\Laminator\Laminator-GUI\Laminator-GUI\obj\x86\Release\Laminator-GUI.csproj.GenerateResource.Cache diff --git a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.GenerateResource.Cache b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.GenerateResource.Cache index 273f6f3..291f225 100644 Binary files a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.GenerateResource.Cache and b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.csproj.GenerateResource.Cache differ diff --git a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.exe b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.exe index 6abb6b2..145e554 100644 Binary files a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.exe and b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.exe differ diff --git a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.pdb b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.pdb index 22a4c64..5c3f533 100644 Binary files a/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.pdb and b/Laminator-GUI/Laminator-GUI/obj/x86/Release/Laminator-GUI.pdb differ diff --git a/Laminator-GUI/Laminator-GUI/temperatur.ini b/Laminator-GUI/Laminator-GUI/temperatur.ini index cf5d43e..0f1b23a 100644 --- a/Laminator-GUI/Laminator-GUI/temperatur.ini +++ b/Laminator-GUI/Laminator-GUI/temperatur.ini @@ -1,6 +1,6 @@ [Profile 1] temp=200 -motor=10 +motor=20 name=Aufheitzen 200°C [Profile 2] @@ -10,12 +10,12 @@ name=Steppen 200°C [Profile 3] temp=210 -motor=10 +motor=20 name=Brennen 210°C [Profile 4] temp=10 -motor=10 +motor=20 name=Abkühlen Motor ein [Profile 5] diff --git a/Laminator/Laminator.atsuo b/Laminator/Laminator.atsuo index 123eebc..0b2a104 100644 Binary files a/Laminator/Laminator.atsuo and b/Laminator/Laminator.atsuo differ diff --git a/USBLaminator/USBLaminator.atsuo b/USBLaminator/USBLaminator.atsuo index fa1d770..892ed0b 100644 Binary files a/USBLaminator/USBLaminator.atsuo and b/USBLaminator/USBLaminator.atsuo differ diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.elf b/USBLaminator/USBLaminator/Debug/USBLaminator.elf index c7d6f1e..4fc5783 100644 Binary files a/USBLaminator/USBLaminator/Debug/USBLaminator.elf and b/USBLaminator/USBLaminator/Debug/USBLaminator.elf differ diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.hex b/USBLaminator/USBLaminator/Debug/USBLaminator.hex index 695faad..3335d80 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.hex +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.hex @@ -1,6 +1,6 @@ -:100000000C94A8000C9494050C94D0000C94D0008F -:100010000C94D0000C94D0000C9410050C94D000DB -:100020000C94D0000C94D0000C94D0000C94D00010 +:100000000C94A8000C94E1070C94D0000C94D00040 +:100010000C94D0000C94D0000C945D070C94D0008C +:100020000C94D0000C94D0000C94D0000C94EF07EA :100030000C94D0000C94D0000C94D0000C94D00000 :100040000C94D0000C94D0000C94D0000C94D000F0 :100050000C94D00000407A10F35A00A0724E180998 @@ -18,12 +18,12 @@ :100110004E0A000000C80C333333330F986E12833D :100120001141EF8D2114893BE65516CFFEE6DB1811 :10013000D1844B381BF77C1D901DA4BBE4242032D6 -:1001400084725E228100C9F124ECA1E53D270906F5 +:1001400084725E228100C9F124ECA1E53D27B70845 :1001500011241FBECFE5D4E0DEBFCDBF11E0A0E685 -:10016000B0E0ECEEF5E102C005900D92A639B107C2 -:10017000D9F721E0A6E9B1E001C01D92A23DB20786 +:10016000B0E0E8E8FBE102C005900D92A23AB107C9 +:10017000D9F721E0A2EAB1E001C01D92A53EB20785 :10018000E1F711E0C0E5D1E004C02297FE010E9432 -:100190004008CE34D107C9F70E94DD010C94F40A5F +:10019000220BCE34D107C9F70E94DD010C94C20DA9 :1001A0000C940000CF93C49ABC9AAA98A29AAB98D8 :1001B000A39AAC98A49AAD98A59AAE98A69AAF982F :1001C000A79AE1E9F0E083E2C39ABB9A5D9BFECF78 @@ -58,315 +58,406 @@ :10039000BB9AEFE3F1E083E2C9CF379A2FEF81EE0A :1003A00094E0215080409040E1F700C00000ECE470 :1003B000F1E083E2C6CFCF910895CF93DF93CDB71D -:1003C000DEB7AB970FB6F894DEBF0FBECDBF0E946D -:1003D000D20024E130E039A728A787B1887F87B908 -:1003E00087B187B935E33A95F1F70000369A349B27 -:1003F000FECFA4B0B5B087B1887F87B9389A85E3BE -:100400008A95F1F70000369A349BFECF84B095B000 -:1004100099EEA91693E0B90668F4E9EE8E16E3E0CA -:100420009E0640F4F5E0AF16B10420F025E08216F8 -:10043000910478F4C49ABC9A1092CC011092CD0128 -:100440001092CE011092CF011092D0011092D101E2 -:10045000FFCFE7E9F1E06081718180E090E00E94E8 -:1004600025076AA37BA38CA39DA3E9E9F1E0608142 -:10047000718180E090E00E942507262E372E082FFC -:10048000192FEBE9F1E06081718180E090E00E943A -:1004900025079B01AC01BAA1ABA1FCA1EDA16B2F7B -:1004A0007A2F8F2F9E2F0E9428066B017C01EDE989 -:1004B000F1E06081718180E090E00E9425079B015E -:1004C000AC01622D732D802F912F0E9428069B0175 -:1004D000AC01C701B6010E949106D62EC72EE82EA8 -:1004E000F92E462E572E682E792EB50180E090E029 -:1004F0000E9425079B01AC016D2D7C2D8E2D9F2D1B -:100500000E94DB076B017C01A30192015058622D10 -:10051000732D802F912F0E94DB079B01AC01C70137 -:10052000B6010E9429069B01AC01BAA1ABA1FCA1B6 -:10053000EDA16B2F7A2F8F2F9E2F0E9429066AA381 -:100540007BA38CA39DA3EFE9F1E06081718180E042 -:1005500090E00E9425076EA37FA38AA79BA7E1EAEC -:10056000F1E06081718180E090E00E942507262EF5 -:10057000372E082F192FE3EAF1E06081718180E0C6 -:1005800090E00E9425079B01AC01BEA1AFA1FAA596 -:10059000EBA56B2F7A2F8F2F9E2F0E9428066B01C1 -:1005A0007C01E5EAF1E06081718180E090E00E94E9 -:1005B00025079B01AC01622D732D802F912F0E9486 -:1005C00028069B01AC01C701B6010E949106D62EF8 -:1005D000C72EE82EF92E462E572E682E792EB401FE -:1005E00080E090E00E9425079B01AC016D2D7C2DE1 -:1005F0008E2D9F2D0E94DB076B017C01A3019201D0 -:100600005058622D732D802F912F0E94DB079B0184 -:10061000AC01C701B6010E9429069B01AC01BEA135 -:10062000AFA1FAA5EBA56B2F7A2F8F2F9E2F0E94DB -:1006300029066EA37FA3D82EC92E762F6FA1272F50 -:10064000362F4D2D5C2DBAA1ABA1FCA1EDA16B2FD6 -:100650007A2F8F2F9E2F0E94290620E030E040E065 -:100660005FE30E94DB07762E672E582E492EE8ECBA -:10067000F1E0808191812FEF3FEF318320838F3F25 -:100680003FEF930711F099A788A768A579A56B5F3D -:100690007F4F882777FD8095982F0E942707272D69 -:1006A000362D452D542D0E942806F62EE72E382E85 -:1006B000292E20E030E0A9010E948D0688230CF449 -:1006C00099C120E030E040EA51E46F2D7E2D832D6A -:1006D000922D0E94D70718160CF491C13F2D2E2D94 -:1006E000932D822D90C1C39ABB9A5D9BFECF8CB98E -:1006F000C398BB9A81918111F6CF8E01095E1F4F7D -:1007000022E04AE06F2D7E2D832D922D0E94440819 -:10071000FC012081222359F03196C39ABB9A5D9B3C -:10072000FECF2CB9C398BB9A21912111F6CFC39A61 -:10073000BB9A5D9BFECF8BE38CB9C398BB9A0F2EFF -:10074000FAE6EF2EF1E0FF2EF02DF70183E6C39AD3 -:10075000BB9A5D9BFECF8CB9C398BB9A81918111E6 -:10076000F6CFB4016A0D7B1D80E090E00E94250762 -:1007700020E030E040E05FE30E94DB078E01045F91 -:100780001F4F22E04AE00E944408FC0120812223FE -:1007900059F03196C39ABB9A5D9BFECF2CB9C39892 -:1007A000BB9A21912111F6CFC39ABB9A5D9BFECFD4 -:1007B0008BE38CB9C398BB9AEEE6F1E086E7C39A67 -:1007C000BB9A5D9BFECF8CB9C398BB9A8191811176 -:1007D000F6CF4AE050E0BE01645F7F4FC5010E9442 -:1007E0006508FC012081222359F03196C39ABB9AF7 -:1007F0005D9BFECF2CB9C398BB9A21912111F6CFF6 -:10080000C39ABB9A5D9BFECF8BE38CB9C398BB9A0E -:10081000E2E7F1E086E7C39ABB9A5D9BFECF8CB915 -:10082000C398BB9A81918111F6CF4AE050E0BE0196 -:10083000645F7F4FC4010E946508FC012081222370 -:1008400059F03196C39ABB9A5D9BFECF2CB9C398E1 -:10085000BB9A21912111F6CFC39ABB9A5D9BFECF23 -:100860008BE38CB9C398BB9A83E6F701C39ABB9A12 -:100870005D9BFECF8CB9C398BB9A81918111F6CF55 -:100880008E010F5F1F4F22E04AE0672D762D852DE8 -:10089000942D0E944408FC012081222359F03196B6 -:1008A000C39ABB9A5D9BFECF2CB9C398BB9A21918A -:1008B0002111F6CFC39ABB9A5D9BFECF8BE38CB917 -:1008C000C398BB9AE6E7F1E083E6C39ABB9A5D9BC7 -:1008D000FECF8CB9C398BB9A81918111F6CF8E015E -:1008E0000F5F1F4F22E04AE0FAA1EBA15CA13DA1FE -:1008F0006F2F7E2F852F932F0E944408FC012081AB -:10090000222359F03196C39ABB9A5D9BFECF2CB936 -:10091000C398BB9A21912111F6CFC39ABB9A5D9BD4 -:10092000FECF8BE38CB9C398BB9AEAE7F1E083E68C -:10093000C39ABB9A5D9BFECF8CB9C398BB9A819139 -:100940008111F6CF8E010F5F1F4F22E04AE0FEA11A -:10095000EFA16F2F7E2F8D2D9C2D0E944408FC014E -:100960002081222359F03196C39ABB9A5D9BFECF1A -:100970002CB9C398BB9A21912111F6CFC39ABB9A87 -:100980005D9BFECF8BE38CB9C398BB9AEEE7F1E099 -:1009900088E6C39ABB9A5D9BFECF8CB9C398BB9A7D -:1009A00081918111F6CF9A9B03C0E2E6F1E002C08B -:1009B000EBE5F1E08081882359F03196C39ABB9A28 -:1009C0005D9BFECF8CB9C398BB9A81918111F6CF04 -:1009D000C39ABB9A5D9BFECF8AE08CB9C398BB9A41 -:1009E000FFEF21EE34E0F15020403040E1F700C04D -:1009F0000000F3CC30E020E090E080E004C030E084 -:100A000020E090EA81E4482F632F722F892F942FE2 -:100A10000E94F9066093CB01E5E8F1E080E763CE40 -:100A20001F920F920FB60F9211242F933F934F9363 -:100A30005F936F937F938F939F93AF93BF93EF9346 -:100A4000FF938091CA01843108F451C01092CA0109 -:100A500051C0822F91916C91961718F1992309F149 -:100A6000BA01022E02C0660F771F0A94E2F7CB018B -:100A700060FF02C0AA9AA29A81FF02C0AB9AA39A11 -:100A800082FF02C0AC9AA49A83FF02C0AD9AA59AD5 -:100A900084FF02C0AE9AA69A85FF22C0AF9AA79A99 -:100AA0001FC0BA0102C0660F771F8A95E2F7CB011B -:100AB00060FF02C0AA98A29A81FF02C0AB98A39AD5 -:100AC00082FF02C0AC98A49A83FF02C0AD98A59A99 -:100AD00084FF02C0AE98A69A85FF02C0AF98A79A7D -:100AE0002F5F3F4F2630310509F0B3CF0CC08F5F29 -:100AF0008093CA01EBECF1E020E030E0AAECB1E039 -:100B000041E050E0A6CFFF91EF91BF91AF919F914F -:100B10008F917F916F915F914F913F912F910F90A6 -:100B20000FBE0F901F9018951F920F920FB60F9245 -:100B300011248F9380E48ABF8F910F900FBE0F9086 -:100B40001F901895FC01119286E0DF011D928A9595 -:100B5000E9F7A29AA39AA49AA59AA69AA79AAA98FC -:100B6000A29AAB98A39AAC98A49AAD98A59AAE987D -:100B7000A69AAF98A79A0895CF93DF931F92CDB707 -:100B8000DEB76983BC9ABB9ABA9AC498BC9AC398D8 -:100B9000BB9AC298BA9A2FEF3FEFFC0132832183B0 -:100BA0001BB888E08AB986EA80BD10BC89E189B9A2 -:100BB000EAE8F1E085E5C39ABB9A5D9BFECF8CB96C -:100BC000C398BB9A81918111F6CF0F90DF91CF919D -:100BD0000895CF93DF931F92CDB7DEB76983BC9A98 -:100BE000BB9ABA9AC498BC9AC398BB9AC298BA9A4C -:100BF0008A989298929A0F90DF91CF910895BC9A1B -:100C0000BB9ABA9AC498BC9AC398BB9AC298BA9A2B -:100C1000089581ED91E00E94FF058AEC91E00E9429 -:100C2000A20560E087EC91E00E94BC0580E3E0E66D -:100C3000F0E0A7E9B1E001900D928A95E1F784E038 -:100C400086B917B860E086E991E00E94E905089549 -:100C50005058BB27AA270ED070C161D130F066D1A1 -:100C600020F031F49F3F11F41EF456C10EF4E095CC -:100C7000E7FB4CC1E92F72D180F3BA176207730703 -:100C80008407950718F071F49EF58AC10EF4E0957B -:100C90000B2EBA2FA02D0B01B90190010C01CA0136 -:100CA000A0011124FF27591B99F0593F50F4503EE1 -:100CB00068F11A16F040A22F232F342F4427585FD3 -:100CC000F3CF469537952795A795F0405395C9F7EB -:100CD0007EF41F16BA0B620B730B840BBAF09150A3 -:100CE000A1F0FF0FBB1F661F771F881FC2F70EC042 -:100CF000BA0F621F731F841F48F487957795679515 -:100D0000B795F7959E3F08F0B3CF9395880F08F0FD -:100D10009927EE0F979587950895D4D008F481E030 -:100D200008950CD00AC102D140F0F9D030F021F47E -:100D30005F3F19F0EBC0511134C1EEC00FD198F3F1 -:100D40009923C9F35523B1F3951B550BBB27AA274C -:100D500062177307840738F09F5F5F4F220F331FBE -:100D6000441FAA1FA9F333D00E2E3AF0E0E830D08A -:100D700091505040E695001CCAF729D0FE2F27D08D -:100D8000660F771F881FBB1F261737074807AB075B -:100D9000B0E809F0BB0B802DBF01FF2793585F4FD0 -:100DA0002AF09E3F510568F0B1C0FBC05F3FECF3F5 -:100DB000983EDCF3869577956795B795F7959F5F95 -:100DC000C9F7880F911D9695879597F90895E1E0E9 -:100DD000660F771F881FBB1F621773078407BA0748 -:100DE00020F0621B730B840BBA0BEE1F88F7E095A3 -:100DF0000895BCD088F09F5790F0B92F9927B7512C -:100E0000A0F0D1F0660F771F881F991F1AF0BA95CE -:100E1000C9F712C0B13081F0C3D0B1E00895C0C0AD -:100E2000672F782F8827B85F39F0B93FCCF38695C4 -:100E300077956795B395D9F73EF490958095709521 -:100E400061957F4F8F4F9F4F0895E89409C097FB9E -:100E50003EF490958095709561957F4F8F4F9F4F91 -:100E60009923A9F0F92F96E9BB279395F6958795D5 -:100E700077956795B795F111F8CFFAF4BB0F11F498 -:100E800060FF1BC06F5F7F4F8F4F9F4F16C088233F -:100E900011F096E911C0772321F09EE8872F762F75 -:100EA00005C0662371F096E8862F70E060E02AF0B6 -:100EB0009A95660F771F881FDAF7880F96958795A2 -:100EC00097F90895990F0008550FAA0BE0E8FEEF77 -:100ED00016161706E807F907C0F012161306E407FE -:100EE000F50798F0621B730B840B950B39F40A26F7 -:100EF00061F0232B242B252B21F408950A2609F4D5 -:100F0000A140A6958FEF811D811D089597F99F67D8 -:100F100080E870E060E008959FEF80EC0895002481 -:100F20000A941616170618060906089500240A944E -:100F300012161306140605060895092E0394000CD4 -:100F400011F4882352F0BB0F40F4BF2B11F460FF63 -:100F500004C06F5F7F4F8F4F9F4F089557FD90588C -:100F6000440F551F59F05F3F71F04795880F97FB6D -:100F7000991F61F09F3F79F0879508951216130627 -:100F80001406551FF2CF4695F1DF08C01616170656 -:100F90001806991FF1CF869571056105089408958B -:100FA000E894BB2766277727CB0197F908958ADF56 -:100FB00008F48FEF08950BD0C0CFB1DF28F0B6DF73 -:100FC00018F0952309F0A2CFA7CF1124EACFC6DFEE -:100FD000A0F3959FD1F3950F50E0551F629FF0014C -:100FE000729FBB27F00DB11D639FAA27F00DB11DA5 -:100FF000AA1F649F6627B00DA11D661F829F22272E -:10100000B00DA11D621F739FB00DA11D621F839FB4 -:10101000A00D611D221F749F3327A00D611D231F8A -:10102000849F600D211D822F762F6A2F11249F57D8 -:1010300050408AF0E1F088234AF0EE0FFF1FBB1FFB -:10104000661F771F881F91505040A9F79E3F51059A -:1010500070F05CCFA6CF5F3FECF3983EDCF3869553 -:1010600077956795B795F795E7959F5FC1F7FE2B45 -:10107000880F911D9695879597F90895EE0FFF1F9C -:101080000590F491E02D0994EF920F931F93CF9365 -:10109000C02F47FF02C034E101C034E0E42FFF2736 -:1010A000E7FDF095F7FF03C0F195E195F109E32E17 -:1010B000022F2E2F4C2F512F0E947B088C2F912F07 -:1010C000CF911F910F91EF900895FB019F01423046 -:1010D00074F0453264F4642F77270E94E00A805D43 -:1010E0008A330CF0895D8193CB010097A1F71082C0 -:1010F000C9010C94D00A6F927F929F92AF92BF92D7 -:10110000CF92DF92EF92FF920F931F93CF93DF93D3 -:10111000CDB7DEB729970FB6F894DEBF0FBECDBFAF -:101120006A01B22E102F0C3318F4F02EF39402C083 -:101130005CE3F52E0F2D27E0AE014F5F5F4F0E945D -:10114000F8097981272F2970213031F0E1FC06C0A0 -:10115000E0FE06C060E205C06DE203C06BE201C0C4 -:1011600060E073FF3DC0662311F084E001C083E0BE -:101170008B1510F4B81A01C0B12CE4FC0BC08B2DF8 -:10118000F60190E202C0919381508111FCCFCB0C0B -:10119000D11CB12C662319F0D6016D936D01E2FECE -:1011A0000AC08EE4F601808391E491838283F3E0A8 -:1011B000CF0ED11C0CC08EE6D6018C9391E6119611 -:1011C0009C93119712968C93B3E0CB0ED11C8B2D70 -:1011D000F60190E202C0919381508111FCCF40C092 -:1011E00072FF45C0662311F084E001C083E08B15D7 -:1011F00010F4B81A01C0B12CE4FC0BC08B2DF60121 -:1012000090E202C0919381508111FCCFCB0CD11C94 -:10121000B12C662319F0F60161936F01E2FE0EC056 -:1012200089E4D6018C938EE411968C93119786E411 -:1012300012968C93B3E0CB0ED11C0AC089E6F6015E -:1012400080838EE6818386E68283F3E0CF0ED11C15 -:101250008B2DF60190E202C0919381508111FCCF59 -:10126000F601EB0DF11D10822EEF3FEFACC0A1E0B7 -:10127000611101C0A0E04A2F50E01816190624F4AD -:101280009C012F5F3F4F02C021E030E0240F351F4B -:10129000112329F0412F50E04F5F5F4F02C040E023 -:1012A00050E0420F531F2B2D30E04217530714F428 -:1012B000B41A01C0B12C3E2D3071E4FC0DC0E3FC2A -:1012C0000BC02B2DF60140E202C0419321502111A9 -:1012D000FCCFCB0CD11CB12CAA2319F0D6016D93F5 -:1012E0006D0131110BC02B2DF60130E302C031939B -:1012F00021502111FCCFCB0CD11CB12CF80E0A814E -:1013000040E1A42EA72274FF03C0013309F4FA942C -:101310001F142CF42F2D293018F028E001C021E0F3 -:10132000AC0197FF02C040E050E060E070E03EE2B8 -:10133000932EFC01E21BF1099F01DC01A41BB50BFC -:10134000FE013196EA0FFB1FA12FB0E0662477243F -:101350006A1A7B0A4F3F1FEF510719F4D6019D927D -:101360006D018417950754F0241735073CF47F016D -:10137000E60EF71ED70111961C9101C010E34150F3 -:1013800051096F5F7F4F4615570524F0D6011D9315 -:101390006D01E0CF4817590739F4063320F40533BF -:1013A00019F4A11001C011E3F60111938B2DDF0197 -:1013B00090E202C09D9381508111FCCFEB0DF11D95 -:1013C000108220E030E0C90129960FB6F894DEBF04 -:1013D0000FBECDBFDF91CF911F910F91FF90EF9086 -:1013E000DF90CF90BF90AF909F907F906F900895C7 -:1013F000283008F027E03327DA01990F311D87FDE7 -:10140000916000966105710539F432602E5F3D935D -:1014100030E32A95E1F708959F3F30F08038710559 -:10142000610509F03C5F3C5F3D93913008F08068B6 -:10143000911DDF93CF931F930F93FF92EF92192F7C -:10144000987F9695E92F96959695E90FFF27E25597 -:10145000FF4F99273327EE24FF24A701E7010590CA -:101460000894079428F4360FE71EF81E491F511DF3 -:10147000660F771F881F991F0694A1F705900794A0 -:1014800028F4E70EF81E491F561FC11D770F881F4D -:10149000991F661F0694A1F70590079428F4F80E8B -:1014A000491F561FC71FD11D880F991F661F771F21 -:1014B0000694A1F70590079420F4490F561FC71F03 -:1014C000D81F990F661F771F881F0694A9F784916C -:1014D0001095177041F0D695C79557954795F79495 -:1014E000E7941A95C1F7E4E5F0E06894159015913A -:1014F00035916591959105907FE27395E118F10A18 -:10150000430B560BC90BD009C0F7E10CF11E431F6A -:10151000561FC91FD01D7EF4703311F48A95E6CF93 -:10152000E894015030F0080F0AF40027021708F47D -:10153000202F2395022F7A3328F079E37D932A9583 -:10154000E9F710C07D932A9589F6069497956795DB -:10155000379517951794E118F10A430B560BC90BF1 -:10156000D00998F023957E9173957A3308F070E353 -:101570007C932013B8F77E9170617D9330F0839552 -:1015800071E37D9370E32A95E1F71124EF90FF90CA -:101590000F911F91CF91DF91992787FD9095089525 -:1015A000DC01FC01672F71917723E1F7329704C0CA -:1015B0007C916D9370836291AE17BF07C8F3089555 -:1015C000AA1BBB1B51E107C0AA1FBB1FA617B70769 -:1015D00010F0A61BB70B881F991F5A95A9F7809585 -:0C15E0009095BC01CD010895F894FFCF58 -:1015EC001F00FC01C80080011F00F801C800700139 -:1015FC0000000000000000000000000000000000DF -:10160C0000000000000000000000000000000000CE -:10161C002323232320426567696E20426F6F747504 -:10162C007020232323232323232323232323232334 -:10163C00232323232323232323232323232323236E -:10164C0023232323232323232323230A002320546C -:10165C00657374204F75747075740A00232053657C -:10166C007475702054696D65720A002323204F75C0 -:10167C007470757420496E697420446F6E65210A0C -:10168C00002323232320456E6420426F6F747570F2 -:10169C002023232323232323232323232323232311 -:1016AC0023232323232323232323232323232323FE -:1016BC002323232323232323232323230A0023202D -:1016CC005365747570204144430A0023205365749C -:1016DC00757020427574746F6E0A006D6F6E3D30BC -:1016EC003B006D6F6E3D313B00636D3D0076303DD0 -:1016FC000076313D0063303D0063313D00686F6E14 -:10170C003D303B0070776D3D005561727420646F05 -:06171C006E65210A0000C9 +:1003C000DEB7C35AD1090FB6F894DEBF0FBECDBF5A +:1003D0000E94D20088E2FE01B996DF01282F1D920B +:1003E0002A95E9F7FE013196DF011D928A95E9F71A +:1003F000C956DF4F1882C759D040B4E1CA56DF4F03 +:10040000B883C659D040E4E1F0E0CC56DF4FF98321 +:10041000E883C459D0409E012F5F3F4FC857DF4F3C +:1004200039832883C858D040CE55DF4F2883C25A1D +:10043000D040CD55DF4F3883C35AD0400F2EF9E25C +:10044000AF2EB12CF02DAC0EBD1E38E2A30EB11CA8 +:10045000C956DF4F8881C759D040482F50E087B137 +:10046000887F87B987B187B995E39A95F1F700003E +:10047000369A349BFECF84B195B1FA01EE0FFF1F7F +:10048000A1E0B0E0AC0FBD1FEA0FFB1F91A780A752 +:1004900087B1887F87B9389AB5E3BA95F1F700003C +:1004A000369A349BFECF84B195B1FA01EE0FFF1F4F +:1004B00021E030E02C0F3D1FE20FF31F918380837A +:1004C000FE01B996CE55DF4FA881C25AD040CD5516 +:1004D000DF4FB881C35AD04000E010E020E030E0A8 +:1004E00081919191280F391F8D919D91080F191FAE +:1004F000EA15FB05A9F7ADECBCEC0E94000B7C01F2 +:10050000F694E794F694E794F694E794F694E794D7 +:1005100098010E94000B6C01D694C794D694C7949E +:10052000D694C794D694C794CA01019664E170E04A +:100530000E94EC0AC956DF4F8883C759D04039EE74 +:10054000E31633E0F30668F489EEC81683E0D806B4 +:1005500040F495E0E916F10420F0A5E0CA16D104B4 +:1005600068F4C49ABC9A1092E0011092E1011092D2 +:10057000E2011092E3011092E401FFCFE3EAF1E01F +:100580006081718180E090E00E94D309362E272E91 +:10059000C657DF4F8883CA58D040C557DF4F98836E +:1005A000CB58D040A5EAB1E06D917C9180E090E01D +:1005B0000E94D309062F172F982E892EE7EAF1E023 +:1005C0006081718180E090E00E94D3099B01AC01C1 +:1005D000C657DF4FF881CA58D040C557DF4FE88172 +:1005E000CB58D040632D722D8F2F9E2F0E94D6089E +:1005F0002B013C016091A9017091AA0180E090E07B +:100600000E94D3099B01AC01602F712F892D982D79 +:100610000E94D6089B01AC01C301B2010E943F09B0 +:10062000562E472E682E792E862F942DA62DB72D67 +:10063000C457DF4F88839983AA83BB83CC58D040AB +:10064000B70180E090E00E94D3099B01AC01652DC9 +:10065000742D862D972D0E94890A2B013C01C457C9 +:10066000DF4F288139814A815B81CC58D040505876 +:10067000602F712F892D982D0E94890A9B01AC0152 +:10068000C301B2010E94D7089B01AC01C657DF4FDE +:10069000F881CA58D040C557DF4FE881CB58D040C9 +:1006A000632D722D8F2F9E2F0E94D708C457DF4FC6 +:1006B0006883CC58D040C856DF4F7883C859D040A3 +:1006C000C756DF4F8883C959D040C656DF4F98833D +:1006D000CA59D0406091AB017091AC0180E090E0CC +:1006E0000E94D309362E272EC657DF4F8883CA585B +:1006F000D040C557DF4F9883CB58D0406091AD01B3 +:100700007091AE0180E090E00E94D309062F172F70 +:10071000982E892E6091AF017091B00180E090E039 +:100720000E94D3099B01AC01C657DF4FF881CA581C +:10073000D040C557DF4FE881CB58D040632D722D94 +:100740008F2F9E2F0E94D6082B013C016091B10192 +:100750007091B20180E090E00E94D3099B01AC014E +:10076000602F712F892D982D0E94D6089B01AC0116 +:10077000C301B2010E943F09562E472E682E792EE2 +:10078000862F942DA62DB72DC057DF4F88839983D0 +:10079000AA83BB83C059D040B60180E090E00E949C +:1007A000D3099B01AC01652D742D862D972D0E94D8 +:1007B000890A2B013C01C057DF4F288139814A81CA +:1007C0005B81C059D0405058602F712F892D982DD2 +:1007D0000E94890A9B01AC01C301B2010E94D708A3 +:1007E0009B01AC01C657DF4FF881CA58D040C557AE +:1007F000DF4FE881CB58D040632D722D8F2F9E2F75 +:100800000E94D708C057DF4F6883C059D040C556F3 +:10081000DF4F7883CB59D040C456DF4F8883CC5903 +:10082000D040C356DF4F9883CD59D040762FC55660 +:10083000DF4F6881CB59D040982FC356DF4F888156 +:10084000CD59D040272F362F492F582FC457DF4F6F +:10085000B881CC58D040C856DF4FA881C859D04085 +:10086000C756DF4FF881C959D040C656DF4FE881DF +:10087000CA59D0406B2F7A2F8F2F9E2F0E94D708F6 +:1008800020E030E040E05FE30E94890AC256DF4F7B +:100890006883CE59D040C156DF4F7883CF59D040BE +:1008A000C056DF4F8883C05AD040CF55DF4F988362 +:1008B000C15AD040E4EDF1E0808191812FEF3FEF0C +:1008C000318320838F3FFFEF9F0731F0CC56DF4FFE +:1008D00099838883C459D040E6EDF1E080819FEF91 +:1008E00090838F3F29F0CA56DF4F8883C659D04086 +:1008F000CC56DF4F68817981C459D0406B5F7F4F00 +:10090000882777FD8095982F0E94D509C256DF4F22 +:10091000B881CE59D040C156DF4FA881CF59D040C1 +:10092000C056DF4FF881C05AD040CF55DF4FE88125 +:10093000C15AD0402B2F3A2F4F2F5E2F0E94D6083E +:10094000962E872E782E692E20E030E0A9010E9495 +:100950003B0988238CF020E030E040EA51E4692D27 +:10096000782D872D962D0E94850A181654F0392D62 +:10097000282D972D862D09C030E020E090E080E002 +:1009800004C030E020E090EA81E4482F632F722F0A +:10099000892F942F0E94A7096093DE01CA56DF4F6A +:1009A0002881C659D040622F772767FD7095872F21 +:1009B000972F0E94D509262E372E082F192F462E45 +:1009C000572EC657DF4F8883CA58D040C557DF4FD0 +:1009D0009883CB58D04020E030E0A9010E943B0929 +:1009E00088230CF439C220E030E040EA51E4622D63 +:1009F000732D802F912F0E94850A18160CF439C28E +:100A000046C2C39ABB9A5D9BFECF8CB9C398BB9A72 +:100A100081918111F6CF8E0103581F4F22E04AE0E9 +:100A2000692D782D872D962D0E94260BDC012C91A7 +:100A3000222361F0FC013196C39ABB9A5D9BFECFE5 +:100A40002CB9C398BB9A21912111F6CFC39ABB9AB6 +:100A50005D9BFECF8BE38CB9C398BB9AE6E7F1E0D0 +:100A600086E7C39ABB9A5D9BFECF8CB9C398BB9AAD +:100A700081918111F6CFB6016E0D7F1D80E090E06F +:100A80000E94D30920E030E040E05FE30E94890A41 +:100A90008E010E581F4F22E04AE00E94260BFC01F7 +:100AA0002081222359F03196C39ABB9A5D9BFECFD9 +:100AB0002CB9C398BB9A21912111F6CFC39ABB9A46 +:100AC0005D9BFECF8BE38CB9C398BB9AEAE7F1E05C +:100AD00086E7C39ABB9A5D9BFECF8CB9C398BB9A3D +:100AE00081918111F6CF4AE050E0BE016E587F4FF0 +:100AF000C7010E94470BDC012C91222361F0FC010D +:100B00003196C39ABB9A5D9BFECF2CB9C398BB9A12 +:100B100021912111F6CFC39ABB9A5D9BFECF8BE347 +:100B20008CB9C398BB9AEEE7F1E086E7C39ABB9A0B +:100B30005D9BFECF8CB9C398BB9A81918111F6CF92 +:100B40004AE050E0BE016E587F4FC6010E94470B3D +:100B5000FC012081222359F03196C39ABB9A5D9BF8 +:100B6000FECF2CB9C398BB9A21912111F6CFC39A1D +:100B7000BB9A5D9BFECF8BE38CB9C398BB9AE2E82E +:100B8000F1E083E6C39ABB9A5D9BFECF8CB9C39814 +:100B9000BB9A81918111F6CF8E0109591F4F22E036 +:100BA0004AE0C256DF4FF881CE59D040C156DF4FE0 +:100BB000E881CF59D040C056DF4F5881C05AD0404D +:100BC000CF55DF4F3881C15AD0406F2F7E2F852FF0 +:100BD000932F0E94260BDC012C91222361F0FC0153 +:100BE0003196C39ABB9A5D9BFECF2CB9C398BB9A32 +:100BF00021912111F6CFC39ABB9A5D9BFECF8BE367 +:100C00008CB9C398BB9AE6E8F1E083E6C39ABB9A35 +:100C10005D9BFECF8CB9C398BB9A81918111F6CFB1 +:100C20008E0109591F4F22E04AE0C457DF4FF88177 +:100C3000CC58D040C856DF4FE881C859D040C7567D +:100C4000DF4F5881C959D040C656DF4F3881CA5945 +:100C5000D0406F2F7E2F852F932F0E94260BFC01F3 +:100C60002081222359F03196C39ABB9A5D9BFECF17 +:100C70002CB9C398BB9A21912111F6CFC39ABB9A84 +:100C80005D9BFECF8BE38CB9C398BB9AEAE8F1E099 +:100C900083E6C39ABB9A5D9BFECF8CB9C398BB9A7F +:100CA00081918111F6CF8E0109591F4F22E04AE050 +:100CB000C057DF4FF881C059D040C556DF4FE8819B +:100CC000CB59D040C456DF4F5881CC59D040C35681 +:100CD000DF4F3881CD59D0406F2F7E2F852F932F36 +:100CE0000E94260BDC012C91222361F0FC0131963D +:100CF000C39ABB9A5D9BFECF2CB9C398BB9A219136 +:100D00002111F6CFC39ABB9A5D9BFECF8BE38CB9C2 +:100D1000C398BB9AEEE8F1E084E7C39ABB9A5D9B67 +:100D2000FECF8CB9C398BB9A81918111F6CF4AE06E +:100D300050E0BE01645A7F4FCC56DF4F88819981C5 +:100D4000C459D0400E94470BFC012081222359F056 +:100D50003196C39ABB9A5D9BFECF2CB9C398BB9AC0 +:100D600021912111F6CFC39ABB9A5D9BFECF8BE3F5 +:100D70008CB9C398BB9AE3E8F1E08DE6C39ABB9ABD +:100D80005D9BFECF8CB9C398BB9A81918111F6CF40 +:100D90004AE050E0BE016F5A7F4FCA56DF4FF881DC +:100DA000C659D0408F2F992787FD90950E94470BF9 +:100DB000DC012C91222361F0FC013196C39ABB9A8D +:100DC0005D9BFECF2CB9C398BB9A21912111F6CF20 +:100DD000C39ABB9A5D9BFECF8BE38CB9C398BB9A39 +:100DE0009A9B03C0E2E6F1E002C0EBE5F1E080810E +:100DF000882359F03196C39ABB9A5D9BFECF8CB97C +:100E0000C398BB9A81918111F6CF9B9B03C0EFE6FB +:100E1000F1E002C0E9E6F1E08081882359F03196E3 +:100E2000C39ABB9A5D9BFECF8CB9C398BB9A819144 +:100E30008111F6CFC39ABB9A5D9BFECF8AE08CB935 +:100E4000C398BB9ABFEFE0E7F2E0B150E040F0405A +:100E5000E1F700C00000FCCA412C512CC657DF4FFF +:100E60001882CA58D040C557DF4F1882CB58D0409F +:100E70000EC0412C512C20EAC657DF4F2883CA5898 +:100E8000D04031E4C557DF4F3883CB58D040C657E8 +:100E9000DF4F3881CA58D040C557DF4F2881CB5823 +:100EA000D040642D752D832F922F0E94A709609347 +:100EB000DF01E1E9F1E080E7A4CD1F920F920FB6C8 +:100EC0000F9211242F933F934F935F936F937F93D0 +:100ED0008F939F93AF93BF93EF93FF938091DD0127 +:100EE000843108F451C01092DD0151C0822F9191DC +:100EF0006C91961718F1992309F1BA01022E02C0DC +:100F0000660F771F0A94E2F7CB0160FF02C0AA9A2E +:100F1000A29A81FF02C0AB9AA39A82FF02C0AC9A48 +:100F2000A49A83FF02C0AD9AA59A84FF02C0AE9A2C +:100F3000A69A85FF22C0AF9AA79A1FC0BA0102C025 +:100F4000660F771F8A95E2F7CB0160FF02C0AA986F +:100F5000A29A81FF02C0AB98A39A82FF02C0AC980C +:100F6000A49A83FF02C0AD98A59A84FF02C0AE98F0 +:100F7000A69A85FF02C0AF98A79A2F5F3F4F2630F1 +:100F8000310509F0B3CF0CC08F5F8093DD01EEED2A +:100F9000F1E020E030E0ADEDB1E041E050E0A6CF7F +:100FA000FF91EF91BF91AF919F918F917F916F9141 +:100FB0005F914F913F912F910F900FBE0F901F9017 +:100FC00018951F920F920FB60F9211248F9380E401 +:100FD0008ABF8F910F900FBE0F901F9018951F9290 +:100FE0000F920FB60F9211242F933F934F938F932D +:100FF0009F93EF93FF938CB18A3079F08D3069F035 +:101000009091D701953048F4E92FF0E0ED52FE4F72 +:1010100085839F5F9093D70133C08091D801843737 +:10102000F1F44091D9018091DA0190E0880F991F85 +:101030009C01220F331F220F331F820F931F24E6C0 +:10104000429F800D911D11242091DB01820F911D83 +:10105000805D94419093D5018093D4010FC08D366B +:1010600069F49091DA0190518091D901880F282F6D +:10107000220F220F820F890F8093D6011092D70181 +:10108000FF91EF919F918F914F913F912F910F90F1 +:101090000FBE0F901F901895FC01119286E0DF01A2 +:1010A0001D928A95E9F7A29AA39AA49AA59AA69A5C +:1010B000A79AAA98A29AAB98A39AAC98A49AAD982A +:1010C000A59AAE98A69AAF98A79A0895CF93DF9362 +:1010D0001F92CDB7DEB7FC016983BC9ABB9ABA9A5E +:1010E000C498BC9AC398BB9AC298BA9A8FEF9FEFE4 +:1010F000928381838FEF838314821BB888E98AB936 +:1011000086EA80BD10BC89E189B97894E6E9F1E00E +:1011100085E5C39ABB9A5D9BFECF8CB9C398BB9AF9 +:1011200081918111F6CF0F90DF91CF910895CF93E8 +:10113000DF931F92CDB7DEB76983BC9ABB9ABA9A88 +:10114000C498BC9AC398BB9AC298BA9A8A98929843 +:10115000929A0F90DF91CF910895BC9ABB9ABA9A58 +:10116000C498BC9AC398BB9AC298BA9A089584EE60 +:1011700091E00E94AD088DED91E00E944C0860E086 +:1011800083ED91E00E94660880E3E0E6F0E0A3EAE8 +:10119000B1E001900D928A95E1F784E086B917B825 +:1011A00060E082EA91E00E94970808955058BB27BA +:1011B000AA270ED070C161D130F066D120F031F491 +:1011C0009F3F11F41EF456C10EF4E095E7FB4CC1AD +:1011D000E92F72D180F3BA17620773078407950766 +:1011E00018F071F49EF58AC10EF4E0950B2EBA2F1B +:1011F000A02D0B01B90190010C01CA01A00111241D +:10120000FF27591B99F0593F50F4503E68F11A16C8 +:10121000F040A22F232F342F4427585FF3CF469559 +:1012200037952795A795F0405395C9F77EF41F167B +:10123000BA0B620B730B840BBAF09150A1F0FF0F45 +:10124000BB1F661F771F881FC2F70EC0BA0F621F31 +:10125000731F841F48F4879577956795B795F79521 +:101260009E3F08F0B3CF9395880F08F09927EE0FB3 +:10127000979587950895D4D008F481E008950CD00F +:101280000AC102D140F0F9D030F021F45F3F19F0EB +:10129000EBC0511134C1EEC00FD198F39923C9F3BB +:1012A0005523B1F3951B550BBB27AA27621773076C +:1012B000840738F09F5F5F4F220F331F441FAA1F20 +:1012C000A9F333D00E2E3AF0E0E830D091505040E0 +:1012D000E695001CCAF729D0FE2F27D0660F771F8E +:1012E000881FBB1F261737074807AB07B0E809F070 +:1012F000BB0B802DBF01FF2793585F4F2AF09E3F05 +:10130000510568F0B1C0FBC05F3FECF3983EDCF3E1 +:10131000869577956795B795F7959F5FC9F7880F7D +:10132000911D9695879597F90895E1E0660F771FCF +:10133000881FBB1F621773078407BA0720F0621B60 +:10134000730B840BBA0BEE1F88F7E0950895BCD0A1 +:1013500088F09F5790F0B92F9927B751A0F0D1F09E +:10136000660F771F881F991F1AF0BA95C9F712C028 +:10137000B13081F0C3D0B1E00895C0C0672F782F9D +:101380008827B85F39F0B93FCCF386957795679594 +:10139000B395D9F73EF490958095709561957F4F00 +:1013A0008F4F9F4F0895E89409C097FB3EF49095A6 +:1013B0008095709561957F4F8F4F9F4F9923A9F02E +:1013C000F92F96E9BB279395F695879577956795BD +:1013D000B795F111F8CFFAF4BB0F11F460FF1BC001 +:1013E0006F5F7F4F8F4F9F4F16C0882311F096E994 +:1013F00011C0772321F09EE8872F762F05C0662342 +:1014000071F096E8862F70E060E02AF09A95660FFA +:10141000771F881FDAF7880F9695879597F90895B3 +:10142000990F0008550FAA0BE0E8FEEF16161706F5 +:10143000E807F907C0F012161306E407F50798F05D +:10144000621B730B840B950B39F40A2661F0232B76 +:10145000242B252B21F408950A2609F4A140A695F2 +:101460008FEF811D811D089597F99F6780E870E0D7 +:1014700060E008959FEF80EC089500240A9416160A +:10148000170618060906089500240A941216130672 +:10149000140605060895092E0394000C11F4882300 +:1014A00052F0BB0F40F4BF2B11F460FF04C06F5F1C +:1014B0007F4F8F4F9F4F089557FD9058440F551FF2 +:1014C00059F05F3F71F04795880F97FB991F61F0C6 +:1014D0009F3F79F087950895121613061406551F3D +:1014E000F2CF4695F1DF08C0161617061806991FA9 +:1014F000F1CF86957105610508940895E894BB279E +:1015000066277727CB0197F908958ADF08F48FEFD4 +:1015100008950BD0C0CFB1DF28F0B6DF18F09523C7 +:1015200009F0A2CFA7CF1124EACFC6DFA0F3959F81 +:10153000D1F3950F50E0551F629FF001729FBB27BA +:10154000F00DB11D639FAA27F00DB11DAA1F649F66 +:101550006627B00DA11D661F829F2227B00DA11D19 +:10156000621F739FB00DA11D621F839FA00D611D9F +:10157000221F749F3327A00D611D231F849F600DC0 +:10158000211D822F762F6A2F11249F5750408AF0F9 +:10159000E1F088234AF0EE0FFF1FBB1F661F771F85 +:1015A000881F91505040A9F79E3F510570F05CCFC5 +:1015B000A6CF5F3FECF3983EDCF386957795679571 +:1015C000B795F795E7959F5FC1F7FE2B880F911DA3 +:1015D0009695879597F9089597FB072E16F4009432 +:1015E00007D077FD09D00E940C0B07FC05D03EF414 +:1015F000909581959F4F0895709561957F4F0895BF +:10160000A29FB001B39FC001A39F01D0B29F700DF4 +:10161000811D1124911D0895AA1BBB1B51E107C018 +:10162000AA1FBB1FA617B70710F0A61BB70B881F72 +:10163000991F5A95A9F780959095BC01CD01089501 +:10164000EE0FFF1F0590F491E02D0994EF920F9398 +:101650001F93CF93C02F47FF02C034E101C034E095 +:10166000E42FFF27E7FDF095F7FF03C0F195E19523 +:10167000F109E32E022F2E2F4C2F512F0E945D0BCC +:101680008C2F912FCF911F910F91EF900895FB0117 +:101690009F01423074F0453264F4642F77270E9432 +:1016A0000C0B805D8A330CF0895D8193CB01009730 +:1016B000A1F71082C9010C94B20D6F927F929F9294 +:1016C000AF92BF92CF92DF92EF92FF920F931F9350 +:1016D000CF93DF93CDB7DEB729970FB6F894DEBF6F +:1016E0000FBECDBF6A01B22E102F0C3318F4F02EAE +:1016F000F39402C05CE3F52E0F2D27E0AE014F5F9F +:101700005F4F0E94DA0C7981272F2970213031F048 +:10171000E1FC06C0E0FE06C060E205C06DE203C069 +:101720006BE201C060E073FF3DC0662311F084E00E +:1017300001C083E08B1510F4B81A01C0B12CE4FC91 +:101740000BC08B2DF60190E202C091938150811164 +:10175000FCCFCB0CD11CB12C662319F0D6016D93B4 +:101760006D01E2FE0AC08EE4F601808391E491836C +:101770008283F3E0CF0ED11C0CC08EE6D6018C9391 +:1017800091E611969C93119712968C93B3E0CB0E31 +:10179000D11C8B2DF60190E202C0919381508111F2 +:1017A000FCCF40C072FF45C0662311F084E001C049 +:1017B00083E08B1510F4B81A01C0B12CE4FC0BC007 +:1017C0008B2DF60190E202C0919381508111FCCFE4 +:1017D000CB0CD11CB12C662319F0F60161936F017B +:1017E000E2FE0EC089E4D6018C938EE411968C93B0 +:1017F000119786E412968C93B3E0CB0ED11C0AC0ED +:1018000089E6F60180838EE6818386E68283F3E0B3 +:10181000CF0ED11C8B2DF60190E202C09193815026 +:101820008111FCCFF601EB0DF11D10822EEF3FEF81 +:10183000ACC0A1E0611101C0A0E04A2F50E0181631 +:10184000190624F49C012F5F3F4F02C021E030E0D5 +:10185000240F351F112329F0412F50E04F5F5F4FB8 +:1018600002C040E050E0420F531F2B2D30E04217E2 +:10187000530714F4B41A01C0B12C3E2D3071E4FCAE +:101880000DC0E3FC0BC02B2DF60140E202C04193DA +:1018900021502111FCCFCB0CD11CB12CAA2319F063 +:1018A000D6016D936D0131110BC02B2DF60130E384 +:1018B00002C0319321502111FCCFCB0CD11CB12C93 +:1018C000F80E0A8140E1A42EA72274FF03C0013361 +:1018D00009F4FA941F142CF42F2D293018F028E065 +:1018E00001C021E0AC0197FF02C040E050E060E0A1 +:1018F00070E03EE2932EFC01E21BF1099F01DC0146 +:10190000A41BB50BFE013196EA0FFB1FA12FB0E01F +:10191000662477246A1A7B0A4F3F1FEF510719F498 +:10192000D6019D926D018417950754F02417350751 +:101930003CF47F01E60EF71ED70111961C9101C001 +:1019400010E3415051096F5F7F4F4615570524F052 +:10195000D6011D936D01E0CF4817590739F40633BE +:1019600020F4053319F4A11001C011E3F60111931D +:101970008B2DDF0190E202C09D9381508111FCCF3D +:10198000EB0DF11D108220E030E0C90129960FB661 +:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 +:1019A000FF90EF90DF90CF90BF90AF909F907F908F +:1019B0006F900895283008F027E03327DA01990F57 +:1019C000311D87FD916000966105710539F4326023 +:1019D0002E5F3D9330E32A95E1F708959F3F30F065 +:1019E00080387105610509F03C5F3C5F3D939130A3 +:1019F00008F08068911DDF93CF931F930F93FF92A0 +:101A0000EF92192F987F9695E92F96959695E90F65 +:101A1000FF27E255FF4F99273327EE24FF24A70124 +:101A2000E70105900894079428F4360FE71EF81E86 +:101A3000491F511D660F771F881F991F0694A1F734 +:101A40000590079428F4E70EF81E491F561FC11D84 +:101A5000770F881F991F661F0694A1F705900794BA +:101A600028F4F80E491F561FC71FD11D880F991F54 +:101A7000661F771F0694A1F70590079420F4490F7D +:101A8000561FC71FD81F990F661F771F881F069400 +:101A9000A9F784911095177041F0D695C795579581 +:101AA0004795F794E7941A95C1F7E4E5F0E0689458 +:101AB0001590159135916591959105907FE27395FB +:101AC000E118F10A430B560BC90BD009C0F7E10C22 +:101AD000F11E431F561FC91FD01D7EF4703311F431 +:101AE0008A95E6CFE894015030F0080F0AF40027F9 +:101AF000021708F4202F2395022F7A3328F079E378 +:101B00007D932A95E9F710C07D932A9589F606946E +:101B100097956795379517951794E118F10A430B38 +:101B2000560BC90BD00998F023957E9173957A33A3 +:101B300008F070E37C932013B8F77E9170617D9379 +:101B400030F0839571E37D9370E32A95E1F71124DA +:101B5000EF90FF900F911F91CF91DF91992787FD13 +:101B600090950895DC01FC01672F71917723E1F7CF +:101B7000329704C07C916D9370836291AE17BF075A +:081B8000C8F30895F894FFCFAB +:101B88001F00FC01C80080011F00F801C800800187 +:101B9800000000000000000000000000000000003D +:101BA800000000000000000000000000000000002D +:101BB8002323232320426567696E20426F6F747563 +:101BC8007020232323232323232323232323232393 +:101BD80023232323232323232323232323232323CD +:101BE80023232323232323232323230A00232054CB +:101BF800657374204F75747075740A0023205365DB +:101C08007475702054696D65720A002323204F751E +:101C18007470757420496E697420446F6E65210A6A +:101C2800002323232320456E6420426F6F74757050 +:101C3800202323232323232323232323232323236F +:101C4800232323232323232323232323232323235C +:101C58002323232323232323232323230A0023208B +:101C68005365747570204144430A002320536574FA +:101C7800757020427574746F6E0A00686F6E3D301F +:101C88003B00686F6E3D313B006D6F6E3D30006DFF +:101C98006F6E3D3100766D3D0076303D0076313D0A +:101CA80000636D3D0063303D0063313D00743D00CD +:101CB80070776D3D005561727420646F6E65210AFE +:021CC80000001A :00000001FF diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.lss b/USBLaminator/USBLaminator/Debug/USBLaminator.lss index 319bf1e..8907492 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.lss +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.lss @@ -3,50 +3,50 @@ USBLaminator.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 000015ec 00000000 00000000 00000094 2**1 + 0 .text 00001b88 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000136 00800060 000015ec 00001680 2**0 + 1 .data 00000142 00800060 00001b88 00001c1c 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 0000003c 00800196 00800196 000017b6 2**0 + 2 .bss 00000043 008001a2 008001a2 00001d5e 2**0 ALLOC - 3 .stab 00003018 00000000 00000000 000017b8 2**2 + 3 .stab 00003018 00000000 00000000 00001d60 2**2 CONTENTS, READONLY, DEBUGGING - 4 .stabstr 00000855 00000000 00000000 000047d0 2**0 + 4 .stabstr 00000855 00000000 00000000 00004d78 2**0 CONTENTS, READONLY, DEBUGGING - 5 .comment 0000002f 00000000 00000000 00005025 2**0 + 5 .comment 0000002f 00000000 00000000 000055cd 2**0 CONTENTS, READONLY - 6 .debug_aranges 000000a0 00000000 00000000 00005054 2**0 + 6 .debug_aranges 000000a8 00000000 00000000 000055fc 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_info 0000756b 00000000 00000000 000050f4 2**0 + 7 .debug_info 00008098 00000000 00000000 000056a4 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_abbrev 00000659 00000000 00000000 0000c65f 2**0 + 8 .debug_abbrev 00000682 00000000 00000000 0000d73c 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_line 00000b99 00000000 00000000 0000ccb8 2**0 + 9 .debug_line 00000cc0 00000000 00000000 0000ddbe 2**0 CONTENTS, READONLY, DEBUGGING - 10 .debug_frame 000001d8 00000000 00000000 0000d854 2**2 + 10 .debug_frame 0000021c 00000000 00000000 0000ea80 2**2 CONTENTS, READONLY, DEBUGGING - 11 .debug_str 00001945 00000000 00000000 0000da2c 2**0 + 11 .debug_str 00001a0c 00000000 00000000 0000ec9c 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_loc 00001a95 00000000 00000000 0000f371 2**0 + 12 .debug_loc 00001e5f 00000000 00000000 000106a8 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_ranges 000000d0 00000000 00000000 00010e06 2**0 + 13 .debug_ranges 000000e0 00000000 00000000 00012507 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0c 94 a8 00 jmp 0x150 ; 0x150 <__ctors_end> - 4: 0c 94 94 05 jmp 0xb28 ; 0xb28 <__vector_1> + 4: 0c 94 e1 07 jmp 0xfc2 ; 0xfc2 <__vector_1> 8: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> c: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 10: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 14: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> - 18: 0c 94 10 05 jmp 0xa20 ; 0xa20 <__vector_6> + 18: 0c 94 5d 07 jmp 0xeba ; 0xeba <__vector_6> 1c: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 20: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 24: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 28: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> - 2c: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> + 2c: 0c 94 ef 07 jmp 0xfde ; 0xfde <__vector_11> 30: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 34: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> 38: 0c 94 d0 00 jmp 0x1a0 ; 0x1a0 <__bad_interrupt> @@ -183,7 +183,7 @@ Disassembly of section .text: 14c: 3d 27 eor r19, r29 0000014e <__ctors_start>: - 14e: 09 06 cpc r0, r25 + 14e: b7 08 sbc r11, r7 00000150 <__ctors_end>: 150: 11 24 eor r1, r1 @@ -197,18 +197,18 @@ Disassembly of section .text: 15c: 11 e0 ldi r17, 0x01 ; 1 15e: a0 e6 ldi r26, 0x60 ; 96 160: b0 e0 ldi r27, 0x00 ; 0 - 162: ec ee ldi r30, 0xEC ; 236 - 164: f5 e1 ldi r31, 0x15 ; 21 + 162: e8 e8 ldi r30, 0x88 ; 136 + 164: fb e1 ldi r31, 0x1B ; 27 166: 02 c0 rjmp .+4 ; 0x16c <__do_copy_data+0x10> 168: 05 90 lpm r0, Z+ 16a: 0d 92 st X+, r0 - 16c: a6 39 cpi r26, 0x96 ; 150 + 16c: a2 3a cpi r26, 0xA2 ; 162 16e: b1 07 cpc r27, r17 170: d9 f7 brne .-10 ; 0x168 <__do_copy_data+0xc> 00000172 <__do_clear_bss>: 172: 21 e0 ldi r18, 0x01 ; 1 - 174: a6 e9 ldi r26, 0x96 ; 150 + 174: a2 ea ldi r26, 0xA2 ; 162 176: b1 e0 ldi r27, 0x01 ; 1 178: 01 c0 rjmp .+2 ; 0x17c <.do_clear_bss_start> @@ -216,7 +216,7 @@ Disassembly of section .text: 17a: 1d 92 st X+, r1 0000017c <.do_clear_bss_start>: - 17c: a2 3d cpi r26, 0xD2 ; 210 + 17c: a5 3e cpi r26, 0xE5 ; 229 17e: b2 07 cpc r27, r18 180: e1 f7 brne .-8 ; 0x17a <.do_clear_bss_loop> @@ -227,12 +227,12 @@ Disassembly of section .text: 188: 04 c0 rjmp .+8 ; 0x192 <__do_global_ctors+0x10> 18a: 22 97 sbiw r28, 0x02 ; 2 18c: fe 01 movw r30, r28 - 18e: 0e 94 40 08 call 0x1080 ; 0x1080 <__tablejump__> + 18e: 0e 94 22 0b call 0x1644 ; 0x1644 <__tablejump__> 192: ce 34 cpi r28, 0x4E ; 78 194: d1 07 cpc r29, r17 196: c9 f7 brne .-14 ; 0x18a <__do_global_ctors+0x8> 198: 0e 94 dd 01 call 0x3ba ; 0x3ba
- 19c: 0c 94 f4 0a jmp 0x15e8 ; 0x15e8 <_exit> + 19c: 0c 94 c2 0d jmp 0x1b84 ; 0x1b84 <_exit> 000001a0 <__bad_interrupt>: 1a0: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> @@ -366,8 +366,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 1ca: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -416,8 +416,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 1e4: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -924,8 +924,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 2da: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -1011,8 +1011,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 318: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -1059,8 +1059,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 32e: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -1107,8 +1107,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 344: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -1189,8 +1189,8 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } 372: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); @@ -1306,2412 +1306,1654 @@ int main(void) 3bc: df 93 push r29 3be: cd b7 in r28, 0x3d ; 61 3c0: de b7 in r29, 0x3e ; 62 - 3c2: ab 97 sbiw r28, 0x2b ; 43 - 3c4: 0f b6 in r0, 0x3f ; 63 - 3c6: f8 94 cli - 3c8: de bf out 0x3e, r29 ; 62 - 3ca: 0f be out 0x3f, r0 ; 63 - 3cc: cd bf out 0x3d, r28 ; 61 + 3c2: c3 5a subi r28, 0xA3 ; 163 + 3c4: d1 09 sbc r29, r1 + 3c6: 0f b6 in r0, 0x3f ; 63 + 3c8: f8 94 cli + 3ca: de bf out 0x3e, r29 ; 62 + 3cc: 0f be out 0x3f, r0 ; 63 + 3ce: cd bf out 0x3d, r28 ; 61 setup(); - 3ce: 0e 94 d2 00 call 0x1a4 ; 0x1a4 <_Z5setupv> + 3d0: 0e 94 d2 00 call 0x1a4 ; 0x1a4 <_Z5setupv> int16_t target_temp = 20; - 3d2: 24 e1 ldi r18, 0x14 ; 20 - 3d4: 30 e0 ldi r19, 0x00 ; 0 - 3d6: 39 a7 std Y+41, r19 ; 0x29 - 3d8: 28 a7 std Y+40, r18 ; 0x28 + int8_t target_motor = 20; + float pwm_value = 0; + uint16_t v0a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + 3d4: 88 e2 ldi r24, 0x28 ; 40 + 3d6: fe 01 movw r30, r28 + 3d8: b9 96 adiw r30, 0x29 ; 41 + 3da: df 01 movw r26, r30 + 3dc: 28 2f mov r18, r24 + 3de: 1d 92 st X+, r1 + 3e0: 2a 95 dec r18 + 3e2: e9 f7 brne .-6 ; 0x3de + uint16_t v1a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + 3e4: fe 01 movw r30, r28 + 3e6: 31 96 adiw r30, 0x01 ; 1 + 3e8: df 01 movw r26, r30 + 3ea: 1d 92 st X+, r1 + 3ec: 8a 95 dec r24 + 3ee: e9 f7 brne .-6 ; 0x3ea + uint8_t p = 0; + 3f0: c9 56 subi r28, 0x69 ; 105 + 3f2: df 4f sbci r29, 0xFF ; 255 + 3f4: 18 82 st Y, r1 + 3f6: c7 59 subi r28, 0x97 ; 151 + 3f8: d0 40 sbci r29, 0x00 ; 0 + +int main(void) +{ + setup(); + int16_t target_temp = 20; + int8_t target_motor = 20; + 3fa: b4 e1 ldi r27, 0x14 ; 20 + 3fc: ca 56 subi r28, 0x6A ; 106 + 3fe: df 4f sbci r29, 0xFF ; 255 + 400: b8 83 st Y, r27 + 402: c6 59 subi r28, 0x96 ; 150 + 404: d0 40 sbci r29, 0x00 ; 0 +} + +int main(void) +{ + setup(); + int16_t target_temp = 20; + 406: e4 e1 ldi r30, 0x14 ; 20 + 408: f0 e0 ldi r31, 0x00 ; 0 + 40a: cc 56 subi r28, 0x6C ; 108 + 40c: df 4f sbci r29, 0xFF ; 255 + 40e: f9 83 std Y+1, r31 ; 0x01 + 410: e8 83 st Y, r30 + 412: c4 59 subi r28, 0x94 ; 148 + 414: d0 40 sbci r29, 0x00 ; 0 + uint16_t v0a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t v1a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint8_t p = 0; + while(1) + { + v0a[p] = a.get(0); + 416: 9e 01 movw r18, r28 + 418: 2f 5f subi r18, 0xFF ; 255 + 41a: 3f 4f sbci r19, 0xFF ; 255 + 41c: c8 57 subi r28, 0x78 ; 120 + 41e: df 4f sbci r29, 0xFF ; 255 + 420: 39 83 std Y+1, r19 ; 0x01 + 422: 28 83 st Y, r18 + 424: c8 58 subi r28, 0x88 ; 136 + 426: d0 40 sbci r29, 0x00 ; 0 + 428: ce 55 subi r28, 0x5E ; 94 + 42a: df 4f sbci r29, 0xFF ; 255 + 42c: 28 83 st Y, r18 + 42e: c2 5a subi r28, 0xA2 ; 162 + 430: d0 40 sbci r29, 0x00 ; 0 + 432: cd 55 subi r28, 0x5D ; 93 + 434: df 4f sbci r29, 0xFF ; 255 + 436: 38 83 st Y, r19 + 438: c3 5a subi r28, 0xA3 ; 163 + 43a: d0 40 sbci r29, 0x00 ; 0 + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + 43c: 0f 2e mov r0, r31 + 43e: f9 e2 ldi r31, 0x29 ; 41 + 440: af 2e mov r10, r31 + 442: b1 2c mov r11, r1 + 444: f0 2d mov r31, r0 + 446: ac 0e add r10, r28 + 448: bd 1e adc r11, r29 + 44a: 38 e2 ldi r19, 0x28 ; 40 + 44c: a3 0e add r10, r19 + 44e: b1 1c adc r11, r1 + uint16_t v0a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t v1a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint8_t p = 0; + while(1) + { + v0a[p] = a.get(0); + 450: c9 56 subi r28, 0x69 ; 105 + 452: df 4f sbci r29, 0xFF ; 255 + 454: 88 81 ld r24, Y + 456: c7 59 subi r28, 0x97 ; 151 + 458: d0 40 sbci r29, 0x00 ; 0 + 45a: 48 2f mov r20, r24 + 45c: 50 e0 ldi r21, 0x00 ; 0 _delay_ms(100); } uint16_t get(uint8_t pin) { ADMUX &= ~((1< - 3ea: 00 00 nop + 468: 95 e3 ldi r25, 0x35 ; 53 + 46a: 9a 95 dec r25 + 46c: f1 f7 brne .-4 ; 0x46a <__stack+0xb> + 46e: 00 00 nop //ADMUX = 0; _delay_us(10); ADCSRA |= (1< + 472: 34 9b sbis 0x06, 4 ; 6 + 474: fe cf rjmp .-4 ; 0x472 <__stack+0x13> //ADCSRA |= (1< - 404: 00 00 nop + 496: 38 9a sbi 0x07, 0 ; 7 + 498: b5 e3 ldi r27, 0x35 ; 53 + 49a: ba 95 dec r27 + 49c: f1 f7 brne .-4 ; 0x49a <__stack+0x3b> + 49e: 00 00 nop //ADMUX = 0; _delay_us(10); ADCSRA |= (1< + 4a2: 34 9b sbis 0x06, 4 ; 6 + 4a4: fe cf rjmp .-4 ; 0x4a2 <__stack+0x43> //ADCSRA |= (1< + { + v0s += v0a[i]; + v1s += v1a[i]; + } + uint16_t v0 = v0s/20; + 4f6: ad ec ldi r26, 0xCD ; 205 + 4f8: bc ec ldi r27, 0xCC ; 204 + 4fa: 0e 94 00 0b call 0x1600 ; 0x1600 <__umulhisi3> + 4fe: 7c 01 movw r14, r24 + 500: f6 94 lsr r15 + 502: e7 94 ror r14 + 504: f6 94 lsr r15 + 506: e7 94 ror r14 + 508: f6 94 lsr r15 + 50a: e7 94 ror r14 + 50c: f6 94 lsr r15 + 50e: e7 94 ror r14 + uint16_t v1 = v1s/20; + 510: 98 01 movw r18, r16 + 512: 0e 94 00 0b call 0x1600 ; 0x1600 <__umulhisi3> + 516: 6c 01 movw r12, r24 + 518: d6 94 lsr r13 + 51a: c7 94 ror r12 + 51c: d6 94 lsr r13 + 51e: c7 94 ror r12 + 520: d6 94 lsr r13 + 522: c7 94 ror r12 + 524: d6 94 lsr r13 + 526: c7 94 ror r12 + p = (p + 1) % 20; + 528: ca 01 movw r24, r20 + 52a: 01 96 adiw r24, 0x01 ; 1 + 52c: 64 e1 ldi r22, 0x14 ; 20 + 52e: 70 e0 ldi r23, 0x00 ; 0 + 530: 0e 94 ec 0a call 0x15d8 ; 0x15d8 <__divmodhi4> + 534: c9 56 subi r28, 0x69 ; 105 + 536: df 4f sbci r29, 0xFF ; 255 + 538: 88 83 st Y, r24 + 53a: c7 59 subi r28, 0x97 ; 151 + 53c: d0 40 sbci r29, 0x00 ; 0 if(v0 > 1000 || v1 > 1000 || v0 < 5 || v1 < 5) { - 410: 99 ee ldi r25, 0xE9 ; 233 - 412: a9 16 cp r10, r25 - 414: 93 e0 ldi r25, 0x03 ; 3 - 416: b9 06 cpc r11, r25 - 418: 68 f4 brcc .+26 ; 0x434 - 41a: e9 ee ldi r30, 0xE9 ; 233 - 41c: 8e 16 cp r8, r30 - 41e: e3 e0 ldi r30, 0x03 ; 3 - 420: 9e 06 cpc r9, r30 - 422: 40 f4 brcc .+16 ; 0x434 - 424: f5 e0 ldi r31, 0x05 ; 5 - 426: af 16 cp r10, r31 - 428: b1 04 cpc r11, r1 - 42a: 20 f0 brcs .+8 ; 0x434 - 42c: 25 e0 ldi r18, 0x05 ; 5 - 42e: 82 16 cp r8, r18 - 430: 91 04 cpc r9, r1 - 432: 78 f4 brcc .+30 ; 0x452 + 53e: 39 ee ldi r19, 0xE9 ; 233 + 540: e3 16 cp r14, r19 + 542: 33 e0 ldi r19, 0x03 ; 3 + 544: f3 06 cpc r15, r19 + 546: 68 f4 brcc .+26 ; 0x562 <__stack+0x103> + 548: 89 ee ldi r24, 0xE9 ; 233 + 54a: c8 16 cp r12, r24 + 54c: 83 e0 ldi r24, 0x03 ; 3 + 54e: d8 06 cpc r13, r24 + 550: 40 f4 brcc .+16 ; 0x562 <__stack+0x103> + 552: 95 e0 ldi r25, 0x05 ; 5 + 554: e9 16 cp r14, r25 + 556: f1 04 cpc r15, r1 + 558: 20 f0 brcs .+8 ; 0x562 <__stack+0x103> + 55a: a5 e0 ldi r26, 0x05 ; 5 + 55c: ca 16 cp r12, r26 + 55e: d1 04 cpc r13, r1 + 560: 68 f4 brcc .+26 ; 0x57c <__stack+0x11d> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - 434: c4 9a sbi 0x18, 4 ; 24 + 562: c4 9a sbi 0x18, 4 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - 436: bc 9a sbi 0x17, 4 ; 23 + 564: bc 9a sbi 0x17, 4 ; 23 } } //out1::toggle(); } void stop() { pwm[0] = 0; pwm[1] = 0; pwm[2] = 0; pwm[3] = 0; pwm[4] = 0; pwm[5] = 0; pwm[6] = 0; - 438: 10 92 cc 01 sts 0x01CC, r1 - 43c: 10 92 cd 01 sts 0x01CD, r1 - 440: 10 92 ce 01 sts 0x01CE, r1 - 444: 10 92 cf 01 sts 0x01CF, r1 - 448: 10 92 d0 01 sts 0x01D0, r1 - 44c: 10 92 d1 01 sts 0x01D1, r1 - 450: ff cf rjmp .-2 ; 0x450 + 566: 10 92 e0 01 sts 0x01E0, r1 + 56a: 10 92 e1 01 sts 0x01E1, r1 + 56e: 10 92 e2 01 sts 0x01E2, r1 + 572: 10 92 e3 01 sts 0x01E3, r1 + 576: 10 92 e4 01 sts 0x01E4, r1 + 57a: ff cf rjmp .-2 ; 0x57a <__stack+0x11b> } float convert(uint16_t v, uint8_t pin) { float c1 = this->table[pin][0]; - 452: e7 e9 ldi r30, 0x97 ; 151 - 454: f1 e0 ldi r31, 0x01 ; 1 - 456: 60 81 ld r22, Z - 458: 71 81 ldd r23, Z+1 ; 0x01 - 45a: 80 e0 ldi r24, 0x00 ; 0 - 45c: 90 e0 ldi r25, 0x00 ; 0 - 45e: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 462: 6a a3 std Y+34, r22 ; 0x22 - 464: 7b a3 std Y+35, r23 ; 0x23 - 466: 8c a3 std Y+36, r24 ; 0x24 - 468: 9d a3 std Y+37, r25 ; 0x25 + 57c: e3 ea ldi r30, 0xA3 ; 163 + 57e: f1 e0 ldi r31, 0x01 ; 1 + 580: 60 81 ld r22, Z + 582: 71 81 ldd r23, Z+1 ; 0x01 + 584: 80 e0 ldi r24, 0x00 ; 0 + 586: 90 e0 ldi r25, 0x00 ; 0 + 588: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 58c: 36 2e mov r3, r22 + 58e: 27 2e mov r2, r23 + 590: c6 57 subi r28, 0x76 ; 118 + 592: df 4f sbci r29, 0xFF ; 255 + 594: 88 83 st Y, r24 + 596: ca 58 subi r28, 0x8A ; 138 + 598: d0 40 sbci r29, 0x00 ; 0 + 59a: c5 57 subi r28, 0x75 ; 117 + 59c: df 4f sbci r29, 0xFF ; 255 + 59e: 98 83 st Y, r25 + 5a0: cb 58 subi r28, 0x8B ; 139 + 5a2: d0 40 sbci r29, 0x00 ; 0 float v1 = this->table[pin][1]; - 46a: e9 e9 ldi r30, 0x99 ; 153 - 46c: f1 e0 ldi r31, 0x01 ; 1 - 46e: 60 81 ld r22, Z - 470: 71 81 ldd r23, Z+1 ; 0x01 - 472: 80 e0 ldi r24, 0x00 ; 0 - 474: 90 e0 ldi r25, 0x00 ; 0 - 476: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 47a: 26 2e mov r2, r22 - 47c: 37 2e mov r3, r23 - 47e: 08 2f mov r16, r24 - 480: 19 2f mov r17, r25 + 5a4: a5 ea ldi r26, 0xA5 ; 165 + 5a6: b1 e0 ldi r27, 0x01 ; 1 + 5a8: 6d 91 ld r22, X+ + 5aa: 7c 91 ld r23, X + 5ac: 80 e0 ldi r24, 0x00 ; 0 + 5ae: 90 e0 ldi r25, 0x00 ; 0 + 5b0: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 5b4: 06 2f mov r16, r22 + 5b6: 17 2f mov r17, r23 + 5b8: 98 2e mov r9, r24 + 5ba: 89 2e mov r8, r25 float c2 = this->table[pin][2]; - 482: eb e9 ldi r30, 0x9B ; 155 - 484: f1 e0 ldi r31, 0x01 ; 1 - 486: 60 81 ld r22, Z - 488: 71 81 ldd r23, Z+1 ; 0x01 - 48a: 80 e0 ldi r24, 0x00 ; 0 - 48c: 90 e0 ldi r25, 0x00 ; 0 - 48e: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 492: 9b 01 movw r18, r22 - 494: ac 01 movw r20, r24 + 5bc: e7 ea ldi r30, 0xA7 ; 167 + 5be: f1 e0 ldi r31, 0x01 ; 1 + 5c0: 60 81 ld r22, Z + 5c2: 71 81 ldd r23, Z+1 ; 0x01 + 5c4: 80 e0 ldi r24, 0x00 ; 0 + 5c6: 90 e0 ldi r25, 0x00 ; 0 + 5c8: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 5cc: 9b 01 movw r18, r22 + 5ce: ac 01 movw r20, r24 float v2 = this->table[pin][3]; float m = ((c1 - c2) / (v1 - v2)); - 496: ba a1 ldd r27, Y+34 ; 0x22 - 498: ab a1 ldd r26, Y+35 ; 0x23 - 49a: fc a1 ldd r31, Y+36 ; 0x24 - 49c: ed a1 ldd r30, Y+37 ; 0x25 - 49e: 6b 2f mov r22, r27 - 4a0: 7a 2f mov r23, r26 - 4a2: 8f 2f mov r24, r31 - 4a4: 9e 2f mov r25, r30 - 4a6: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> - 4aa: 6b 01 movw r12, r22 - 4ac: 7c 01 movw r14, r24 + 5d0: c6 57 subi r28, 0x76 ; 118 + 5d2: df 4f sbci r29, 0xFF ; 255 + 5d4: f8 81 ld r31, Y + 5d6: ca 58 subi r28, 0x8A ; 138 + 5d8: d0 40 sbci r29, 0x00 ; 0 + 5da: c5 57 subi r28, 0x75 ; 117 + 5dc: df 4f sbci r29, 0xFF ; 255 + 5de: e8 81 ld r30, Y + 5e0: cb 58 subi r28, 0x8B ; 139 + 5e2: d0 40 sbci r29, 0x00 ; 0 + 5e4: 63 2d mov r22, r3 + 5e6: 72 2d mov r23, r2 + 5e8: 8f 2f mov r24, r31 + 5ea: 9e 2f mov r25, r30 + 5ec: 0e 94 d6 08 call 0x11ac ; 0x11ac <__subsf3> + 5f0: 2b 01 movw r4, r22 + 5f2: 3c 01 movw r6, r24 float convert(uint16_t v, uint8_t pin) { float c1 = this->table[pin][0]; float v1 = this->table[pin][1]; float c2 = this->table[pin][2]; float v2 = this->table[pin][3]; - 4ae: ed e9 ldi r30, 0x9D ; 157 - 4b0: f1 e0 ldi r31, 0x01 ; 1 - 4b2: 60 81 ld r22, Z - 4b4: 71 81 ldd r23, Z+1 ; 0x01 - 4b6: 80 e0 ldi r24, 0x00 ; 0 - 4b8: 90 e0 ldi r25, 0x00 ; 0 - 4ba: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 4be: 9b 01 movw r18, r22 - 4c0: ac 01 movw r20, r24 + 5f4: 60 91 a9 01 lds r22, 0x01A9 + 5f8: 70 91 aa 01 lds r23, 0x01AA + 5fc: 80 e0 ldi r24, 0x00 ; 0 + 5fe: 90 e0 ldi r25, 0x00 ; 0 + 600: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 604: 9b 01 movw r18, r22 + 606: ac 01 movw r20, r24 float m = ((c1 - c2) / (v1 - v2)); - 4c2: 62 2d mov r22, r2 - 4c4: 73 2d mov r23, r3 - 4c6: 80 2f mov r24, r16 - 4c8: 91 2f mov r25, r17 - 4ca: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> - 4ce: 9b 01 movw r18, r22 - 4d0: ac 01 movw r20, r24 - 4d2: c7 01 movw r24, r14 - 4d4: b6 01 movw r22, r12 - 4d6: 0e 94 91 06 call 0xd22 ; 0xd22 <__divsf3> - 4da: d6 2e mov r13, r22 - 4dc: c7 2e mov r12, r23 - 4de: e8 2e mov r14, r24 - 4e0: f9 2e mov r15, r25 - 4e2: 46 2e mov r4, r22 - 4e4: 57 2e mov r5, r23 - 4e6: 68 2e mov r6, r24 - 4e8: 79 2e mov r7, r25 + 608: 60 2f mov r22, r16 + 60a: 71 2f mov r23, r17 + 60c: 89 2d mov r24, r9 + 60e: 98 2d mov r25, r8 + 610: 0e 94 d6 08 call 0x11ac ; 0x11ac <__subsf3> + 614: 9b 01 movw r18, r22 + 616: ac 01 movw r20, r24 + 618: c3 01 movw r24, r6 + 61a: b2 01 movw r22, r4 + 61c: 0e 94 3f 09 call 0x127e ; 0x127e <__divsf3> + 620: 56 2e mov r5, r22 + 622: 47 2e mov r4, r23 + 624: 68 2e mov r6, r24 + 626: 79 2e mov r7, r25 + 628: 86 2f mov r24, r22 + 62a: 94 2d mov r25, r4 + 62c: a6 2d mov r26, r6 + 62e: b7 2d mov r27, r7 + 630: c4 57 subi r28, 0x74 ; 116 + 632: df 4f sbci r29, 0xFF ; 255 + 634: 88 83 st Y, r24 + 636: 99 83 std Y+1, r25 ; 0x01 + 638: aa 83 std Y+2, r26 ; 0x02 + 63a: bb 83 std Y+3, r27 ; 0x03 + 63c: cc 58 subi r28, 0x8C ; 140 + 63e: d0 40 sbci r29, 0x00 ; 0 return (m * (float)v) + (-m * v1) + c1; - 4ea: b5 01 movw r22, r10 - 4ec: 80 e0 ldi r24, 0x00 ; 0 - 4ee: 90 e0 ldi r25, 0x00 ; 0 - 4f0: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 4f4: 9b 01 movw r18, r22 - 4f6: ac 01 movw r20, r24 - 4f8: 6d 2d mov r22, r13 - 4fa: 7c 2d mov r23, r12 - 4fc: 8e 2d mov r24, r14 - 4fe: 9f 2d mov r25, r15 - 500: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 504: 6b 01 movw r12, r22 - 506: 7c 01 movw r14, r24 - 508: a3 01 movw r20, r6 - 50a: 92 01 movw r18, r4 - 50c: 50 58 subi r21, 0x80 ; 128 - 50e: 62 2d mov r22, r2 - 510: 73 2d mov r23, r3 - 512: 80 2f mov r24, r16 - 514: 91 2f mov r25, r17 - 516: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 51a: 9b 01 movw r18, r22 - 51c: ac 01 movw r20, r24 - 51e: c7 01 movw r24, r14 - 520: b6 01 movw r22, r12 - 522: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> - 526: 9b 01 movw r18, r22 - 528: ac 01 movw r20, r24 - 52a: ba a1 ldd r27, Y+34 ; 0x22 - 52c: ab a1 ldd r26, Y+35 ; 0x23 - 52e: fc a1 ldd r31, Y+36 ; 0x24 - 530: ed a1 ldd r30, Y+37 ; 0x25 - 532: 6b 2f mov r22, r27 - 534: 7a 2f mov r23, r26 - 536: 8f 2f mov r24, r31 - 538: 9e 2f mov r25, r30 - 53a: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> - 53e: 6a a3 std Y+34, r22 ; 0x22 - 540: 7b a3 std Y+35, r23 ; 0x23 - 542: 8c a3 std Y+36, r24 ; 0x24 - 544: 9d a3 std Y+37, r25 ; 0x25 + 640: b7 01 movw r22, r14 + 642: 80 e0 ldi r24, 0x00 ; 0 + 644: 90 e0 ldi r25, 0x00 ; 0 + 646: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 64a: 9b 01 movw r18, r22 + 64c: ac 01 movw r20, r24 + 64e: 65 2d mov r22, r5 + 650: 74 2d mov r23, r4 + 652: 86 2d mov r24, r6 + 654: 97 2d mov r25, r7 + 656: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + 65a: 2b 01 movw r4, r22 + 65c: 3c 01 movw r6, r24 + 65e: c4 57 subi r28, 0x74 ; 116 + 660: df 4f sbci r29, 0xFF ; 255 + 662: 28 81 ld r18, Y + 664: 39 81 ldd r19, Y+1 ; 0x01 + 666: 4a 81 ldd r20, Y+2 ; 0x02 + 668: 5b 81 ldd r21, Y+3 ; 0x03 + 66a: cc 58 subi r28, 0x8C ; 140 + 66c: d0 40 sbci r29, 0x00 ; 0 + 66e: 50 58 subi r21, 0x80 ; 128 + 670: 60 2f mov r22, r16 + 672: 71 2f mov r23, r17 + 674: 89 2d mov r24, r9 + 676: 98 2d mov r25, r8 + 678: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + 67c: 9b 01 movw r18, r22 + 67e: ac 01 movw r20, r24 + 680: c3 01 movw r24, r6 + 682: b2 01 movw r22, r4 + 684: 0e 94 d7 08 call 0x11ae ; 0x11ae <__addsf3> + 688: 9b 01 movw r18, r22 + 68a: ac 01 movw r20, r24 + 68c: c6 57 subi r28, 0x76 ; 118 + 68e: df 4f sbci r29, 0xFF ; 255 + 690: f8 81 ld r31, Y + 692: ca 58 subi r28, 0x8A ; 138 + 694: d0 40 sbci r29, 0x00 ; 0 + 696: c5 57 subi r28, 0x75 ; 117 + 698: df 4f sbci r29, 0xFF ; 255 + 69a: e8 81 ld r30, Y + 69c: cb 58 subi r28, 0x8B ; 139 + 69e: d0 40 sbci r29, 0x00 ; 0 + 6a0: 63 2d mov r22, r3 + 6a2: 72 2d mov r23, r2 + 6a4: 8f 2f mov r24, r31 + 6a6: 9e 2f mov r25, r30 + 6a8: 0e 94 d7 08 call 0x11ae ; 0x11ae <__addsf3> + 6ac: c4 57 subi r28, 0x74 ; 116 + 6ae: df 4f sbci r29, 0xFF ; 255 + 6b0: 68 83 st Y, r22 + 6b2: cc 58 subi r28, 0x8C ; 140 + 6b4: d0 40 sbci r29, 0x00 ; 0 + 6b6: c8 56 subi r28, 0x68 ; 104 + 6b8: df 4f sbci r29, 0xFF ; 255 + 6ba: 78 83 st Y, r23 + 6bc: c8 59 subi r28, 0x98 ; 152 + 6be: d0 40 sbci r29, 0x00 ; 0 + 6c0: c7 56 subi r28, 0x67 ; 103 + 6c2: df 4f sbci r29, 0xFF ; 255 + 6c4: 88 83 st Y, r24 + 6c6: c9 59 subi r28, 0x99 ; 153 + 6c8: d0 40 sbci r29, 0x00 ; 0 + 6ca: c6 56 subi r28, 0x66 ; 102 + 6cc: df 4f sbci r29, 0xFF ; 255 + 6ce: 98 83 st Y, r25 + 6d0: ca 59 subi r28, 0x9A ; 154 + 6d2: d0 40 sbci r29, 0x00 ; 0 loop_until_bit_is_set(ADCSRA, ADIF); //ADCSRA |= (1<table[pin][0]; - 546: ef e9 ldi r30, 0x9F ; 159 - 548: f1 e0 ldi r31, 0x01 ; 1 - 54a: 60 81 ld r22, Z - 54c: 71 81 ldd r23, Z+1 ; 0x01 - 54e: 80 e0 ldi r24, 0x00 ; 0 - 550: 90 e0 ldi r25, 0x00 ; 0 - 552: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 556: 6e a3 std Y+38, r22 ; 0x26 - 558: 7f a3 std Y+39, r23 ; 0x27 - 55a: 8a a7 std Y+42, r24 ; 0x2a - 55c: 9b a7 std Y+43, r25 ; 0x2b + 6d4: 60 91 ab 01 lds r22, 0x01AB + 6d8: 70 91 ac 01 lds r23, 0x01AC + 6dc: 80 e0 ldi r24, 0x00 ; 0 + 6de: 90 e0 ldi r25, 0x00 ; 0 + 6e0: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 6e4: 36 2e mov r3, r22 + 6e6: 27 2e mov r2, r23 + 6e8: c6 57 subi r28, 0x76 ; 118 + 6ea: df 4f sbci r29, 0xFF ; 255 + 6ec: 88 83 st Y, r24 + 6ee: ca 58 subi r28, 0x8A ; 138 + 6f0: d0 40 sbci r29, 0x00 ; 0 + 6f2: c5 57 subi r28, 0x75 ; 117 + 6f4: df 4f sbci r29, 0xFF ; 255 + 6f6: 98 83 st Y, r25 + 6f8: cb 58 subi r28, 0x8B ; 139 + 6fa: d0 40 sbci r29, 0x00 ; 0 float v1 = this->table[pin][1]; - 55e: e1 ea ldi r30, 0xA1 ; 161 - 560: f1 e0 ldi r31, 0x01 ; 1 - 562: 60 81 ld r22, Z - 564: 71 81 ldd r23, Z+1 ; 0x01 - 566: 80 e0 ldi r24, 0x00 ; 0 - 568: 90 e0 ldi r25, 0x00 ; 0 - 56a: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 56e: 26 2e mov r2, r22 - 570: 37 2e mov r3, r23 - 572: 08 2f mov r16, r24 - 574: 19 2f mov r17, r25 + 6fc: 60 91 ad 01 lds r22, 0x01AD + 700: 70 91 ae 01 lds r23, 0x01AE + 704: 80 e0 ldi r24, 0x00 ; 0 + 706: 90 e0 ldi r25, 0x00 ; 0 + 708: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 70c: 06 2f mov r16, r22 + 70e: 17 2f mov r17, r23 + 710: 98 2e mov r9, r24 + 712: 89 2e mov r8, r25 float c2 = this->table[pin][2]; - 576: e3 ea ldi r30, 0xA3 ; 163 - 578: f1 e0 ldi r31, 0x01 ; 1 - 57a: 60 81 ld r22, Z - 57c: 71 81 ldd r23, Z+1 ; 0x01 - 57e: 80 e0 ldi r24, 0x00 ; 0 - 580: 90 e0 ldi r25, 0x00 ; 0 - 582: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 586: 9b 01 movw r18, r22 - 588: ac 01 movw r20, r24 + 714: 60 91 af 01 lds r22, 0x01AF + 718: 70 91 b0 01 lds r23, 0x01B0 + 71c: 80 e0 ldi r24, 0x00 ; 0 + 71e: 90 e0 ldi r25, 0x00 ; 0 + 720: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 724: 9b 01 movw r18, r22 + 726: ac 01 movw r20, r24 float v2 = this->table[pin][3]; float m = ((c1 - c2) / (v1 - v2)); - 58a: be a1 ldd r27, Y+38 ; 0x26 - 58c: af a1 ldd r26, Y+39 ; 0x27 - 58e: fa a5 ldd r31, Y+42 ; 0x2a - 590: eb a5 ldd r30, Y+43 ; 0x2b - 592: 6b 2f mov r22, r27 - 594: 7a 2f mov r23, r26 - 596: 8f 2f mov r24, r31 - 598: 9e 2f mov r25, r30 - 59a: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> - 59e: 6b 01 movw r12, r22 - 5a0: 7c 01 movw r14, r24 + 728: c6 57 subi r28, 0x76 ; 118 + 72a: df 4f sbci r29, 0xFF ; 255 + 72c: f8 81 ld r31, Y + 72e: ca 58 subi r28, 0x8A ; 138 + 730: d0 40 sbci r29, 0x00 ; 0 + 732: c5 57 subi r28, 0x75 ; 117 + 734: df 4f sbci r29, 0xFF ; 255 + 736: e8 81 ld r30, Y + 738: cb 58 subi r28, 0x8B ; 139 + 73a: d0 40 sbci r29, 0x00 ; 0 + 73c: 63 2d mov r22, r3 + 73e: 72 2d mov r23, r2 + 740: 8f 2f mov r24, r31 + 742: 9e 2f mov r25, r30 + 744: 0e 94 d6 08 call 0x11ac ; 0x11ac <__subsf3> + 748: 2b 01 movw r4, r22 + 74a: 3c 01 movw r6, r24 float convert(uint16_t v, uint8_t pin) { float c1 = this->table[pin][0]; float v1 = this->table[pin][1]; float c2 = this->table[pin][2]; float v2 = this->table[pin][3]; - 5a2: e5 ea ldi r30, 0xA5 ; 165 - 5a4: f1 e0 ldi r31, 0x01 ; 1 - 5a6: 60 81 ld r22, Z - 5a8: 71 81 ldd r23, Z+1 ; 0x01 - 5aa: 80 e0 ldi r24, 0x00 ; 0 - 5ac: 90 e0 ldi r25, 0x00 ; 0 - 5ae: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 5b2: 9b 01 movw r18, r22 - 5b4: ac 01 movw r20, r24 + 74c: 60 91 b1 01 lds r22, 0x01B1 + 750: 70 91 b2 01 lds r23, 0x01B2 + 754: 80 e0 ldi r24, 0x00 ; 0 + 756: 90 e0 ldi r25, 0x00 ; 0 + 758: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 75c: 9b 01 movw r18, r22 + 75e: ac 01 movw r20, r24 float m = ((c1 - c2) / (v1 - v2)); - 5b6: 62 2d mov r22, r2 - 5b8: 73 2d mov r23, r3 - 5ba: 80 2f mov r24, r16 - 5bc: 91 2f mov r25, r17 - 5be: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> - 5c2: 9b 01 movw r18, r22 - 5c4: ac 01 movw r20, r24 - 5c6: c7 01 movw r24, r14 - 5c8: b6 01 movw r22, r12 - 5ca: 0e 94 91 06 call 0xd22 ; 0xd22 <__divsf3> - 5ce: d6 2e mov r13, r22 - 5d0: c7 2e mov r12, r23 - 5d2: e8 2e mov r14, r24 - 5d4: f9 2e mov r15, r25 - 5d6: 46 2e mov r4, r22 - 5d8: 57 2e mov r5, r23 - 5da: 68 2e mov r6, r24 - 5dc: 79 2e mov r7, r25 + 760: 60 2f mov r22, r16 + 762: 71 2f mov r23, r17 + 764: 89 2d mov r24, r9 + 766: 98 2d mov r25, r8 + 768: 0e 94 d6 08 call 0x11ac ; 0x11ac <__subsf3> + 76c: 9b 01 movw r18, r22 + 76e: ac 01 movw r20, r24 + 770: c3 01 movw r24, r6 + 772: b2 01 movw r22, r4 + 774: 0e 94 3f 09 call 0x127e ; 0x127e <__divsf3> + 778: 56 2e mov r5, r22 + 77a: 47 2e mov r4, r23 + 77c: 68 2e mov r6, r24 + 77e: 79 2e mov r7, r25 + 780: 86 2f mov r24, r22 + 782: 94 2d mov r25, r4 + 784: a6 2d mov r26, r6 + 786: b7 2d mov r27, r7 + 788: c0 57 subi r28, 0x70 ; 112 + 78a: df 4f sbci r29, 0xFF ; 255 + 78c: 88 83 st Y, r24 + 78e: 99 83 std Y+1, r25 ; 0x01 + 790: aa 83 std Y+2, r26 ; 0x02 + 792: bb 83 std Y+3, r27 ; 0x03 + 794: c0 59 subi r28, 0x90 ; 144 + 796: d0 40 sbci r29, 0x00 ; 0 return (m * (float)v) + (-m * v1) + c1; - 5de: b4 01 movw r22, r8 - 5e0: 80 e0 ldi r24, 0x00 ; 0 - 5e2: 90 e0 ldi r25, 0x00 ; 0 - 5e4: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 5e8: 9b 01 movw r18, r22 - 5ea: ac 01 movw r20, r24 - 5ec: 6d 2d mov r22, r13 - 5ee: 7c 2d mov r23, r12 - 5f0: 8e 2d mov r24, r14 - 5f2: 9f 2d mov r25, r15 - 5f4: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 5f8: 6b 01 movw r12, r22 - 5fa: 7c 01 movw r14, r24 - 5fc: a3 01 movw r20, r6 - 5fe: 92 01 movw r18, r4 - 600: 50 58 subi r21, 0x80 ; 128 - 602: 62 2d mov r22, r2 - 604: 73 2d mov r23, r3 - 606: 80 2f mov r24, r16 - 608: 91 2f mov r25, r17 - 60a: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 60e: 9b 01 movw r18, r22 - 610: ac 01 movw r20, r24 - 612: c7 01 movw r24, r14 - 614: b6 01 movw r22, r12 - 616: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> - 61a: 9b 01 movw r18, r22 - 61c: ac 01 movw r20, r24 - 61e: be a1 ldd r27, Y+38 ; 0x26 - 620: af a1 ldd r26, Y+39 ; 0x27 - 622: fa a5 ldd r31, Y+42 ; 0x2a - 624: eb a5 ldd r30, Y+43 ; 0x2b - 626: 6b 2f mov r22, r27 - 628: 7a 2f mov r23, r26 - 62a: 8f 2f mov r24, r31 - 62c: 9e 2f mov r25, r30 - 62e: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> - 632: 6e a3 std Y+38, r22 ; 0x26 - 634: 7f a3 std Y+39, r23 ; 0x27 - 636: d8 2e mov r13, r24 - 638: c9 2e mov r12, r25 + 798: b6 01 movw r22, r12 + 79a: 80 e0 ldi r24, 0x00 ; 0 + 79c: 90 e0 ldi r25, 0x00 ; 0 + 79e: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + 7a2: 9b 01 movw r18, r22 + 7a4: ac 01 movw r20, r24 + 7a6: 65 2d mov r22, r5 + 7a8: 74 2d mov r23, r4 + 7aa: 86 2d mov r24, r6 + 7ac: 97 2d mov r25, r7 + 7ae: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + 7b2: 2b 01 movw r4, r22 + 7b4: 3c 01 movw r6, r24 + 7b6: c0 57 subi r28, 0x70 ; 112 + 7b8: df 4f sbci r29, 0xFF ; 255 + 7ba: 28 81 ld r18, Y + 7bc: 39 81 ldd r19, Y+1 ; 0x01 + 7be: 4a 81 ldd r20, Y+2 ; 0x02 + 7c0: 5b 81 ldd r21, Y+3 ; 0x03 + 7c2: c0 59 subi r28, 0x90 ; 144 + 7c4: d0 40 sbci r29, 0x00 ; 0 + 7c6: 50 58 subi r21, 0x80 ; 128 + 7c8: 60 2f mov r22, r16 + 7ca: 71 2f mov r23, r17 + 7cc: 89 2d mov r24, r9 + 7ce: 98 2d mov r25, r8 + 7d0: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + 7d4: 9b 01 movw r18, r22 + 7d6: ac 01 movw r20, r24 + 7d8: c3 01 movw r24, r6 + 7da: b2 01 movw r22, r4 + 7dc: 0e 94 d7 08 call 0x11ae ; 0x11ae <__addsf3> + 7e0: 9b 01 movw r18, r22 + 7e2: ac 01 movw r20, r24 + 7e4: c6 57 subi r28, 0x76 ; 118 + 7e6: df 4f sbci r29, 0xFF ; 255 + 7e8: f8 81 ld r31, Y + 7ea: ca 58 subi r28, 0x8A ; 138 + 7ec: d0 40 sbci r29, 0x00 ; 0 + 7ee: c5 57 subi r28, 0x75 ; 117 + 7f0: df 4f sbci r29, 0xFF ; 255 + 7f2: e8 81 ld r30, Y + 7f4: cb 58 subi r28, 0x8B ; 139 + 7f6: d0 40 sbci r29, 0x00 ; 0 + 7f8: 63 2d mov r22, r3 + 7fa: 72 2d mov r23, r2 + 7fc: 8f 2f mov r24, r31 + 7fe: 9e 2f mov r25, r30 + 800: 0e 94 d7 08 call 0x11ae ; 0x11ae <__addsf3> + 804: c0 57 subi r28, 0x70 ; 112 + 806: df 4f sbci r29, 0xFF ; 255 + 808: 68 83 st Y, r22 + 80a: c0 59 subi r28, 0x90 ; 144 + 80c: d0 40 sbci r29, 0x00 ; 0 + 80e: c5 56 subi r28, 0x65 ; 101 + 810: df 4f sbci r29, 0xFF ; 255 + 812: 78 83 st Y, r23 + 814: cb 59 subi r28, 0x9B ; 155 + 816: d0 40 sbci r29, 0x00 ; 0 + 818: c4 56 subi r28, 0x64 ; 100 + 81a: df 4f sbci r29, 0xFF ; 255 + 81c: 88 83 st Y, r24 + 81e: cc 59 subi r28, 0x9C ; 156 + 820: d0 40 sbci r29, 0x00 ; 0 + 822: c3 56 subi r28, 0x63 ; 99 + 824: df 4f sbci r29, 0xFF ; 255 + 826: 98 83 st Y, r25 + 828: cd 59 subi r28, 0x9D ; 157 + 82a: d0 40 sbci r29, 0x00 ; 0 o.stop(); while(true) {}; } float t0 = a.convert(v0, 0); float t1 = a.convert(v1, 1); float tm = (t0+t1)/2; - 63a: 76 2f mov r23, r22 - 63c: 6f a1 ldd r22, Y+39 ; 0x27 - 63e: 27 2f mov r18, r23 - 640: 36 2f mov r19, r22 - 642: 4d 2d mov r20, r13 - 644: 5c 2d mov r21, r12 - 646: ba a1 ldd r27, Y+34 ; 0x22 - 648: ab a1 ldd r26, Y+35 ; 0x23 - 64a: fc a1 ldd r31, Y+36 ; 0x24 - 64c: ed a1 ldd r30, Y+37 ; 0x25 - 64e: 6b 2f mov r22, r27 - 650: 7a 2f mov r23, r26 - 652: 8f 2f mov r24, r31 - 654: 9e 2f mov r25, r30 - 656: 0e 94 29 06 call 0xc52 ; 0xc52 <__addsf3> - 65a: 20 e0 ldi r18, 0x00 ; 0 - 65c: 30 e0 ldi r19, 0x00 ; 0 - 65e: 40 e0 ldi r20, 0x00 ; 0 - 660: 5f e3 ldi r21, 0x3F ; 63 - 662: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 666: 76 2e mov r7, r22 - 668: 67 2e mov r6, r23 - 66a: 58 2e mov r5, r24 - 66c: 49 2e mov r4, r25 + 82c: 76 2f mov r23, r22 + 82e: c5 56 subi r28, 0x65 ; 101 + 830: df 4f sbci r29, 0xFF ; 255 + 832: 68 81 ld r22, Y + 834: cb 59 subi r28, 0x9B ; 155 + 836: d0 40 sbci r29, 0x00 ; 0 + 838: 98 2f mov r25, r24 + 83a: c3 56 subi r28, 0x63 ; 99 + 83c: df 4f sbci r29, 0xFF ; 255 + 83e: 88 81 ld r24, Y + 840: cd 59 subi r28, 0x9D ; 157 + 842: d0 40 sbci r29, 0x00 ; 0 + 844: 27 2f mov r18, r23 + 846: 36 2f mov r19, r22 + 848: 49 2f mov r20, r25 + 84a: 58 2f mov r21, r24 + 84c: c4 57 subi r28, 0x74 ; 116 + 84e: df 4f sbci r29, 0xFF ; 255 + 850: b8 81 ld r27, Y + 852: cc 58 subi r28, 0x8C ; 140 + 854: d0 40 sbci r29, 0x00 ; 0 + 856: c8 56 subi r28, 0x68 ; 104 + 858: df 4f sbci r29, 0xFF ; 255 + 85a: a8 81 ld r26, Y + 85c: c8 59 subi r28, 0x98 ; 152 + 85e: d0 40 sbci r29, 0x00 ; 0 + 860: c7 56 subi r28, 0x67 ; 103 + 862: df 4f sbci r29, 0xFF ; 255 + 864: f8 81 ld r31, Y + 866: c9 59 subi r28, 0x99 ; 153 + 868: d0 40 sbci r29, 0x00 ; 0 + 86a: c6 56 subi r28, 0x66 ; 102 + 86c: df 4f sbci r29, 0xFF ; 255 + 86e: e8 81 ld r30, Y + 870: ca 59 subi r28, 0x9A ; 154 + 872: d0 40 sbci r29, 0x00 ; 0 + 874: 6b 2f mov r22, r27 + 876: 7a 2f mov r23, r26 + 878: 8f 2f mov r24, r31 + 87a: 9e 2f mov r25, r30 + 87c: 0e 94 d7 08 call 0x11ae ; 0x11ae <__addsf3> + 880: 20 e0 ldi r18, 0x00 ; 0 + 882: 30 e0 ldi r19, 0x00 ; 0 + 884: 40 e0 ldi r20, 0x00 ; 0 + 886: 5f e3 ldi r21, 0x3F ; 63 + 888: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + 88c: c2 56 subi r28, 0x62 ; 98 + 88e: df 4f sbci r29, 0xFF ; 255 + 890: 68 83 st Y, r22 + 892: ce 59 subi r28, 0x9E ; 158 + 894: d0 40 sbci r29, 0x00 ; 0 + 896: c1 56 subi r28, 0x61 ; 97 + 898: df 4f sbci r29, 0xFF ; 255 + 89a: 78 83 st Y, r23 + 89c: cf 59 subi r28, 0x9F ; 159 + 89e: d0 40 sbci r29, 0x00 ; 0 + 8a0: c0 56 subi r28, 0x60 ; 96 + 8a2: df 4f sbci r29, 0xFF ; 255 + 8a4: 88 83 st Y, r24 + 8a6: c0 5a subi r28, 0xA0 ; 160 + 8a8: d0 40 sbci r29, 0x00 ; 0 + 8aa: cf 55 subi r28, 0x5F ; 95 + 8ac: df 4f sbci r29, 0xFF ; 255 + 8ae: 98 83 st Y, r25 + 8b0: c1 5a subi r28, 0xA1 ; 161 + 8b2: d0 40 sbci r29, 0x00 ; 0 } void send(uint8_t wert) { uart_putchar(wert); } int16_t readTemp() { int16_t t = this->temp; - 66e: e8 ec ldi r30, 0xC8 ; 200 - 670: f1 e0 ldi r31, 0x01 ; 1 - 672: 80 81 ld r24, Z - 674: 91 81 ldd r25, Z+1 ; 0x01 + 8b4: e4 ed ldi r30, 0xD4 ; 212 + 8b6: f1 e0 ldi r31, 0x01 ; 1 + 8b8: 80 81 ld r24, Z + 8ba: 91 81 ldd r25, Z+1 ; 0x01 this->temp = -1; - 676: 2f ef ldi r18, 0xFF ; 255 - 678: 3f ef ldi r19, 0xFF ; 255 - 67a: 31 83 std Z+1, r19 ; 0x01 - 67c: 20 83 st Z, r18 + 8bc: 2f ef ldi r18, 0xFF ; 255 + 8be: 3f ef ldi r19, 0xFF ; 255 + 8c0: 31 83 std Z+1, r19 ; 0x01 + 8c2: 20 83 st Z, r18 int16_t temp = r.readTemp(); if(temp != -1) { - 67e: 8f 3f cpi r24, 0xFF ; 255 - 680: 3f ef ldi r19, 0xFF ; 255 - 682: 93 07 cpc r25, r19 - 684: 11 f0 breq .+4 ; 0x68a <__stack+0x22b> + 8c4: 8f 3f cpi r24, 0xFF ; 255 + 8c6: ff ef ldi r31, 0xFF ; 255 + 8c8: 9f 07 cpc r25, r31 + 8ca: 31 f0 breq .+12 ; 0x8d8 <__stack+0x479> target_temp = temp; - 686: 99 a7 std Y+41, r25 ; 0x29 - 688: 88 a7 std Y+40, r24 ; 0x28 + 8cc: cc 56 subi r28, 0x6C ; 108 + 8ce: df 4f sbci r29, 0xFF ; 255 + 8d0: 99 83 std Y+1, r25 ; 0x01 + 8d2: 88 83 st Y, r24 + 8d4: c4 59 subi r28, 0x94 ; 148 + 8d6: d0 40 sbci r29, 0x00 ; 0 + return t; + } + int8_t readMotor() { + int8_t m = this->motor; + 8d8: e6 ed ldi r30, 0xD6 ; 214 + 8da: f1 e0 ldi r31, 0x01 ; 1 + 8dc: 80 81 ld r24, Z + this->motor = -1; + 8de: 9f ef ldi r25, 0xFF ; 255 + 8e0: 90 83 st Z, r25 + } + int8_t motor = r.readMotor(); + if(motor != -1) { + 8e2: 8f 3f cpi r24, 0xFF ; 255 + 8e4: 29 f0 breq .+10 ; 0x8f0 <__stack+0x491> + target_motor = motor; + 8e6: ca 56 subi r28, 0x6A ; 106 + 8e8: df 4f sbci r29, 0xFF ; 255 + 8ea: 88 83 st Y, r24 + 8ec: c6 59 subi r28, 0x96 ; 150 + 8ee: d0 40 sbci r29, 0x00 ; 0 } pwm_value = (target_temp+5) - tm; - 68a: 68 a5 ldd r22, Y+40 ; 0x28 - 68c: 79 a5 ldd r23, Y+41 ; 0x29 - 68e: 6b 5f subi r22, 0xFB ; 251 - 690: 7f 4f sbci r23, 0xFF ; 255 - 692: 88 27 eor r24, r24 - 694: 77 fd sbrc r23, 7 - 696: 80 95 com r24 - 698: 98 2f mov r25, r24 - 69a: 0e 94 27 07 call 0xe4e ; 0xe4e <__floatsisf> - 69e: 27 2d mov r18, r7 - 6a0: 36 2d mov r19, r6 - 6a2: 45 2d mov r20, r5 - 6a4: 54 2d mov r21, r4 - 6a6: 0e 94 28 06 call 0xc50 ; 0xc50 <__subsf3> - 6aa: f6 2e mov r15, r22 - 6ac: e7 2e mov r14, r23 - 6ae: 38 2e mov r3, r24 - 6b0: 29 2e mov r2, r25 + 8f0: cc 56 subi r28, 0x6C ; 108 + 8f2: df 4f sbci r29, 0xFF ; 255 + 8f4: 68 81 ld r22, Y + 8f6: 79 81 ldd r23, Y+1 ; 0x01 + 8f8: c4 59 subi r28, 0x94 ; 148 + 8fa: d0 40 sbci r29, 0x00 ; 0 + 8fc: 6b 5f subi r22, 0xFB ; 251 + 8fe: 7f 4f sbci r23, 0xFF ; 255 + 900: 88 27 eor r24, r24 + 902: 77 fd sbrc r23, 7 + 904: 80 95 com r24 + 906: 98 2f mov r25, r24 + 908: 0e 94 d5 09 call 0x13aa ; 0x13aa <__floatsisf> + 90c: c2 56 subi r28, 0x62 ; 98 + 90e: df 4f sbci r29, 0xFF ; 255 + 910: b8 81 ld r27, Y + 912: ce 59 subi r28, 0x9E ; 158 + 914: d0 40 sbci r29, 0x00 ; 0 + 916: c1 56 subi r28, 0x61 ; 97 + 918: df 4f sbci r29, 0xFF ; 255 + 91a: a8 81 ld r26, Y + 91c: cf 59 subi r28, 0x9F ; 159 + 91e: d0 40 sbci r29, 0x00 ; 0 + 920: c0 56 subi r28, 0x60 ; 96 + 922: df 4f sbci r29, 0xFF ; 255 + 924: f8 81 ld r31, Y + 926: c0 5a subi r28, 0xA0 ; 160 + 928: d0 40 sbci r29, 0x00 ; 0 + 92a: cf 55 subi r28, 0x5F ; 95 + 92c: df 4f sbci r29, 0xFF ; 255 + 92e: e8 81 ld r30, Y + 930: c1 5a subi r28, 0xA1 ; 161 + 932: d0 40 sbci r29, 0x00 ; 0 + 934: 2b 2f mov r18, r27 + 936: 3a 2f mov r19, r26 + 938: 4f 2f mov r20, r31 + 93a: 5e 2f mov r21, r30 + 93c: 0e 94 d6 08 call 0x11ac ; 0x11ac <__subsf3> + 940: 96 2e mov r9, r22 + 942: 87 2e mov r8, r23 + 944: 78 2e mov r7, r24 + 946: 69 2e mov r6, r25 void setPwm(uint8_t ausg, float val) { if(ausg < 0) ausg = 0; if(ausg > 5) ausg = 5; if(val < 0) - 6b2: 20 e0 ldi r18, 0x00 ; 0 - 6b4: 30 e0 ldi r19, 0x00 ; 0 - 6b6: a9 01 movw r20, r18 - 6b8: 0e 94 8d 06 call 0xd1a ; 0xd1a <__cmpsf2> - 6bc: 88 23 and r24, r24 - 6be: 0c f4 brge .+2 ; 0x6c2 <__stack+0x263> - 6c0: 99 c1 rjmp .+818 ; 0x9f4 <__stack+0x595> + 948: 20 e0 ldi r18, 0x00 ; 0 + 94a: 30 e0 ldi r19, 0x00 ; 0 + 94c: a9 01 movw r20, r18 + 94e: 0e 94 3b 09 call 0x1276 ; 0x1276 <__cmpsf2> + 952: 88 23 and r24, r24 + 954: 8c f0 brlt .+34 ; 0x978 <__stack+0x519> val = 0; if(val > 20) - 6c2: 20 e0 ldi r18, 0x00 ; 0 - 6c4: 30 e0 ldi r19, 0x00 ; 0 - 6c6: 40 ea ldi r20, 0xA0 ; 160 - 6c8: 51 e4 ldi r21, 0x41 ; 65 - 6ca: 6f 2d mov r22, r15 - 6cc: 7e 2d mov r23, r14 - 6ce: 83 2d mov r24, r3 - 6d0: 92 2d mov r25, r2 - 6d2: 0e 94 d7 07 call 0xfae ; 0xfae <__gesf2> - 6d6: 18 16 cp r1, r24 - 6d8: 0c f4 brge .+2 ; 0x6dc <__stack+0x27d> - 6da: 91 c1 rjmp .+802 ; 0x9fe <__stack+0x59f> - 6dc: 3f 2d mov r19, r15 - 6de: 2e 2d mov r18, r14 - 6e0: 93 2d mov r25, r3 - 6e2: 82 2d mov r24, r2 - 6e4: 90 c1 rjmp .+800 ; 0xa06 <__stack+0x5a7> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 6e6: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 6e8: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 6ea: 5d 9b sbis 0x0b, 5 ; 11 - 6ec: fe cf rjmp .-4 ; 0x6ea <__stack+0x28b> - UDR = c; - 6ee: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 6f0: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 6f2: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 6f4: 81 91 ld r24, Z+ - 6f6: 81 11 cpse r24, r1 - 6f8: f6 cf rjmp .-20 ; 0x6e6 <__stack+0x287> - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - 6fa: 8e 01 movw r16, r28 - 6fc: 09 5e subi r16, 0xE9 ; 233 - 6fe: 1f 4f sbci r17, 0xFF ; 255 - 700: 22 e0 ldi r18, 0x02 ; 2 - 702: 4a e0 ldi r20, 0x0A ; 10 - 704: 6f 2d mov r22, r15 - 706: 7e 2d mov r23, r14 - 708: 83 2d mov r24, r3 - 70a: 92 2d mov r25, r2 - 70c: 0e 94 44 08 call 0x1088 ; 0x1088 - 710: fc 01 movw r30, r24 - 712: 20 81 ld r18, Z - 714: 22 23 and r18, r18 - 716: 59 f0 breq .+22 ; 0x72e <__stack+0x2cf> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 718: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 71a: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 71c: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 71e: 5d 9b sbis 0x0b, 5 ; 11 - 720: fe cf rjmp .-4 ; 0x71e <__stack+0x2bf> - UDR = c; - 722: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 724: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 726: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 728: 21 91 ld r18, Z+ - 72a: 21 11 cpse r18, r1 - 72c: f6 cf rjmp .-20 ; 0x71a <__stack+0x2bb> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 72e: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 730: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 732: 5d 9b sbis 0x0b, 5 ; 11 - 734: fe cf rjmp .-4 ; 0x732 <__stack+0x2d3> - UDR = c; - 736: 8b e3 ldi r24, 0x3B ; 59 - 738: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 73a: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 73c: bb 9a sbi 0x17, 3 ; 23 - 73e: 0f 2e mov r0, r31 - 740: fa e6 ldi r31, 0x6A ; 106 - 742: ef 2e mov r14, r31 - 744: f1 e0 ldi r31, 0x01 ; 1 - 746: ff 2e mov r15, r31 - 748: f0 2d mov r31, r0 - 74a: f7 01 movw r30, r14 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 74c: 83 e6 ldi r24, 0x63 ; 99 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 74e: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 750: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 752: 5d 9b sbis 0x0b, 5 ; 11 - 754: fe cf rjmp .-4 ; 0x752 <__stack+0x2f3> - UDR = c; - 756: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 758: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 75a: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 75c: 81 91 ld r24, Z+ - 75e: 81 11 cpse r24, r1 - 760: f6 cf rjmp .-20 ; 0x74e <__stack+0x2ef> - target_temp = temp; - } - pwm_value = (target_temp+5) - tm; - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - 762: b4 01 movw r22, r8 - 764: 6a 0d add r22, r10 - 766: 7b 1d adc r23, r11 - 768: 80 e0 ldi r24, 0x00 ; 0 - 76a: 90 e0 ldi r25, 0x00 ; 0 - 76c: 0e 94 25 07 call 0xe4a ; 0xe4a <__floatunsisf> - 770: 20 e0 ldi r18, 0x00 ; 0 - 772: 30 e0 ldi r19, 0x00 ; 0 - 774: 40 e0 ldi r20, 0x00 ; 0 - 776: 5f e3 ldi r21, 0x3F ; 63 - 778: 0e 94 db 07 call 0xfb6 ; 0xfb6 <__mulsf3> - 77c: 8e 01 movw r16, r28 - 77e: 04 5f subi r16, 0xF4 ; 244 - 780: 1f 4f sbci r17, 0xFF ; 255 - 782: 22 e0 ldi r18, 0x02 ; 2 - 784: 4a e0 ldi r20, 0x0A ; 10 - 786: 0e 94 44 08 call 0x1088 ; 0x1088 - 78a: fc 01 movw r30, r24 - 78c: 20 81 ld r18, Z - 78e: 22 23 and r18, r18 - 790: 59 f0 breq .+22 ; 0x7a8 <__stack+0x349> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 792: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 794: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 796: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 798: 5d 9b sbis 0x0b, 5 ; 11 - 79a: fe cf rjmp .-4 ; 0x798 <__stack+0x339> - UDR = c; - 79c: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 79e: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7a0: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 7a2: 21 91 ld r18, Z+ - 7a4: 21 11 cpse r18, r1 - 7a6: f6 cf rjmp .-20 ; 0x794 <__stack+0x335> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7a8: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7aa: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7ac: 5d 9b sbis 0x0b, 5 ; 11 - 7ae: fe cf rjmp .-4 ; 0x7ac <__stack+0x34d> - UDR = c; - 7b0: 8b e3 ldi r24, 0x3B ; 59 - 7b2: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7b4: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7b6: bb 9a sbi 0x17, 3 ; 23 - 7b8: ee e6 ldi r30, 0x6E ; 110 - 7ba: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 7bc: 86 e7 ldi r24, 0x76 ; 118 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7be: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7c0: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7c2: 5d 9b sbis 0x0b, 5 ; 11 - 7c4: fe cf rjmp .-4 ; 0x7c2 <__stack+0x363> - UDR = c; - 7c6: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7c8: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7ca: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 7cc: 81 91 ld r24, Z+ - 7ce: 81 11 cpse r24, r1 - 7d0: f6 cf rjmp .-20 ; 0x7be <__stack+0x35f> - } - pwm_value = (target_temp+5) - tm; - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - 7d2: 4a e0 ldi r20, 0x0A ; 10 - 7d4: 50 e0 ldi r21, 0x00 ; 0 - 7d6: be 01 movw r22, r28 - 7d8: 64 5f subi r22, 0xF4 ; 244 - 7da: 7f 4f sbci r23, 0xFF ; 255 - 7dc: c5 01 movw r24, r10 - 7de: 0e 94 65 08 call 0x10ca ; 0x10ca - 7e2: fc 01 movw r30, r24 - 7e4: 20 81 ld r18, Z - 7e6: 22 23 and r18, r18 - 7e8: 59 f0 breq .+22 ; 0x800 <__stack+0x3a1> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 7ea: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7ec: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7ee: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 7f0: 5d 9b sbis 0x0b, 5 ; 11 - 7f2: fe cf rjmp .-4 ; 0x7f0 <__stack+0x391> - UDR = c; - 7f4: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 7f6: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 7f8: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 7fa: 21 91 ld r18, Z+ - 7fc: 21 11 cpse r18, r1 - 7fe: f6 cf rjmp .-20 ; 0x7ec <__stack+0x38d> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 800: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 802: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 804: 5d 9b sbis 0x0b, 5 ; 11 - 806: fe cf rjmp .-4 ; 0x804 <__stack+0x3a5> - UDR = c; - 808: 8b e3 ldi r24, 0x3B ; 59 - 80a: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 80c: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 80e: bb 9a sbi 0x17, 3 ; 23 - 810: e2 e7 ldi r30, 0x72 ; 114 - 812: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 814: 86 e7 ldi r24, 0x76 ; 118 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 816: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 818: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 81a: 5d 9b sbis 0x0b, 5 ; 11 - 81c: fe cf rjmp .-4 ; 0x81a <__stack+0x3bb> - UDR = c; - 81e: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 820: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 822: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 824: 81 91 ld r24, Z+ - 826: 81 11 cpse r24, r1 - 828: f6 cf rjmp .-20 ; 0x816 <__stack+0x3b7> - pwm_value = (target_temp+5) - tm; - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - 82a: 4a e0 ldi r20, 0x0A ; 10 - 82c: 50 e0 ldi r21, 0x00 ; 0 - 82e: be 01 movw r22, r28 - 830: 64 5f subi r22, 0xF4 ; 244 - 832: 7f 4f sbci r23, 0xFF ; 255 - 834: c4 01 movw r24, r8 - 836: 0e 94 65 08 call 0x10ca ; 0x10ca - 83a: fc 01 movw r30, r24 - 83c: 20 81 ld r18, Z - 83e: 22 23 and r18, r18 - 840: 59 f0 breq .+22 ; 0x858 <__stack+0x3f9> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 842: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 844: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 846: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 848: 5d 9b sbis 0x0b, 5 ; 11 - 84a: fe cf rjmp .-4 ; 0x848 <__stack+0x3e9> - UDR = c; - 84c: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 84e: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 850: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 852: 21 91 ld r18, Z+ - 854: 21 11 cpse r18, r1 - 856: f6 cf rjmp .-20 ; 0x844 <__stack+0x3e5> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 858: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 85a: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 85c: 5d 9b sbis 0x0b, 5 ; 11 - 85e: fe cf rjmp .-4 ; 0x85c <__stack+0x3fd> - UDR = c; - 860: 8b e3 ldi r24, 0x3B ; 59 - 862: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 864: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 866: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 868: 83 e6 ldi r24, 0x63 ; 99 - 86a: f7 01 movw r30, r14 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 86c: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 86e: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 870: 5d 9b sbis 0x0b, 5 ; 11 - 872: fe cf rjmp .-4 ; 0x870 <__stack+0x411> - UDR = c; - 874: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 876: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 878: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 87a: 81 91 ld r24, Z+ - 87c: 81 11 cpse r24, r1 - 87e: f6 cf rjmp .-20 ; 0x86c <__stack+0x40d> - o.setPwm(0, pwm_value); - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - 880: 8e 01 movw r16, r28 - 882: 0f 5f subi r16, 0xFF ; 255 - 884: 1f 4f sbci r17, 0xFF ; 255 - 886: 22 e0 ldi r18, 0x02 ; 2 - 888: 4a e0 ldi r20, 0x0A ; 10 - 88a: 67 2d mov r22, r7 - 88c: 76 2d mov r23, r6 - 88e: 85 2d mov r24, r5 - 890: 94 2d mov r25, r4 - 892: 0e 94 44 08 call 0x1088 ; 0x1088 - 896: fc 01 movw r30, r24 - 898: 20 81 ld r18, Z - 89a: 22 23 and r18, r18 - 89c: 59 f0 breq .+22 ; 0x8b4 <__stack+0x455> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 89e: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8a0: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8a2: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8a4: 5d 9b sbis 0x0b, 5 ; 11 - 8a6: fe cf rjmp .-4 ; 0x8a4 <__stack+0x445> - UDR = c; - 8a8: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8aa: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8ac: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 8ae: 21 91 ld r18, Z+ - 8b0: 21 11 cpse r18, r1 - 8b2: f6 cf rjmp .-20 ; 0x8a0 <__stack+0x441> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8b4: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8b6: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8b8: 5d 9b sbis 0x0b, 5 ; 11 - 8ba: fe cf rjmp .-4 ; 0x8b8 <__stack+0x459> - UDR = c; - 8bc: 8b e3 ldi r24, 0x3B ; 59 - 8be: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8c0: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8c2: bb 9a sbi 0x17, 3 ; 23 - 8c4: e6 e7 ldi r30, 0x76 ; 118 - 8c6: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 8c8: 83 e6 ldi r24, 0x63 ; 99 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8ca: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8cc: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 8ce: 5d 9b sbis 0x0b, 5 ; 11 - 8d0: fe cf rjmp .-4 ; 0x8ce <__stack+0x46f> - UDR = c; - 8d2: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 8d4: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 8d6: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 8d8: 81 91 ld r24, Z+ - 8da: 81 11 cpse r24, r1 - 8dc: f6 cf rjmp .-20 ; 0x8ca <__stack+0x46b> - char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - 8de: 8e 01 movw r16, r28 - 8e0: 0f 5f subi r16, 0xFF ; 255 - 8e2: 1f 4f sbci r17, 0xFF ; 255 - 8e4: 22 e0 ldi r18, 0x02 ; 2 - 8e6: 4a e0 ldi r20, 0x0A ; 10 - 8e8: fa a1 ldd r31, Y+34 ; 0x22 - 8ea: eb a1 ldd r30, Y+35 ; 0x23 - 8ec: 5c a1 ldd r21, Y+36 ; 0x24 - 8ee: 3d a1 ldd r19, Y+37 ; 0x25 - 8f0: 6f 2f mov r22, r31 - 8f2: 7e 2f mov r23, r30 - 8f4: 85 2f mov r24, r21 - 8f6: 93 2f mov r25, r19 - 8f8: 0e 94 44 08 call 0x1088 ; 0x1088 - 8fc: fc 01 movw r30, r24 - 8fe: 20 81 ld r18, Z - 900: 22 23 and r18, r18 - 902: 59 f0 breq .+22 ; 0x91a <__stack+0x4bb> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 904: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 906: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 908: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 90a: 5d 9b sbis 0x0b, 5 ; 11 - 90c: fe cf rjmp .-4 ; 0x90a <__stack+0x4ab> - UDR = c; - 90e: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 910: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 912: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 914: 21 91 ld r18, Z+ - 916: 21 11 cpse r18, r1 - 918: f6 cf rjmp .-20 ; 0x906 <__stack+0x4a7> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 91a: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 91c: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 91e: 5d 9b sbis 0x0b, 5 ; 11 - 920: fe cf rjmp .-4 ; 0x91e <__stack+0x4bf> - UDR = c; - 922: 8b e3 ldi r24, 0x3B ; 59 - 924: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 926: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 928: bb 9a sbi 0x17, 3 ; 23 - 92a: ea e7 ldi r30, 0x7A ; 122 - 92c: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 92e: 83 e6 ldi r24, 0x63 ; 99 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 930: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 932: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 934: 5d 9b sbis 0x0b, 5 ; 11 - 936: fe cf rjmp .-4 ; 0x934 <__stack+0x4d5> - UDR = c; - 938: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 93a: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 93c: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 93e: 81 91 ld r24, Z+ - 940: 81 11 cpse r24, r1 - 942: f6 cf rjmp .-20 ; 0x930 <__stack+0x4d1> - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); - r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); - r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); - char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); - r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); - 944: 8e 01 movw r16, r28 - 946: 0f 5f subi r16, 0xFF ; 255 - 948: 1f 4f sbci r17, 0xFF ; 255 - 94a: 22 e0 ldi r18, 0x02 ; 2 - 94c: 4a e0 ldi r20, 0x0A ; 10 - 94e: fe a1 ldd r31, Y+38 ; 0x26 - 950: ef a1 ldd r30, Y+39 ; 0x27 - 952: 6f 2f mov r22, r31 - 954: 7e 2f mov r23, r30 - 956: 8d 2d mov r24, r13 - 958: 9c 2d mov r25, r12 - 95a: 0e 94 44 08 call 0x1088 ; 0x1088 - 95e: fc 01 movw r30, r24 - 960: 20 81 ld r18, Z - 962: 22 23 and r18, r18 - 964: 59 f0 breq .+22 ; 0x97c <__stack+0x51d> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 966: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 968: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 96a: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 96c: 5d 9b sbis 0x0b, 5 ; 11 - 96e: fe cf rjmp .-4 ; 0x96c <__stack+0x50d> - UDR = c; - 970: 2c b9 out 0x0c, r18 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 972: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 974: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 976: 21 91 ld r18, Z+ - 978: 21 11 cpse r18, r1 - 97a: f6 cf rjmp .-20 ; 0x968 <__stack+0x509> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 97c: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 97e: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 980: 5d 9b sbis 0x0b, 5 ; 11 - 982: fe cf rjmp .-4 ; 0x980 <__stack+0x521> - UDR = c; - 984: 8b e3 ldi r24, 0x3B ; 59 - 986: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 988: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 98a: bb 9a sbi 0x17, 3 ; 23 - 98c: ee e7 ldi r30, 0x7E ; 126 - 98e: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 990: 88 e6 ldi r24, 0x68 ; 104 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 992: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 994: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 996: 5d 9b sbis 0x0b, 5 ; 11 - 998: fe cf rjmp .-4 ; 0x996 <__stack+0x537> - UDR = c; - 99a: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 99c: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 99e: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 9a0: 81 91 ld r24, Z+ - 9a2: 81 11 cpse r24, r1 - 9a4: f6 cf rjmp .-20 ; 0x992 <__stack+0x533> - r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); - r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); - //temp_ziel_wert - //motor_ziel_wert - r.send((o.isOn(0)==1)?"hon=1;":"hon=0;"); - r.send((o.isOn(1)==1)?"mon=1;":"mon=0;"); - 9a6: 9a 9b sbis 0x13, 2 ; 19 - 9a8: 03 c0 rjmp .+6 ; 0x9b0 <__stack+0x551> - 9aa: e2 e6 ldi r30, 0x62 ; 98 - 9ac: f1 e0 ldi r31, 0x01 ; 1 - 9ae: 02 c0 rjmp .+4 ; 0x9b4 <__stack+0x555> - 9b0: eb e5 ldi r30, 0x5B ; 91 - 9b2: f1 e0 ldi r31, 0x01 ; 1 - 9b4: 80 81 ld r24, Z - 9b6: 88 23 and r24, r24 - 9b8: 59 f0 breq .+22 ; 0x9d0 <__stack+0x571> - l.off(l.YELLOW); - r.send("#### End Bootup ###########################################\n"); - l.on(l.GREEN); -} - -int main(void) - 9ba: 31 96 adiw r30, 0x01 ; 1 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 9bc: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 9be: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 9c0: 5d 9b sbis 0x0b, 5 ; 11 - 9c2: fe cf rjmp .-4 ; 0x9c0 <__stack+0x561> - UDR = c; - 9c4: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 9c6: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 9c8: bb 9a sbi 0x17, 3 ; 23 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - 9ca: 81 91 ld r24, Z+ - 9cc: 81 11 cpse r24, r1 - 9ce: f6 cf rjmp .-20 ; 0x9bc <__stack+0x55d> -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 9d0: c3 9a sbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 9d2: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; - UBRRL = (F_CPU / (baudrate * 16L) - 1); - } - uint8_t uart_putchar(uint8_t c) { - led.on(led.YELLOW); - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - 9d4: 5d 9b sbis 0x0b, 5 ; 11 - 9d6: fe cf rjmp .-4 ; 0x9d4 <__stack+0x575> - UDR = c; - 9d8: 8a e0 ldi r24, 0x0A ; 10 - 9da: 8c b9 out 0x0c, r24 ; 12 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - 9dc: c3 98 cbi 0x18, 3 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - 9de: bb 9a sbi 0x17, 3 ; 23 - #else - //round up by default - __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); - #endif - - __builtin_avr_delay_cycles(__ticks_dc); - 9e0: ff ef ldi r31, 0xFF ; 255 - 9e2: 21 ee ldi r18, 0xE1 ; 225 - 9e4: 34 e0 ldi r19, 0x04 ; 4 - 9e6: f1 50 subi r31, 0x01 ; 1 - 9e8: 20 40 sbci r18, 0x00 ; 0 - 9ea: 30 40 sbci r19, 0x00 ; 0 - 9ec: e1 f7 brne .-8 ; 0x9e6 <__stack+0x587> - 9ee: 00 c0 rjmp .+0 ; 0x9f0 <__stack+0x591> - 9f0: 00 00 nop -{ - setup(); - int16_t target_temp = 20; - float pwm_value = 0; - while(1) - 9f2: f3 cc rjmp .-1562 ; 0x3da + 956: 20 e0 ldi r18, 0x00 ; 0 + 958: 30 e0 ldi r19, 0x00 ; 0 + 95a: 40 ea ldi r20, 0xA0 ; 160 + 95c: 51 e4 ldi r21, 0x41 ; 65 + 95e: 69 2d mov r22, r9 + 960: 78 2d mov r23, r8 + 962: 87 2d mov r24, r7 + 964: 96 2d mov r25, r6 + 966: 0e 94 85 0a call 0x150a ; 0x150a <__gesf2> + 96a: 18 16 cp r1, r24 + 96c: 54 f0 brlt .+20 ; 0x982 <__stack+0x523> + 96e: 39 2d mov r19, r9 + 970: 28 2d mov r18, r8 + 972: 97 2d mov r25, r7 + 974: 86 2d mov r24, r6 + 976: 09 c0 rjmp .+18 ; 0x98a <__stack+0x52b> if(ausg < 0) ausg = 0; if(ausg > 5) ausg = 5; if(val < 0) val = 0; - 9f4: 30 e0 ldi r19, 0x00 ; 0 - 9f6: 20 e0 ldi r18, 0x00 ; 0 - 9f8: 90 e0 ldi r25, 0x00 ; 0 - 9fa: 80 e0 ldi r24, 0x00 ; 0 - 9fc: 04 c0 rjmp .+8 ; 0xa06 <__stack+0x5a7> + 978: 30 e0 ldi r19, 0x00 ; 0 + 97a: 20 e0 ldi r18, 0x00 ; 0 + 97c: 90 e0 ldi r25, 0x00 ; 0 + 97e: 80 e0 ldi r24, 0x00 ; 0 + 980: 04 c0 rjmp .+8 ; 0x98a <__stack+0x52b> if(val > 20) val = 20; - 9fe: 30 e0 ldi r19, 0x00 ; 0 - a00: 20 e0 ldi r18, 0x00 ; 0 - a02: 90 ea ldi r25, 0xA0 ; 160 - a04: 81 e4 ldi r24, 0x41 ; 65 + 982: 30 e0 ldi r19, 0x00 ; 0 + 984: 20 e0 ldi r18, 0x00 ; 0 + 986: 90 ea ldi r25, 0xA0 ; 160 + 988: 81 e4 ldi r24, 0x41 ; 65 this->pwm[ausg] = (uint8_t)val; - a06: 48 2f mov r20, r24 - a08: 63 2f mov r22, r19 - a0a: 72 2f mov r23, r18 - a0c: 89 2f mov r24, r25 - a0e: 94 2f mov r25, r20 - a10: 0e 94 f9 06 call 0xdf2 ; 0xdf2 <__fixunssfsi> - a14: 60 93 cb 01 sts 0x01CB, r22 - a18: e5 e8 ldi r30, 0x85 ; 133 - a1a: f1 e0 ldi r31, 0x01 ; 1 - init(); - this->led = l; - send("Uart done!\n"); - } - void send(const char *text) { - while (*text) - a1c: 80 e7 ldi r24, 0x70 ; 112 - a1e: 63 ce rjmp .-826 ; 0x6e6 <__stack+0x287> - -00000a20 <__vector_6>: - r.send("\n"); - _delay_ms(100); - } -} - -ISR(TIMER1_COMPA_vect) { - a20: 1f 92 push r1 - a22: 0f 92 push r0 - a24: 0f b6 in r0, 0x3f ; 63 - a26: 0f 92 push r0 - a28: 11 24 eor r1, r1 - a2a: 2f 93 push r18 - a2c: 3f 93 push r19 - a2e: 4f 93 push r20 - a30: 5f 93 push r21 - a32: 6f 93 push r22 - a34: 7f 93 push r23 - a36: 8f 93 push r24 - a38: 9f 93 push r25 - a3a: af 93 push r26 - a3c: bf 93 push r27 - a3e: ef 93 push r30 - a40: ff 93 push r31 + 98a: 48 2f mov r20, r24 + 98c: 63 2f mov r22, r19 + 98e: 72 2f mov r23, r18 + 990: 89 2f mov r24, r25 + 992: 94 2f mov r25, r20 + 994: 0e 94 a7 09 call 0x134e ; 0x134e <__fixunssfsi> + 998: 60 93 de 01 sts 0x01DE, r22 + o.setPwm(0, pwm_value); + o.setPwm(1, target_motor); + 99c: ca 56 subi r28, 0x6A ; 106 + 99e: df 4f sbci r29, 0xFF ; 255 + 9a0: 28 81 ld r18, Y + 9a2: c6 59 subi r28, 0x96 ; 150 + 9a4: d0 40 sbci r29, 0x00 ; 0 + 9a6: 62 2f mov r22, r18 + 9a8: 77 27 eor r23, r23 + 9aa: 67 fd sbrc r22, 7 + 9ac: 70 95 com r23 + 9ae: 87 2f mov r24, r23 + 9b0: 97 2f mov r25, r23 + 9b2: 0e 94 d5 09 call 0x13aa ; 0x13aa <__floatsisf> + 9b6: 26 2e mov r2, r22 + 9b8: 37 2e mov r3, r23 + 9ba: 08 2f mov r16, r24 + 9bc: 19 2f mov r17, r25 + 9be: 46 2e mov r4, r22 + 9c0: 57 2e mov r5, r23 + 9c2: c6 57 subi r28, 0x76 ; 118 + 9c4: df 4f sbci r29, 0xFF ; 255 + 9c6: 88 83 st Y, r24 + 9c8: ca 58 subi r28, 0x8A ; 138 + 9ca: d0 40 sbci r29, 0x00 ; 0 + 9cc: c5 57 subi r28, 0x75 ; 117 + 9ce: df 4f sbci r29, 0xFF ; 255 + 9d0: 98 83 st Y, r25 + 9d2: cb 58 subi r28, 0x8B ; 139 + 9d4: d0 40 sbci r29, 0x00 ; 0 + void setPwm(uint8_t ausg, float val) { + if(ausg < 0) + ausg = 0; if(ausg > 5) ausg = 5; - return this->pwm[ausg]; - } - void timer() { - if (this->pct++ >= 20) { - a42: 80 91 ca 01 lds r24, 0x01CA - a46: 84 31 cpi r24, 0x14 ; 20 - a48: 08 f4 brcc .+2 ; 0xa4c <__vector_6+0x2c> - a4a: 51 c0 rjmp .+162 ; 0xaee <__vector_6+0xce> - this->pct=0; - a4c: 10 92 ca 01 sts 0x01CA, r1 - a50: 51 c0 rjmp .+162 ; 0xaf4 <__vector_6+0xd4> - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - a52: 82 2f mov r24, r18 - a54: 91 91 ld r25, Z+ - a56: 6c 91 ld r22, X - a58: 96 17 cp r25, r22 - a5a: 18 f1 brcs .+70 ; 0xaa2 <__vector_6+0x82> - a5c: 99 23 and r25, r25 - a5e: 09 f1 breq .+66 ; 0xaa2 <__vector_6+0x82> - this->on((1< - a66: 66 0f add r22, r22 - a68: 77 1f adc r23, r23 - a6a: 0a 94 dec r0 - a6c: e2 f7 brpl .-8 ; 0xa66 <__vector_6+0x46> - a6e: cb 01 movw r24, r22 - if(ausg & OUT6) { - out6::make_low(); - } - } - void on(uint8_t ausg = 255) { - if(ausg & OUT1) { - a70: 60 ff sbrs r22, 0 - a72: 02 c0 rjmp .+4 ; 0xa78 <__vector_6+0x58> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a74: aa 9a sbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a76: a2 9a sbi 0x14, 2 ; 20 - out1::make_high(); - } - if(ausg & OUT2) { - a78: 81 ff sbrs r24, 1 - a7a: 02 c0 rjmp .+4 ; 0xa80 <__vector_6+0x60> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a7c: ab 9a sbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a7e: a3 9a sbi 0x14, 3 ; 20 - out2::make_high(); - } - if(ausg & OUT3) { - a80: 82 ff sbrs r24, 2 - a82: 02 c0 rjmp .+4 ; 0xa88 <__vector_6+0x68> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a84: ac 9a sbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a86: a4 9a sbi 0x14, 4 ; 20 - out3::make_high(); - } - if(ausg & OUT4) { - a88: 83 ff sbrs r24, 3 - a8a: 02 c0 rjmp .+4 ; 0xa90 <__vector_6+0x70> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a8c: ad 9a sbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a8e: a5 9a sbi 0x14, 5 ; 20 - out4::make_high(); - } - if(ausg & OUT5) { - a90: 84 ff sbrs r24, 4 - a92: 02 c0 rjmp .+4 ; 0xa98 <__vector_6+0x78> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a94: ae 9a sbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a96: a6 9a sbi 0x14, 6 ; 20 - out5::make_high(); - } - if(ausg & OUT6) { - a98: 85 ff sbrs r24, 5 - a9a: 22 c0 rjmp .+68 ; 0xae0 <__vector_6+0xc0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - a9c: af 9a sbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - a9e: a7 9a sbi 0x14, 7 ; 20 - aa0: 1f c0 rjmp .+62 ; 0xae0 <__vector_6+0xc0> - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - this->on((1<off((1< - aa6: 66 0f add r22, r22 - aa8: 77 1f adc r23, r23 - aaa: 8a 95 dec r24 - aac: e2 f7 brpl .-8 ; 0xaa6 <__vector_6+0x86> - aae: cb 01 movw r24, r22 - public: - SSR() { - init(); - } - void off(uint8_t ausg = 255) { - if(ausg & OUT1) { - ab0: 60 ff sbrs r22, 0 - ab2: 02 c0 rjmp .+4 ; 0xab8 <__vector_6+0x98> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - ab4: aa 98 cbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ab6: a2 9a sbi 0x14, 2 ; 20 - out1::make_low(); - } - if(ausg & OUT2) { - ab8: 81 ff sbrs r24, 1 - aba: 02 c0 rjmp .+4 ; 0xac0 <__vector_6+0xa0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - abc: ab 98 cbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - abe: a3 9a sbi 0x14, 3 ; 20 - out2::make_low(); - } - if(ausg & OUT3) { - ac0: 82 ff sbrs r24, 2 - ac2: 02 c0 rjmp .+4 ; 0xac8 <__vector_6+0xa8> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - ac4: ac 98 cbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ac6: a4 9a sbi 0x14, 4 ; 20 - out3::make_low(); - } - if(ausg & OUT4) { - ac8: 83 ff sbrs r24, 3 - aca: 02 c0 rjmp .+4 ; 0xad0 <__vector_6+0xb0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - acc: ad 98 cbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ace: a5 9a sbi 0x14, 5 ; 20 - out4::make_low(); - } - if(ausg & OUT5) { - ad0: 84 ff sbrs r24, 4 - ad2: 02 c0 rjmp .+4 ; 0xad8 <__vector_6+0xb8> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - ad4: ae 98 cbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ad6: a6 9a sbi 0x14, 6 ; 20 - out5::make_low(); - } - if(ausg & OUT6) { - ad8: 85 ff sbrs r24, 5 - ada: 02 c0 rjmp .+4 ; 0xae0 <__vector_6+0xc0> -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - adc: af 98 cbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - ade: a7 9a sbi 0x14, 7 ; 20 - ae0: 2f 5f subi r18, 0xFF ; 255 - ae2: 3f 4f sbci r19, 0xFF ; 255 - } - void timer() { - if (this->pct++ >= 20) { - this->pct=0; - } - for(uint8_t i = 0; i < 6; i++) { - ae4: 26 30 cpi r18, 0x06 ; 6 - ae6: 31 05 cpc r19, r1 - ae8: 09 f0 breq .+2 ; 0xaec <__vector_6+0xcc> - aea: b3 cf rjmp .-154 ; 0xa52 <__vector_6+0x32> - aec: 0c c0 rjmp .+24 ; 0xb06 <__vector_6+0xe6> - if(ausg > 5) - ausg = 5; - return this->pwm[ausg]; - } - void timer() { - if (this->pct++ >= 20) { - aee: 8f 5f subi r24, 0xFF ; 255 - af0: 80 93 ca 01 sts 0x01CA, r24 - af4: eb ec ldi r30, 0xCB ; 203 - af6: f1 e0 ldi r31, 0x01 ; 1 - af8: 20 e0 ldi r18, 0x00 ; 0 - afa: 30 e0 ldi r19, 0x00 ; 0 - this->pct=0; - } - for(uint8_t i = 0; i < 6; i++) { - if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { - afc: aa ec ldi r26, 0xCA ; 202 - afe: b1 e0 ldi r27, 0x01 ; 1 - this->on((1<off((1< - o.timer(); -} - b06: ff 91 pop r31 - b08: ef 91 pop r30 - b0a: bf 91 pop r27 - b0c: af 91 pop r26 - b0e: 9f 91 pop r25 - b10: 8f 91 pop r24 - b12: 7f 91 pop r23 - b14: 6f 91 pop r22 - b16: 5f 91 pop r21 - b18: 4f 91 pop r20 - b1a: 3f 91 pop r19 - b1c: 2f 91 pop r18 - b1e: 0f 90 pop r0 - b20: 0f be out 0x3f, r0 ; 63 - b22: 0f 90 pop r0 - b24: 1f 90 pop r1 - b26: 18 95 reti - -00000b28 <__vector_1>: - -ISR(INT0_vect) { - b28: 1f 92 push r1 - b2a: 0f 92 push r0 - b2c: 0f b6 in r0, 0x3f ; 63 - b2e: 0f 92 push r0 - b30: 11 24 eor r1, r1 - b32: 8f 93 push r24 - } - void intr() { - GIFR = (1<: -#include "hardware/pin.hpp" - -template -class SSR { - public: - SSR() { - b44: fc 01 movw r30, r24 - b46: 11 92 st Z+, r1 - b48: 86 e0 ldi r24, 0x06 ; 6 - b4a: df 01 movw r26, r30 - b4c: 1d 92 st X+, r1 - b4e: 8a 95 dec r24 - b50: e9 f7 brne .-6 ; 0xb4c <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev+0x8> - b52: a2 9a sbi 0x14, 2 ; 20 - b54: a3 9a sbi 0x14, 3 ; 20 - b56: a4 9a sbi 0x14, 4 ; 20 - b58: a5 9a sbi 0x14, 5 ; 20 - b5a: a6 9a sbi 0x14, 6 ; 20 - b5c: a7 9a sbi 0x14, 7 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b5e: aa 98 cbi 0x15, 2 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b60: a2 9a sbi 0x14, 2 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b62: ab 98 cbi 0x15, 3 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b64: a3 9a sbi 0x14, 3 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b66: ac 98 cbi 0x15, 4 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b68: a4 9a sbi 0x14, 4 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b6a: ad 98 cbi 0x15, 5 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b6c: a5 9a sbi 0x14, 5 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b6e: ae 98 cbi 0x15, 6 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b70: a6 9a sbi 0x14, 6 ; 20 -namespace avrlib { - - struct portc - { - static uint8_t port() { return PORTC; } - static void port(uint8_t v) { PORTC = v; } - b72: af 98 cbi 0x15, 7 ; 21 - - static uint8_t pin() { return PINC; } - static void pin(uint8_t v) { PINC = v; } - - static uint8_t dir() { return DDRC; } - static void dir(uint8_t v) { DDRC = v; } - b74: a7 9a sbi 0x14, 7 ; 20 - b76: 08 95 ret - -00000b78 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: -#define USART_H_ - -template -class Usart { - public: - Usart(ledclass l) { - b78: cf 93 push r28 - b7a: df 93 push r29 - b7c: 1f 92 push r1 - b7e: cd b7 in r28, 0x3d ; 61 - b80: de b7 in r29, 0x3e ; 62 - b82: 69 83 std Y+1, r22 ; 0x01 - b84: bc 9a sbi 0x17, 4 ; 23 - b86: bb 9a sbi 0x17, 3 ; 23 - b88: ba 9a sbi 0x17, 2 ; 23 + if(val < 0) + 9d6: 20 e0 ldi r18, 0x00 ; 0 + 9d8: 30 e0 ldi r19, 0x00 ; 0 + 9da: a9 01 movw r20, r18 + 9dc: 0e 94 3b 09 call 0x1276 ; 0x1276 <__cmpsf2> + 9e0: 88 23 and r24, r24 + 9e2: 0c f4 brge .+2 ; 0x9e6 <__stack+0x587> + 9e4: 39 c2 rjmp .+1138 ; 0xe58 <__stack+0x9f9> + val = 0; + if(val > 20) + 9e6: 20 e0 ldi r18, 0x00 ; 0 + 9e8: 30 e0 ldi r19, 0x00 ; 0 + 9ea: 40 ea ldi r20, 0xA0 ; 160 + 9ec: 51 e4 ldi r21, 0x41 ; 65 + 9ee: 62 2d mov r22, r2 + 9f0: 73 2d mov r23, r3 + 9f2: 80 2f mov r24, r16 + 9f4: 91 2f mov r25, r17 + 9f6: 0e 94 85 0a call 0x150a ; 0x150a <__gesf2> + 9fa: 18 16 cp r1, r24 + 9fc: 0c f4 brge .+2 ; 0xa00 <__stack+0x5a1> + 9fe: 39 c2 rjmp .+1138 ; 0xe72 <__stack+0xa13> + a00: 46 c2 rjmp .+1164 ; 0xe8e <__stack+0xa2f> namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - b8a: c4 98 cbi 0x18, 4 ; 24 + a02: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - b8c: bc 9a sbi 0x17, 4 ; 23 + a04: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + a06: 5d 9b sbis 0x0b, 5 ; 11 + a08: fe cf rjmp .-4 ; 0xa06 <__stack+0x5a7> + UDR = c; + a0a: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a0c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a0e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + a10: 81 91 ld r24, Z+ + a12: 81 11 cpse r24, r1 + a14: f6 cf rjmp .-20 ; 0xa02 <__stack+0x5a3> + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + a16: 8e 01 movw r16, r28 + a18: 03 58 subi r16, 0x83 ; 131 + a1a: 1f 4f sbci r17, 0xFF ; 255 + a1c: 22 e0 ldi r18, 0x02 ; 2 + a1e: 4a e0 ldi r20, 0x0A ; 10 + a20: 69 2d mov r22, r9 + a22: 78 2d mov r23, r8 + a24: 87 2d mov r24, r7 + a26: 96 2d mov r25, r6 + a28: 0e 94 26 0b call 0x164c ; 0x164c + a2c: dc 01 movw r26, r24 + a2e: 2c 91 ld r18, X + a30: 22 23 and r18, r18 + a32: 61 f0 breq .+24 ; 0xa4c <__stack+0x5ed> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + a34: fc 01 movw r30, r24 + a36: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a38: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a3a: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + a3c: 5d 9b sbis 0x0b, 5 ; 11 + a3e: fe cf rjmp .-4 ; 0xa3c <__stack+0x5dd> + UDR = c; + a40: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a42: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a44: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + a46: 21 91 ld r18, Z+ + a48: 21 11 cpse r18, r1 + a4a: f6 cf rjmp .-20 ; 0xa38 <__stack+0x5d9> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a4c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a4e: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + a50: 5d 9b sbis 0x0b, 5 ; 11 + a52: fe cf rjmp .-4 ; 0xa50 <__stack+0x5f1> + UDR = c; + a54: 8b e3 ldi r24, 0x3B ; 59 + a56: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a58: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a5a: bb 9a sbi 0x17, 3 ; 23 + a5c: e6 e7 ldi r30, 0x76 ; 118 + a5e: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + a60: 86 e7 ldi r24, 0x76 ; 118 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a62: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a64: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + a66: 5d 9b sbis 0x0b, 5 ; 11 + a68: fe cf rjmp .-4 ; 0xa66 <__stack+0x607> + UDR = c; + a6a: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + a6c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + a6e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + a70: 81 91 ld r24, Z+ + a72: 81 11 cpse r24, r1 + a74: f6 cf rjmp .-20 ; 0xa62 <__stack+0x603> + } + pwm_value = (target_temp+5) - tm; + o.setPwm(0, pwm_value); + o.setPwm(1, target_motor); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + a76: b6 01 movw r22, r12 + a78: 6e 0d add r22, r14 + a7a: 7f 1d adc r23, r15 + a7c: 80 e0 ldi r24, 0x00 ; 0 + a7e: 90 e0 ldi r25, 0x00 ; 0 + a80: 0e 94 d3 09 call 0x13a6 ; 0x13a6 <__floatunsisf> + a84: 20 e0 ldi r18, 0x00 ; 0 + a86: 30 e0 ldi r19, 0x00 ; 0 + a88: 40 e0 ldi r20, 0x00 ; 0 + a8a: 5f e3 ldi r21, 0x3F ; 63 + a8c: 0e 94 89 0a call 0x1512 ; 0x1512 <__mulsf3> + a90: 8e 01 movw r16, r28 + a92: 0e 58 subi r16, 0x8E ; 142 + a94: 1f 4f sbci r17, 0xFF ; 255 + a96: 22 e0 ldi r18, 0x02 ; 2 + a98: 4a e0 ldi r20, 0x0A ; 10 + a9a: 0e 94 26 0b call 0x164c ; 0x164c + a9e: fc 01 movw r30, r24 + aa0: 20 81 ld r18, Z + aa2: 22 23 and r18, r18 + aa4: 59 f0 breq .+22 ; 0xabc <__stack+0x65d> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + aa6: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + aa8: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + aaa: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + aac: 5d 9b sbis 0x0b, 5 ; 11 + aae: fe cf rjmp .-4 ; 0xaac <__stack+0x64d> + UDR = c; + ab0: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + ab2: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + ab4: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + ab6: 21 91 ld r18, Z+ + ab8: 21 11 cpse r18, r1 + aba: f6 cf rjmp .-20 ; 0xaa8 <__stack+0x649> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + abc: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + abe: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + ac0: 5d 9b sbis 0x0b, 5 ; 11 + ac2: fe cf rjmp .-4 ; 0xac0 <__stack+0x661> + UDR = c; + ac4: 8b e3 ldi r24, 0x3B ; 59 + ac6: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + ac8: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + aca: bb 9a sbi 0x17, 3 ; 23 + acc: ea e7 ldi r30, 0x7A ; 122 + ace: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + ad0: 86 e7 ldi r24, 0x76 ; 118 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + ad2: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + ad4: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + ad6: 5d 9b sbis 0x0b, 5 ; 11 + ad8: fe cf rjmp .-4 ; 0xad6 <__stack+0x677> + UDR = c; + ada: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + adc: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + ade: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + ae0: 81 91 ld r24, Z+ + ae2: 81 11 cpse r24, r1 + ae4: f6 cf rjmp .-20 ; 0xad2 <__stack+0x673> + pwm_value = (target_temp+5) - tm; + o.setPwm(0, pwm_value); + o.setPwm(1, target_motor); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + ae6: 4a e0 ldi r20, 0x0A ; 10 + ae8: 50 e0 ldi r21, 0x00 ; 0 + aea: be 01 movw r22, r28 + aec: 6e 58 subi r22, 0x8E ; 142 + aee: 7f 4f sbci r23, 0xFF ; 255 + af0: c7 01 movw r24, r14 + af2: 0e 94 47 0b call 0x168e ; 0x168e + af6: dc 01 movw r26, r24 + af8: 2c 91 ld r18, X + afa: 22 23 and r18, r18 + afc: 61 f0 breq .+24 ; 0xb16 <__stack+0x6b7> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + afe: fc 01 movw r30, r24 + b00: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b02: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b04: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b06: 5d 9b sbis 0x0b, 5 ; 11 + b08: fe cf rjmp .-4 ; 0xb06 <__stack+0x6a7> + UDR = c; + b0a: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b0c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b0e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b10: 21 91 ld r18, Z+ + b12: 21 11 cpse r18, r1 + b14: f6 cf rjmp .-20 ; 0xb02 <__stack+0x6a3> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b16: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b18: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b1a: 5d 9b sbis 0x0b, 5 ; 11 + b1c: fe cf rjmp .-4 ; 0xb1a <__stack+0x6bb> + UDR = c; + b1e: 8b e3 ldi r24, 0x3B ; 59 + b20: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b22: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b24: bb 9a sbi 0x17, 3 ; 23 + b26: ee e7 ldi r30, 0x7E ; 126 + b28: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b2a: 86 e7 ldi r24, 0x76 ; 118 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b2c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b2e: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b30: 5d 9b sbis 0x0b, 5 ; 11 + b32: fe cf rjmp .-4 ; 0xb30 <__stack+0x6d1> + UDR = c; + b34: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b36: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b38: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b3a: 81 91 ld r24, Z+ + b3c: 81 11 cpse r24, r1 + b3e: f6 cf rjmp .-20 ; 0xb2c <__stack+0x6cd> + o.setPwm(0, pwm_value); + o.setPwm(1, target_motor); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + b40: 4a e0 ldi r20, 0x0A ; 10 + b42: 50 e0 ldi r21, 0x00 ; 0 + b44: be 01 movw r22, r28 + b46: 6e 58 subi r22, 0x8E ; 142 + b48: 7f 4f sbci r23, 0xFF ; 255 + b4a: c6 01 movw r24, r12 + b4c: 0e 94 47 0b call 0x168e ; 0x168e + b50: fc 01 movw r30, r24 + b52: 20 81 ld r18, Z + b54: 22 23 and r18, r18 + b56: 59 f0 breq .+22 ; 0xb6e <__stack+0x70f> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + b58: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b5a: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b5c: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b5e: 5d 9b sbis 0x0b, 5 ; 11 + b60: fe cf rjmp .-4 ; 0xb5e <__stack+0x6ff> + UDR = c; + b62: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b64: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b66: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b68: 21 91 ld r18, Z+ + b6a: 21 11 cpse r18, r1 + b6c: f6 cf rjmp .-20 ; 0xb5a <__stack+0x6fb> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b6e: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b70: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b72: 5d 9b sbis 0x0b, 5 ; 11 + b74: fe cf rjmp .-4 ; 0xb72 <__stack+0x713> + UDR = c; + b76: 8b e3 ldi r24, 0x3B ; 59 + b78: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b7a: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b7c: bb 9a sbi 0x17, 3 ; 23 + b7e: e2 e8 ldi r30, 0x82 ; 130 + b80: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b82: 83 e6 ldi r24, 0x63 ; 99 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + b84: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + b86: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + b88: 5d 9b sbis 0x0b, 5 ; 11 + b8a: fe cf rjmp .-4 ; 0xb88 <__stack+0x729> + UDR = c; + b8c: 8c b9 out 0x0c, r24 ; 12 namespace avrlib { struct portb @@ -3726,1593 +2968,3415 @@ namespace avrlib { static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } b90: bb 9a sbi 0x17, 3 ; 23 -namespace avrlib { - - struct portb - { - static uint8_t port() { return PORTB; } - static void port(uint8_t v) { PORTB = v; } - b92: c2 98 cbi 0x18, 2 ; 24 - - static uint8_t pin() { return PINB; } - static void pin(uint8_t v) { PINB = v; } - - static uint8_t dir() { return DDRB; } - static void dir(uint8_t v) { DDRB = v; } - b94: ba 9a sbi 0x17, 2 ; 23 - b96: 2f ef ldi r18, 0xFF ; 255 - b98: 3f ef ldi r19, 0xFF ; 255 - b9a: fc 01 movw r30, r24 - b9c: 32 83 std Z+2, r19 ; 0x02 - b9e: 21 83 std Z+1, r18 ; 0x01 - this->temp = -1; - return t; - } - private: - void init() { - UCSRA = 0; - ba0: 1b b8 out 0x0b, r1 ; 11 - UCSRB = (1<led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - bb4: 85 e5 ldi r24, 0x55 ; 85 + b92: 81 91 ld r24, Z+ + b94: 81 11 cpse r24, r1 + b96: f6 cf rjmp .-20 ; 0xb84 <__stack+0x725> + o.setPwm(1, target_motor); + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + b98: 8e 01 movw r16, r28 + b9a: 09 59 subi r16, 0x99 ; 153 + b9c: 1f 4f sbci r17, 0xFF ; 255 + b9e: 22 e0 ldi r18, 0x02 ; 2 + ba0: 4a e0 ldi r20, 0x0A ; 10 + ba2: c2 56 subi r28, 0x62 ; 98 + ba4: df 4f sbci r29, 0xFF ; 255 + ba6: f8 81 ld r31, Y + ba8: ce 59 subi r28, 0x9E ; 158 + baa: d0 40 sbci r29, 0x00 ; 0 + bac: c1 56 subi r28, 0x61 ; 97 + bae: df 4f sbci r29, 0xFF ; 255 + bb0: e8 81 ld r30, Y + bb2: cf 59 subi r28, 0x9F ; 159 + bb4: d0 40 sbci r29, 0x00 ; 0 + bb6: c0 56 subi r28, 0x60 ; 96 + bb8: df 4f sbci r29, 0xFF ; 255 + bba: 58 81 ld r21, Y + bbc: c0 5a subi r28, 0xA0 ; 160 + bbe: d0 40 sbci r29, 0x00 ; 0 + bc0: cf 55 subi r28, 0x5F ; 95 + bc2: df 4f sbci r29, 0xFF ; 255 + bc4: 38 81 ld r19, Y + bc6: c1 5a subi r28, 0xA1 ; 161 + bc8: d0 40 sbci r29, 0x00 ; 0 + bca: 6f 2f mov r22, r31 + bcc: 7e 2f mov r23, r30 + bce: 85 2f mov r24, r21 + bd0: 93 2f mov r25, r19 + bd2: 0e 94 26 0b call 0x164c ; 0x164c + bd6: dc 01 movw r26, r24 + bd8: 2c 91 ld r18, X + bda: 22 23 and r18, r18 + bdc: 61 f0 breq .+24 ; 0xbf6 <__stack+0x797> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + bde: fc 01 movw r30, r24 + be0: 31 96 adiw r30, 0x01 ; 1 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - bb6: c3 9a sbi 0x18, 3 ; 24 + be2: c3 9a sbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - bb8: bb 9a sbi 0x17, 3 ; 23 - UBRRH = 0; + be4: bb 9a sbi 0x17, 3 ; 23 UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); } uint8_t uart_putchar(uint8_t c) { led.on(led.YELLOW); loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - bba: 5d 9b sbis 0x0b, 5 ; 11 - bbc: fe cf rjmp .-4 ; 0xbba <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x42> + be6: 5d 9b sbis 0x0b, 5 ; 11 + be8: fe cf rjmp .-4 ; 0xbe6 <__stack+0x787> UDR = c; - bbe: 8c b9 out 0x0c, r24 ; 12 + bea: 2c b9 out 0x0c, r18 ; 12 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - bc0: c3 98 cbi 0x18, 3 ; 24 + bec: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - bc2: bb 9a sbi 0x17, 3 ; 23 + bee: bb 9a sbi 0x17, 3 ; 23 init(); this->led = l; send("Uart done!\n"); } void send(const char *text) { while (*text) - bc4: 81 91 ld r24, Z+ - bc6: 81 11 cpse r24, r1 - bc8: f6 cf rjmp .-20 ; 0xbb6 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x3e> + bf0: 21 91 ld r18, Z+ + bf2: 21 11 cpse r18, r1 + bf4: f6 cf rjmp .-20 ; 0xbe2 <__stack+0x783> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + bf6: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + bf8: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + bfa: 5d 9b sbis 0x0b, 5 ; 11 + bfc: fe cf rjmp .-4 ; 0xbfa <__stack+0x79b> + UDR = c; + bfe: 8b e3 ldi r24, 0x3B ; 59 + c00: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c02: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c04: bb 9a sbi 0x17, 3 ; 23 + c06: e6 e8 ldi r30, 0x86 ; 134 + c08: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + c0a: 83 e6 ldi r24, 0x63 ; 99 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c0c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c0e: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + c10: 5d 9b sbis 0x0b, 5 ; 11 + c12: fe cf rjmp .-4 ; 0xc10 <__stack+0x7b1> + UDR = c; + c14: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c16: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c18: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + c1a: 81 91 ld r24, Z+ + c1c: 81 11 cpse r24, r1 + c1e: f6 cf rjmp .-20 ; 0xc0c <__stack+0x7ad> + char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + c20: 8e 01 movw r16, r28 + c22: 09 59 subi r16, 0x99 ; 153 + c24: 1f 4f sbci r17, 0xFF ; 255 + c26: 22 e0 ldi r18, 0x02 ; 2 + c28: 4a e0 ldi r20, 0x0A ; 10 + c2a: c4 57 subi r28, 0x74 ; 116 + c2c: df 4f sbci r29, 0xFF ; 255 + c2e: f8 81 ld r31, Y + c30: cc 58 subi r28, 0x8C ; 140 + c32: d0 40 sbci r29, 0x00 ; 0 + c34: c8 56 subi r28, 0x68 ; 104 + c36: df 4f sbci r29, 0xFF ; 255 + c38: e8 81 ld r30, Y + c3a: c8 59 subi r28, 0x98 ; 152 + c3c: d0 40 sbci r29, 0x00 ; 0 + c3e: c7 56 subi r28, 0x67 ; 103 + c40: df 4f sbci r29, 0xFF ; 255 + c42: 58 81 ld r21, Y + c44: c9 59 subi r28, 0x99 ; 153 + c46: d0 40 sbci r29, 0x00 ; 0 + c48: c6 56 subi r28, 0x66 ; 102 + c4a: df 4f sbci r29, 0xFF ; 255 + c4c: 38 81 ld r19, Y + c4e: ca 59 subi r28, 0x9A ; 154 + c50: d0 40 sbci r29, 0x00 ; 0 + c52: 6f 2f mov r22, r31 + c54: 7e 2f mov r23, r30 + c56: 85 2f mov r24, r21 + c58: 93 2f mov r25, r19 + c5a: 0e 94 26 0b call 0x164c ; 0x164c + c5e: fc 01 movw r30, r24 + c60: 20 81 ld r18, Z + c62: 22 23 and r18, r18 + c64: 59 f0 breq .+22 ; 0xc7c <__stack+0x81d> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + c66: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c68: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c6a: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + c6c: 5d 9b sbis 0x0b, 5 ; 11 + c6e: fe cf rjmp .-4 ; 0xc6c <__stack+0x80d> + UDR = c; + c70: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c72: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c74: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + c76: 21 91 ld r18, Z+ + c78: 21 11 cpse r18, r1 + c7a: f6 cf rjmp .-20 ; 0xc68 <__stack+0x809> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c7c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c7e: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + c80: 5d 9b sbis 0x0b, 5 ; 11 + c82: fe cf rjmp .-4 ; 0xc80 <__stack+0x821> + UDR = c; + c84: 8b e3 ldi r24, 0x3B ; 59 + c86: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c88: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c8a: bb 9a sbi 0x17, 3 ; 23 + c8c: ea e8 ldi r30, 0x8A ; 138 + c8e: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + c90: 83 e6 ldi r24, 0x63 ; 99 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c92: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c94: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + c96: 5d 9b sbis 0x0b, 5 ; 11 + c98: fe cf rjmp .-4 ; 0xc96 <__stack+0x837> + UDR = c; + c9a: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + c9c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + c9e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + ca0: 81 91 ld r24, Z+ + ca2: 81 11 cpse r24, r1 + ca4: f6 cf rjmp .-20 ; 0xc92 <__stack+0x833> + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + ca6: 8e 01 movw r16, r28 + ca8: 09 59 subi r16, 0x99 ; 153 + caa: 1f 4f sbci r17, 0xFF ; 255 + cac: 22 e0 ldi r18, 0x02 ; 2 + cae: 4a e0 ldi r20, 0x0A ; 10 + cb0: c0 57 subi r28, 0x70 ; 112 + cb2: df 4f sbci r29, 0xFF ; 255 + cb4: f8 81 ld r31, Y + cb6: c0 59 subi r28, 0x90 ; 144 + cb8: d0 40 sbci r29, 0x00 ; 0 + cba: c5 56 subi r28, 0x65 ; 101 + cbc: df 4f sbci r29, 0xFF ; 255 + cbe: e8 81 ld r30, Y + cc0: cb 59 subi r28, 0x9B ; 155 + cc2: d0 40 sbci r29, 0x00 ; 0 + cc4: c4 56 subi r28, 0x64 ; 100 + cc6: df 4f sbci r29, 0xFF ; 255 + cc8: 58 81 ld r21, Y + cca: cc 59 subi r28, 0x9C ; 156 + ccc: d0 40 sbci r29, 0x00 ; 0 + cce: c3 56 subi r28, 0x63 ; 99 + cd0: df 4f sbci r29, 0xFF ; 255 + cd2: 38 81 ld r19, Y + cd4: cd 59 subi r28, 0x9D ; 157 + cd6: d0 40 sbci r29, 0x00 ; 0 + cd8: 6f 2f mov r22, r31 + cda: 7e 2f mov r23, r30 + cdc: 85 2f mov r24, r21 + cde: 93 2f mov r25, r19 + ce0: 0e 94 26 0b call 0x164c ; 0x164c + ce4: dc 01 movw r26, r24 + ce6: 2c 91 ld r18, X + ce8: 22 23 and r18, r18 + cea: 61 f0 breq .+24 ; 0xd04 <__stack+0x8a5> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + cec: fc 01 movw r30, r24 + cee: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + cf0: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + cf2: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + cf4: 5d 9b sbis 0x0b, 5 ; 11 + cf6: fe cf rjmp .-4 ; 0xcf4 <__stack+0x895> + UDR = c; + cf8: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + cfa: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + cfc: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + cfe: 21 91 ld r18, Z+ + d00: 21 11 cpse r18, r1 + d02: f6 cf rjmp .-20 ; 0xcf0 <__stack+0x891> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d04: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d06: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + d08: 5d 9b sbis 0x0b, 5 ; 11 + d0a: fe cf rjmp .-4 ; 0xd08 <__stack+0x8a9> + UDR = c; + d0c: 8b e3 ldi r24, 0x3B ; 59 + d0e: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d10: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d12: bb 9a sbi 0x17, 3 ; 23 + d14: ee e8 ldi r30, 0x8E ; 142 + d16: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + d18: 84 e7 ldi r24, 0x74 ; 116 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d1a: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d1c: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + d1e: 5d 9b sbis 0x0b, 5 ; 11 + d20: fe cf rjmp .-4 ; 0xd1e <__stack+0x8bf> + UDR = c; + d22: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d24: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d26: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + d28: 81 91 ld r24, Z+ + d2a: 81 11 cpse r24, r1 + d2c: f6 cf rjmp .-20 ; 0xd1a <__stack+0x8bb> + r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + char ts[11]; r.send("t="); r.send(utoa(target_temp, ts, 10)); r.send(";"); + d2e: 4a e0 ldi r20, 0x0A ; 10 + d30: 50 e0 ldi r21, 0x00 ; 0 + d32: be 01 movw r22, r28 + d34: 64 5a subi r22, 0xA4 ; 164 + d36: 7f 4f sbci r23, 0xFF ; 255 + d38: cc 56 subi r28, 0x6C ; 108 + d3a: df 4f sbci r29, 0xFF ; 255 + d3c: 88 81 ld r24, Y + d3e: 99 81 ldd r25, Y+1 ; 0x01 + d40: c4 59 subi r28, 0x94 ; 148 + d42: d0 40 sbci r29, 0x00 ; 0 + d44: 0e 94 47 0b call 0x168e ; 0x168e + d48: fc 01 movw r30, r24 + d4a: 20 81 ld r18, Z + d4c: 22 23 and r18, r18 + d4e: 59 f0 breq .+22 ; 0xd66 <__stack+0x907> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + d50: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d52: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d54: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + d56: 5d 9b sbis 0x0b, 5 ; 11 + d58: fe cf rjmp .-4 ; 0xd56 <__stack+0x8f7> + UDR = c; + d5a: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d5c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d5e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + d60: 21 91 ld r18, Z+ + d62: 21 11 cpse r18, r1 + d64: f6 cf rjmp .-20 ; 0xd52 <__stack+0x8f3> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d66: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d68: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + d6a: 5d 9b sbis 0x0b, 5 ; 11 + d6c: fe cf rjmp .-4 ; 0xd6a <__stack+0x90b> + UDR = c; + d6e: 8b e3 ldi r24, 0x3B ; 59 + d70: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d72: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d74: bb 9a sbi 0x17, 3 ; 23 + d76: e3 e8 ldi r30, 0x83 ; 131 + d78: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + d7a: 8d e6 ldi r24, 0x6D ; 109 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d7c: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d7e: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + d80: 5d 9b sbis 0x0b, 5 ; 11 + d82: fe cf rjmp .-4 ; 0xd80 <__stack+0x921> + UDR = c; + d84: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + d86: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + d88: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + d8a: 81 91 ld r24, Z+ + d8c: 81 11 cpse r24, r1 + d8e: f6 cf rjmp .-20 ; 0xd7c <__stack+0x91d> + r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + char ts[11]; r.send("t="); r.send(utoa(target_temp, ts, 10)); r.send(";"); + char ms[11]; r.send("m="); r.send(utoa(target_motor, ms, 10)); r.send(";"); + d90: 4a e0 ldi r20, 0x0A ; 10 + d92: 50 e0 ldi r21, 0x00 ; 0 + d94: be 01 movw r22, r28 + d96: 6f 5a subi r22, 0xAF ; 175 + d98: 7f 4f sbci r23, 0xFF ; 255 + d9a: ca 56 subi r28, 0x6A ; 106 + d9c: df 4f sbci r29, 0xFF ; 255 + d9e: f8 81 ld r31, Y + da0: c6 59 subi r28, 0x96 ; 150 + da2: d0 40 sbci r29, 0x00 ; 0 + da4: 8f 2f mov r24, r31 + da6: 99 27 eor r25, r25 + da8: 87 fd sbrc r24, 7 + daa: 90 95 com r25 + dac: 0e 94 47 0b call 0x168e ; 0x168e + db0: dc 01 movw r26, r24 + db2: 2c 91 ld r18, X + db4: 22 23 and r18, r18 + db6: 61 f0 breq .+24 ; 0xdd0 <__stack+0x971> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + db8: fc 01 movw r30, r24 + dba: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + dbc: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + dbe: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + dc0: 5d 9b sbis 0x0b, 5 ; 11 + dc2: fe cf rjmp .-4 ; 0xdc0 <__stack+0x961> + UDR = c; + dc4: 2c b9 out 0x0c, r18 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + dc6: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + dc8: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + dca: 21 91 ld r18, Z+ + dcc: 21 11 cpse r18, r1 + dce: f6 cf rjmp .-20 ; 0xdbc <__stack+0x95d> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + dd0: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + dd2: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + dd4: 5d 9b sbis 0x0b, 5 ; 11 + dd6: fe cf rjmp .-4 ; 0xdd4 <__stack+0x975> + UDR = c; + dd8: 8b e3 ldi r24, 0x3B ; 59 + dda: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + ddc: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + dde: bb 9a sbi 0x17, 3 ; 23 + char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + char ts[11]; r.send("t="); r.send(utoa(target_temp, ts, 10)); r.send(";"); + char ms[11]; r.send("m="); r.send(utoa(target_motor, ms, 10)); r.send(";"); + r.send((o.isOn(o.OUT1)==1)?"hon=1;":"hon=0;"); + de0: 9a 9b sbis 0x13, 2 ; 19 + de2: 03 c0 rjmp .+6 ; 0xdea <__stack+0x98b> + de4: e2 e6 ldi r30, 0x62 ; 98 + de6: f1 e0 ldi r31, 0x01 ; 1 + de8: 02 c0 rjmp .+4 ; 0xdee <__stack+0x98f> + dea: eb e5 ldi r30, 0x5B ; 91 + dec: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + dee: 80 81 ld r24, Z + df0: 88 23 and r24, r24 + df2: 59 f0 breq .+22 ; 0xe0a <__stack+0x9ab> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + df4: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + df6: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + df8: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + dfa: 5d 9b sbis 0x0b, 5 ; 11 + dfc: fe cf rjmp .-4 ; 0xdfa <__stack+0x99b> + UDR = c; + dfe: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e00: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + e02: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + e04: 81 91 ld r24, Z+ + e06: 81 11 cpse r24, r1 + e08: f6 cf rjmp .-20 ; 0xdf6 <__stack+0x997> + r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); + r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); + char ts[11]; r.send("t="); r.send(utoa(target_temp, ts, 10)); r.send(";"); + char ms[11]; r.send("m="); r.send(utoa(target_motor, ms, 10)); r.send(";"); + r.send((o.isOn(o.OUT1)==1)?"hon=1;":"hon=0;"); + r.send((o.isOn(o.OUT2)==1)?"mon=1":"mon=0"); + e0a: 9b 9b sbis 0x13, 3 ; 19 + e0c: 03 c0 rjmp .+6 ; 0xe14 <__stack+0x9b5> + e0e: ef e6 ldi r30, 0x6F ; 111 + e10: f1 e0 ldi r31, 0x01 ; 1 + e12: 02 c0 rjmp .+4 ; 0xe18 <__stack+0x9b9> + e14: e9 e6 ldi r30, 0x69 ; 105 + e16: f1 e0 ldi r31, 0x01 ; 1 + e18: 80 81 ld r24, Z + e1a: 88 23 and r24, r24 + e1c: 59 f0 breq .+22 ; 0xe34 <__stack+0x9d5> + l.off(l.YELLOW); + r.send("#### End Bootup ###########################################\n"); + l.on(l.GREEN); +} + +int main(void) + e1e: 31 96 adiw r30, 0x01 ; 1 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e20: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + e22: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + e24: 5d 9b sbis 0x0b, 5 ; 11 + e26: fe cf rjmp .-4 ; 0xe24 <__stack+0x9c5> + UDR = c; + e28: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e2a: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + e2c: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + e2e: 81 91 ld r24, Z+ + e30: 81 11 cpse r24, r1 + e32: f6 cf rjmp .-20 ; 0xe20 <__stack+0x9c1> +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e34: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + e36: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + e38: 5d 9b sbis 0x0b, 5 ; 11 + e3a: fe cf rjmp .-4 ; 0xe38 <__stack+0x9d9> + UDR = c; + e3c: 8a e0 ldi r24, 0x0A ; 10 + e3e: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e40: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + e42: bb 9a sbi 0x17, 3 ; 23 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + e44: bf ef ldi r27, 0xFF ; 255 + e46: e0 e7 ldi r30, 0x70 ; 112 + e48: f2 e0 ldi r31, 0x02 ; 2 + e4a: b1 50 subi r27, 0x01 ; 1 + e4c: e0 40 sbci r30, 0x00 ; 0 + e4e: f0 40 sbci r31, 0x00 ; 0 + e50: e1 f7 brne .-8 ; 0xe4a <__stack+0x9eb> + e52: 00 c0 rjmp .+0 ; 0xe54 <__stack+0x9f5> + e54: 00 00 nop + int8_t target_motor = 20; + float pwm_value = 0; + uint16_t v0a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t v1a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint8_t p = 0; + while(1) + e56: fc ca rjmp .-2568 ; 0x450 + if(ausg < 0) + ausg = 0; + if(ausg > 5) + ausg = 5; + if(val < 0) + val = 0; + e58: 41 2c mov r4, r1 + e5a: 51 2c mov r5, r1 + e5c: c6 57 subi r28, 0x76 ; 118 + e5e: df 4f sbci r29, 0xFF ; 255 + e60: 18 82 st Y, r1 + e62: ca 58 subi r28, 0x8A ; 138 + e64: d0 40 sbci r29, 0x00 ; 0 + e66: c5 57 subi r28, 0x75 ; 117 + e68: df 4f sbci r29, 0xFF ; 255 + e6a: 18 82 st Y, r1 + e6c: cb 58 subi r28, 0x8B ; 139 + e6e: d0 40 sbci r29, 0x00 ; 0 + e70: 0e c0 rjmp .+28 ; 0xe8e <__stack+0xa2f> + if(val > 20) + val = 20; + e72: 41 2c mov r4, r1 + e74: 51 2c mov r5, r1 + e76: 20 ea ldi r18, 0xA0 ; 160 + e78: c6 57 subi r28, 0x76 ; 118 + e7a: df 4f sbci r29, 0xFF ; 255 + e7c: 28 83 st Y, r18 + e7e: ca 58 subi r28, 0x8A ; 138 + e80: d0 40 sbci r29, 0x00 ; 0 + e82: 31 e4 ldi r19, 0x41 ; 65 + e84: c5 57 subi r28, 0x75 ; 117 + e86: df 4f sbci r29, 0xFF ; 255 + e88: 38 83 st Y, r19 + e8a: cb 58 subi r28, 0x8B ; 139 + e8c: d0 40 sbci r29, 0x00 ; 0 + this->pwm[ausg] = (uint8_t)val; + e8e: c6 57 subi r28, 0x76 ; 118 + e90: df 4f sbci r29, 0xFF ; 255 + e92: 38 81 ld r19, Y + e94: ca 58 subi r28, 0x8A ; 138 + e96: d0 40 sbci r29, 0x00 ; 0 + e98: c5 57 subi r28, 0x75 ; 117 + e9a: df 4f sbci r29, 0xFF ; 255 + e9c: 28 81 ld r18, Y + e9e: cb 58 subi r28, 0x8B ; 139 + ea0: d0 40 sbci r29, 0x00 ; 0 + ea2: 64 2d mov r22, r4 + ea4: 75 2d mov r23, r5 + ea6: 83 2f mov r24, r19 + ea8: 92 2f mov r25, r18 + eaa: 0e 94 a7 09 call 0x134e ; 0x134e <__fixunssfsi> + eae: 60 93 df 01 sts 0x01DF, r22 + eb2: e1 e9 ldi r30, 0x91 ; 145 + eb4: f1 e0 ldi r31, 0x01 ; 1 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + eb6: 80 e7 ldi r24, 0x70 ; 112 + eb8: a4 cd rjmp .-1208 ; 0xa02 <__stack+0x5a3> + +00000eba <__vector_6>: + r.send("\n"); + _delay_ms(50); + } +} + +ISR(TIMER1_COMPA_vect) { + eba: 1f 92 push r1 + ebc: 0f 92 push r0 + ebe: 0f b6 in r0, 0x3f ; 63 + ec0: 0f 92 push r0 + ec2: 11 24 eor r1, r1 + ec4: 2f 93 push r18 + ec6: 3f 93 push r19 + ec8: 4f 93 push r20 + eca: 5f 93 push r21 + ecc: 6f 93 push r22 + ece: 7f 93 push r23 + ed0: 8f 93 push r24 + ed2: 9f 93 push r25 + ed4: af 93 push r26 + ed6: bf 93 push r27 + ed8: ef 93 push r30 + eda: ff 93 push r31 + if(ausg > 5) + ausg = 5; + return this->pwm[ausg]; + } + void timer() { + if (this->pct++ >= 20) { + edc: 80 91 dd 01 lds r24, 0x01DD + ee0: 84 31 cpi r24, 0x14 ; 20 + ee2: 08 f4 brcc .+2 ; 0xee6 <__vector_6+0x2c> + ee4: 51 c0 rjmp .+162 ; 0xf88 <__vector_6+0xce> + this->pct=0; + ee6: 10 92 dd 01 sts 0x01DD, r1 + eea: 51 c0 rjmp .+162 ; 0xf8e <__vector_6+0xd4> + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + eec: 82 2f mov r24, r18 + eee: 91 91 ld r25, Z+ + ef0: 6c 91 ld r22, X + ef2: 96 17 cp r25, r22 + ef4: 18 f1 brcs .+70 ; 0xf3c <__vector_6+0x82> + ef6: 99 23 and r25, r25 + ef8: 09 f1 breq .+66 ; 0xf3c <__vector_6+0x82> + this->on((1< + f00: 66 0f add r22, r22 + f02: 77 1f adc r23, r23 + f04: 0a 94 dec r0 + f06: e2 f7 brpl .-8 ; 0xf00 <__vector_6+0x46> + f08: cb 01 movw r24, r22 + if(ausg & OUT6) { + out6::make_low(); + } + } + void on(uint8_t ausg = 255) { + if(ausg & OUT1) { + f0a: 60 ff sbrs r22, 0 + f0c: 02 c0 rjmp .+4 ; 0xf12 <__vector_6+0x58> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f0e: aa 9a sbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f10: a2 9a sbi 0x14, 2 ; 20 + out1::make_high(); + } + if(ausg & OUT2) { + f12: 81 ff sbrs r24, 1 + f14: 02 c0 rjmp .+4 ; 0xf1a <__vector_6+0x60> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f16: ab 9a sbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f18: a3 9a sbi 0x14, 3 ; 20 + out2::make_high(); + } + if(ausg & OUT3) { + f1a: 82 ff sbrs r24, 2 + f1c: 02 c0 rjmp .+4 ; 0xf22 <__vector_6+0x68> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f1e: ac 9a sbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f20: a4 9a sbi 0x14, 4 ; 20 + out3::make_high(); + } + if(ausg & OUT4) { + f22: 83 ff sbrs r24, 3 + f24: 02 c0 rjmp .+4 ; 0xf2a <__vector_6+0x70> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f26: ad 9a sbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f28: a5 9a sbi 0x14, 5 ; 20 + out4::make_high(); + } + if(ausg & OUT5) { + f2a: 84 ff sbrs r24, 4 + f2c: 02 c0 rjmp .+4 ; 0xf32 <__vector_6+0x78> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f2e: ae 9a sbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f30: a6 9a sbi 0x14, 6 ; 20 + out5::make_high(); + } + if(ausg & OUT6) { + f32: 85 ff sbrs r24, 5 + f34: 22 c0 rjmp .+68 ; 0xf7a <__vector_6+0xc0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f36: af 9a sbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f38: a7 9a sbi 0x14, 7 ; 20 + f3a: 1f c0 rjmp .+62 ; 0xf7a <__vector_6+0xc0> + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + this->on((1<off((1< + f40: 66 0f add r22, r22 + f42: 77 1f adc r23, r23 + f44: 8a 95 dec r24 + f46: e2 f7 brpl .-8 ; 0xf40 <__vector_6+0x86> + f48: cb 01 movw r24, r22 + public: + SSR() { + init(); + } + void off(uint8_t ausg = 255) { + if(ausg & OUT1) { + f4a: 60 ff sbrs r22, 0 + f4c: 02 c0 rjmp .+4 ; 0xf52 <__vector_6+0x98> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f4e: aa 98 cbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f50: a2 9a sbi 0x14, 2 ; 20 + out1::make_low(); + } + if(ausg & OUT2) { + f52: 81 ff sbrs r24, 1 + f54: 02 c0 rjmp .+4 ; 0xf5a <__vector_6+0xa0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f56: ab 98 cbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f58: a3 9a sbi 0x14, 3 ; 20 + out2::make_low(); + } + if(ausg & OUT3) { + f5a: 82 ff sbrs r24, 2 + f5c: 02 c0 rjmp .+4 ; 0xf62 <__vector_6+0xa8> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f5e: ac 98 cbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f60: a4 9a sbi 0x14, 4 ; 20 + out3::make_low(); + } + if(ausg & OUT4) { + f62: 83 ff sbrs r24, 3 + f64: 02 c0 rjmp .+4 ; 0xf6a <__vector_6+0xb0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f66: ad 98 cbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f68: a5 9a sbi 0x14, 5 ; 20 + out4::make_low(); + } + if(ausg & OUT5) { + f6a: 84 ff sbrs r24, 4 + f6c: 02 c0 rjmp .+4 ; 0xf72 <__vector_6+0xb8> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f6e: ae 98 cbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f70: a6 9a sbi 0x14, 6 ; 20 + out5::make_low(); + } + if(ausg & OUT6) { + f72: 85 ff sbrs r24, 5 + f74: 02 c0 rjmp .+4 ; 0xf7a <__vector_6+0xc0> +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + f76: af 98 cbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + f78: a7 9a sbi 0x14, 7 ; 20 + f7a: 2f 5f subi r18, 0xFF ; 255 + f7c: 3f 4f sbci r19, 0xFF ; 255 + } + void timer() { + if (this->pct++ >= 20) { + this->pct=0; + } + for(uint8_t i = 0; i < 6; i++) { + f7e: 26 30 cpi r18, 0x06 ; 6 + f80: 31 05 cpc r19, r1 + f82: 09 f0 breq .+2 ; 0xf86 <__vector_6+0xcc> + f84: b3 cf rjmp .-154 ; 0xeec <__vector_6+0x32> + f86: 0c c0 rjmp .+24 ; 0xfa0 <__vector_6+0xe6> + if(ausg > 5) + ausg = 5; + return this->pwm[ausg]; + } + void timer() { + if (this->pct++ >= 20) { + f88: 8f 5f subi r24, 0xFF ; 255 + f8a: 80 93 dd 01 sts 0x01DD, r24 + f8e: ee ed ldi r30, 0xDE ; 222 + f90: f1 e0 ldi r31, 0x01 ; 1 + f92: 20 e0 ldi r18, 0x00 ; 0 + f94: 30 e0 ldi r19, 0x00 ; 0 + this->pct=0; + } + for(uint8_t i = 0; i < 6; i++) { + if(this->pwm[i] >= this->pct && this->pwm[i] != 0) { + f96: ad ed ldi r26, 0xDD ; 221 + f98: b1 e0 ldi r27, 0x01 ; 1 + this->on((1<off((1< + o.timer(); +} + fa0: ff 91 pop r31 + fa2: ef 91 pop r30 + fa4: bf 91 pop r27 + fa6: af 91 pop r26 + fa8: 9f 91 pop r25 + faa: 8f 91 pop r24 + fac: 7f 91 pop r23 + fae: 6f 91 pop r22 + fb0: 5f 91 pop r21 + fb2: 4f 91 pop r20 + fb4: 3f 91 pop r19 + fb6: 2f 91 pop r18 + fb8: 0f 90 pop r0 + fba: 0f be out 0x3f, r0 ; 63 + fbc: 0f 90 pop r0 + fbe: 1f 90 pop r1 + fc0: 18 95 reti + +00000fc2 <__vector_1>: + +ISR(INT0_vect) { + fc2: 1f 92 push r1 + fc4: 0f 92 push r0 + fc6: 0f b6 in r0, 0x3f ; 63 + fc8: 0f 92 push r0 + fca: 11 24 eor r1, r1 + fcc: 8f 93 push r24 + } + void intr() { + GIFR = (1<: + +ISR(USART_RXC_vect) { + fde: 1f 92 push r1 + fe0: 0f 92 push r0 + fe2: 0f b6 in r0, 0x3f ; 63 + fe4: 0f 92 push r0 + fe6: 11 24 eor r1, r1 + fe8: 2f 93 push r18 + fea: 3f 93 push r19 + fec: 4f 93 push r20 + fee: 8f 93 push r24 + ff0: 9f 93 push r25 + ff2: ef 93 push r30 + ff4: ff 93 push r31 + int8_t m = this->motor; + this->motor = -1; + return m; + } + void intr() { + uint8_t nextChar = UDR; + ff6: 8c b1 in r24, 0x0c ; 12 + //uart_putchar(nextChar); + if( nextChar != '\n' && nextChar != '\r' && this->uart_str_count < this->UART_MAXSTRLEN ) { + ff8: 8a 30 cpi r24, 0x0A ; 10 + ffa: 79 f0 breq .+30 ; 0x101a <__vector_11+0x3c> + ffc: 8d 30 cpi r24, 0x0D ; 13 + ffe: 69 f0 breq .+26 ; 0x101a <__vector_11+0x3c> + 1000: 90 91 d7 01 lds r25, 0x01D7 + 1004: 95 30 cpi r25, 0x05 ; 5 + 1006: 48 f4 brcc .+18 ; 0x101a <__vector_11+0x3c> + this->uart_string[this->uart_str_count] = nextChar; + 1008: e9 2f mov r30, r25 + 100a: f0 e0 ldi r31, 0x00 ; 0 + 100c: ed 52 subi r30, 0x2D ; 45 + 100e: fe 4f sbci r31, 0xFE ; 254 + 1010: 85 83 std Z+5, r24 ; 0x05 + this->uart_str_count++; + 1012: 9f 5f subi r25, 0xFF ; 255 + 1014: 90 93 d7 01 sts 0x01D7, r25 + 1018: 33 c0 rjmp .+102 ; 0x1080 <__vector_11+0xa2> + } else { + if(this->uart_string[0] == 't') { + 101a: 80 91 d8 01 lds r24, 0x01D8 + 101e: 84 37 cpi r24, 0x74 ; 116 + 1020: f1 f4 brne .+60 ; 0x105e <__vector_11+0x80> + this->temp = (this->uart_string[1]-48)*100+(this->uart_string[2]-48)*10+(this->uart_string[3]-48); + 1022: 40 91 d9 01 lds r20, 0x01D9 + 1026: 80 91 da 01 lds r24, 0x01DA + 102a: 90 e0 ldi r25, 0x00 ; 0 + 102c: 88 0f add r24, r24 + 102e: 99 1f adc r25, r25 + 1030: 9c 01 movw r18, r24 + 1032: 22 0f add r18, r18 + 1034: 33 1f adc r19, r19 + 1036: 22 0f add r18, r18 + 1038: 33 1f adc r19, r19 + 103a: 82 0f add r24, r18 + 103c: 93 1f adc r25, r19 + 103e: 24 e6 ldi r18, 0x64 ; 100 + 1040: 42 9f mul r20, r18 + 1042: 80 0d add r24, r0 + 1044: 91 1d adc r25, r1 + 1046: 11 24 eor r1, r1 + 1048: 20 91 db 01 lds r18, 0x01DB + 104c: 82 0f add r24, r18 + 104e: 91 1d adc r25, r1 + 1050: 80 5d subi r24, 0xD0 ; 208 + 1052: 94 41 sbci r25, 0x14 ; 20 + 1054: 90 93 d5 01 sts 0x01D5, r25 + 1058: 80 93 d4 01 sts 0x01D4, r24 + 105c: 0f c0 rjmp .+30 ; 0x107c <__vector_11+0x9e> + } + if(uart_string[0] == 'm') { + 105e: 8d 36 cpi r24, 0x6D ; 109 + 1060: 69 f4 brne .+26 ; 0x107c <__vector_11+0x9e> + this->motor = (this->uart_string[1]-48)*10+(this->uart_string[2]-48); + 1062: 90 91 da 01 lds r25, 0x01DA + 1066: 90 51 subi r25, 0x10 ; 16 + 1068: 80 91 d9 01 lds r24, 0x01D9 + 106c: 88 0f add r24, r24 + 106e: 28 2f mov r18, r24 + 1070: 22 0f add r18, r18 + 1072: 22 0f add r18, r18 + 1074: 82 0f add r24, r18 + 1076: 89 0f add r24, r25 + 1078: 80 93 d6 01 sts 0x01D6, r24 + } + this->uart_str_count = 0; + 107c: 10 92 d7 01 sts 0x01D7, r1 + r.intr(); + 1080: ff 91 pop r31 + 1082: ef 91 pop r30 + 1084: 9f 91 pop r25 + 1086: 8f 91 pop r24 + 1088: 4f 91 pop r20 + 108a: 3f 91 pop r19 + 108c: 2f 91 pop r18 + 108e: 0f 90 pop r0 + 1090: 0f be out 0x3f, r0 ; 63 + 1092: 0f 90 pop r0 + 1094: 1f 90 pop r1 + 1096: 18 95 reti + +00001098 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev>: +#include "hardware/pin.hpp" + +template +class SSR { + public: + SSR() { + 1098: fc 01 movw r30, r24 + 109a: 11 92 st Z+, r1 + 109c: 86 e0 ldi r24, 0x06 ; 6 + 109e: df 01 movw r26, r30 + 10a0: 1d 92 st X+, r1 + 10a2: 8a 95 dec r24 + 10a4: e9 f7 brne .-6 ; 0x10a0 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev+0x8> + 10a6: a2 9a sbi 0x14, 2 ; 20 + 10a8: a3 9a sbi 0x14, 3 ; 20 + 10aa: a4 9a sbi 0x14, 4 ; 20 + 10ac: a5 9a sbi 0x14, 5 ; 20 + 10ae: a6 9a sbi 0x14, 6 ; 20 + 10b0: a7 9a sbi 0x14, 7 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10b2: aa 98 cbi 0x15, 2 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10b4: a2 9a sbi 0x14, 2 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10b6: ab 98 cbi 0x15, 3 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10b8: a3 9a sbi 0x14, 3 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10ba: ac 98 cbi 0x15, 4 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10bc: a4 9a sbi 0x14, 4 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10be: ad 98 cbi 0x15, 5 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10c0: a5 9a sbi 0x14, 5 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10c2: ae 98 cbi 0x15, 6 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10c4: a6 9a sbi 0x14, 6 ; 20 +namespace avrlib { + + struct portc + { + static uint8_t port() { return PORTC; } + static void port(uint8_t v) { PORTC = v; } + 10c6: af 98 cbi 0x15, 7 ; 21 + + static uint8_t pin() { return PINC; } + static void pin(uint8_t v) { PINC = v; } + + static uint8_t dir() { return DDRC; } + static void dir(uint8_t v) { DDRC = v; } + 10c8: a7 9a sbi 0x14, 7 ; 20 + 10ca: 08 95 ret + +000010cc <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: +#define USART_H_ + +template +class Usart { + public: + Usart(ledclass l) { + 10cc: cf 93 push r28 + 10ce: df 93 push r29 + 10d0: 1f 92 push r1 + 10d2: cd b7 in r28, 0x3d ; 61 + 10d4: de b7 in r29, 0x3e ; 62 + 10d6: fc 01 movw r30, r24 + 10d8: 69 83 std Y+1, r22 ; 0x01 + 10da: bc 9a sbi 0x17, 4 ; 23 + 10dc: bb 9a sbi 0x17, 3 ; 23 + 10de: ba 9a sbi 0x17, 2 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 10e0: c4 98 cbi 0x18, 4 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 10e2: bc 9a sbi 0x17, 4 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 10e4: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 10e6: bb 9a sbi 0x17, 3 ; 23 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 10e8: c2 98 cbi 0x18, 2 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 10ea: ba 9a sbi 0x17, 2 ; 23 + 10ec: 8f ef ldi r24, 0xFF ; 255 + 10ee: 9f ef ldi r25, 0xFF ; 255 + 10f0: 92 83 std Z+2, r25 ; 0x02 + 10f2: 81 83 std Z+1, r24 ; 0x01 + 10f4: 8f ef ldi r24, 0xFF ; 255 + 10f6: 83 83 std Z+3, r24 ; 0x03 + 10f8: 14 82 std Z+4, r1 ; 0x04 + this->uart_str_count = 0; + } + } + private: + void init() { + UCSRA = 0; + 10fa: 1b b8 out 0x0b, r1 ; 11 + UCSRB = (1<led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 1110: 85 e5 ldi r24, 0x55 ; 85 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 1112: c3 9a sbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 1114: bb 9a sbi 0x17, 3 ; 23 + UBRRL = (F_CPU / (baudrate * 16L) - 1); + sei(); + } + uint8_t uart_putchar(uint8_t c) { + led.on(led.YELLOW); + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 1116: 5d 9b sbis 0x0b, 5 ; 11 + 1118: fe cf rjmp .-4 ; 0x1116 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x4a> + UDR = c; + 111a: 8c b9 out 0x0c, r24 ; 12 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + 111c: c3 98 cbi 0x18, 3 ; 24 + + static uint8_t pin() { return PINB; } + static void pin(uint8_t v) { PINB = v; } + + static uint8_t dir() { return DDRB; } + static void dir(uint8_t v) { DDRB = v; } + 111e: bb 9a sbi 0x17, 3 ; 23 + init(); + this->led = l; + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 1120: 81 91 ld r24, Z+ + 1122: 81 11 cpse r24, r1 + 1124: f6 cf rjmp .-20 ; 0x1112 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE+0x46> public: Usart(ledclass l) { init(); this->led = l; send("Uart done!\n"); } - bca: 0f 90 pop r0 - bcc: df 91 pop r29 - bce: cf 91 pop r28 - bd0: 08 95 ret + 1126: 0f 90 pop r0 + 1128: df 91 pop r29 + 112a: cf 91 pop r28 + 112c: 08 95 ret -00000bd2 <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: +0000112e <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE>: template class Button { public: Button(ledclass l) { - bd2: cf 93 push r28 - bd4: df 93 push r29 - bd6: 1f 92 push r1 - bd8: cd b7 in r28, 0x3d ; 61 - bda: de b7 in r29, 0x3e ; 62 - bdc: 69 83 std Y+1, r22 ; 0x01 - bde: bc 9a sbi 0x17, 4 ; 23 - be0: bb 9a sbi 0x17, 3 ; 23 - be2: ba 9a sbi 0x17, 2 ; 23 + 112e: cf 93 push r28 + 1130: df 93 push r29 + 1132: 1f 92 push r1 + 1134: cd b7 in r28, 0x3d ; 61 + 1136: de b7 in r29, 0x3e ; 62 + 1138: 69 83 std Y+1, r22 ; 0x01 + 113a: bc 9a sbi 0x17, 4 ; 23 + 113c: bb 9a sbi 0x17, 3 ; 23 + 113e: ba 9a sbi 0x17, 2 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - be4: c4 98 cbi 0x18, 4 ; 24 + 1140: c4 98 cbi 0x18, 4 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - be6: bc 9a sbi 0x17, 4 ; 23 + 1142: bc 9a sbi 0x17, 4 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - be8: c3 98 cbi 0x18, 3 ; 24 + 1144: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - bea: bb 9a sbi 0x17, 3 ; 23 + 1146: bb 9a sbi 0x17, 3 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - bec: c2 98 cbi 0x18, 2 ; 24 + 1148: c2 98 cbi 0x18, 2 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - bee: ba 9a sbi 0x17, 2 ; 23 + 114a: ba 9a sbi 0x17, 2 ; 23 static uint8_t pin() { return PIND; } static void pin(uint8_t v) { PIND = v; } static uint8_t dir() { return DDRD; } static void dir(uint8_t v) { DDRD = v; } - bf0: 8a 98 cbi 0x11, 2 ; 17 + 114c: 8a 98 cbi 0x11, 2 ; 17 namespace avrlib { struct portd { static uint8_t port() { return PORTD; } static void port(uint8_t v) { PORTD = v; } - bf2: 92 98 cbi 0x12, 2 ; 18 - bf4: 92 9a sbi 0x12, 2 ; 18 + 114e: 92 98 cbi 0x12, 2 ; 18 + 1150: 92 9a sbi 0x12, 2 ; 18 init(); this->led = l; } - bf6: 0f 90 pop r0 - bf8: df 91 pop r29 - bfa: cf 91 pop r28 - bfc: 08 95 ret + 1152: 0f 90 pop r0 + 1154: df 91 pop r29 + 1156: cf 91 pop r28 + 1158: 08 95 ret -00000bfe <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv>: - bfe: bc 9a sbi 0x17, 4 ; 23 - c00: bb 9a sbi 0x17, 3 ; 23 - c02: ba 9a sbi 0x17, 2 ; 23 +0000115a <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv>: + 115a: bc 9a sbi 0x17, 4 ; 23 + 115c: bb 9a sbi 0x17, 3 ; 23 + 115e: ba 9a sbi 0x17, 2 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - c04: c4 98 cbi 0x18, 4 ; 24 + 1160: c4 98 cbi 0x18, 4 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - c06: bc 9a sbi 0x17, 4 ; 23 + 1162: bc 9a sbi 0x17, 4 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - c08: c3 98 cbi 0x18, 3 ; 24 + 1164: c3 98 cbi 0x18, 3 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - c0a: bb 9a sbi 0x17, 3 ; 23 + 1166: bb 9a sbi 0x17, 3 ; 23 namespace avrlib { struct portb { static uint8_t port() { return PORTB; } static void port(uint8_t v) { PORTB = v; } - c0c: c2 98 cbi 0x18, 2 ; 24 + 1168: c2 98 cbi 0x18, 2 ; 24 static uint8_t pin() { return PINB; } static void pin(uint8_t v) { PINB = v; } static uint8_t dir() { return DDRB; } static void dir(uint8_t v) { DDRB = v; } - c0e: ba 9a sbi 0x17, 2 ; 23 - c10: 08 95 ret + 116a: ba 9a sbi 0x17, 2 ; 23 + 116c: 08 95 ret -00000c12 <_GLOBAL__sub_I_l>: +0000116e <_GLOBAL__sub_I_l>: template class Led { public: Led() { init(); - c12: 81 ed ldi r24, 0xD1 ; 209 - c14: 91 e0 ldi r25, 0x01 ; 1 - c16: 0e 94 ff 05 call 0xbfe ; 0xbfe <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv> + 116e: 84 ee ldi r24, 0xE4 ; 228 + 1170: 91 e0 ldi r25, 0x01 ; 1 + 1172: 0e 94 ad 08 call 0x115a ; 0x115a <_ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv> #include "peripheral.h" #include ledclass l; ssrclass o; - c1a: 8a ec ldi r24, 0xCA ; 202 - c1c: 91 e0 ldi r25, 0x01 ; 1 - c1e: 0e 94 a2 05 call 0xb44 ; 0xb44 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev> + 1176: 8d ed ldi r24, 0xDD ; 221 + 1178: 91 e0 ldi r25, 0x01 ; 1 + 117a: 0e 94 4c 08 call 0x1098 ; 0x1098 <_ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev> usartclass r(l); - c22: 60 e0 ldi r22, 0x00 ; 0 - c24: 87 ec ldi r24, 0xC7 ; 199 - c26: 91 e0 ldi r25, 0x01 ; 1 - c28: 0e 94 bc 05 call 0xb78 ; 0xb78 <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE> + 117e: 60 e0 ldi r22, 0x00 ; 0 + 1180: 83 ed ldi r24, 0xD3 ; 211 + 1182: 91 e0 ldi r25, 0x01 ; 1 + 1184: 0e 94 66 08 call 0x10cc ; 0x10cc <_ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE> #include template class Adc { public: Adc() { - c2c: 80 e3 ldi r24, 0x30 ; 48 - c2e: e0 e6 ldi r30, 0x60 ; 96 - c30: f0 e0 ldi r31, 0x00 ; 0 - c32: a7 e9 ldi r26, 0x97 ; 151 - c34: b1 e0 ldi r27, 0x01 ; 1 - c36: 01 90 ld r0, Z+ - c38: 0d 92 st X+, r0 - c3a: 8a 95 dec r24 - c3c: e1 f7 brne .-8 ; 0xc36 <_GLOBAL__sub_I_l+0x24> + 1188: 80 e3 ldi r24, 0x30 ; 48 + 118a: e0 e6 ldi r30, 0x60 ; 96 + 118c: f0 e0 ldi r31, 0x00 ; 0 + 118e: a3 ea ldi r26, 0xA3 ; 163 + 1190: b1 e0 ldi r27, 0x01 ; 1 + 1192: 01 90 ld r0, Z+ + 1194: 0d 92 st X+, r0 + 1196: 8a 95 dec r24 + 1198: e1 f7 brne .-8 ; 0x1192 <_GLOBAL__sub_I_l+0x24> return (m * (float)v) + (-m * v1) + c1; } private: void init() { ADCSRA = (1< - c4e: 08 95 ret + 11a0: 60 e0 ldi r22, 0x00 ; 0 + 11a2: 82 ea ldi r24, 0xA2 ; 162 + 11a4: 91 e0 ldi r25, 0x01 ; 1 + 11a6: 0e 94 97 08 call 0x112e ; 0x112e <_ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE> + 11aa: 08 95 ret -00000c50 <__subsf3>: - c50: 50 58 subi r21, 0x80 ; 128 +000011ac <__subsf3>: + 11ac: 50 58 subi r21, 0x80 ; 128 -00000c52 <__addsf3>: - c52: bb 27 eor r27, r27 - c54: aa 27 eor r26, r26 - c56: 0e d0 rcall .+28 ; 0xc74 <__addsf3x> - c58: 70 c1 rjmp .+736 ; 0xf3a <__fp_round> - c5a: 61 d1 rcall .+706 ; 0xf1e <__fp_pscA> - c5c: 30 f0 brcs .+12 ; 0xc6a <__addsf3+0x18> - c5e: 66 d1 rcall .+716 ; 0xf2c <__fp_pscB> - c60: 20 f0 brcs .+8 ; 0xc6a <__addsf3+0x18> - c62: 31 f4 brne .+12 ; 0xc70 <__addsf3+0x1e> - c64: 9f 3f cpi r25, 0xFF ; 255 - c66: 11 f4 brne .+4 ; 0xc6c <__addsf3+0x1a> - c68: 1e f4 brtc .+6 ; 0xc70 <__addsf3+0x1e> - c6a: 56 c1 rjmp .+684 ; 0xf18 <__fp_nan> - c6c: 0e f4 brtc .+2 ; 0xc70 <__addsf3+0x1e> - c6e: e0 95 com r30 - c70: e7 fb bst r30, 7 - c72: 4c c1 rjmp .+664 ; 0xf0c <__fp_inf> +000011ae <__addsf3>: + 11ae: bb 27 eor r27, r27 + 11b0: aa 27 eor r26, r26 + 11b2: 0e d0 rcall .+28 ; 0x11d0 <__addsf3x> + 11b4: 70 c1 rjmp .+736 ; 0x1496 <__fp_round> + 11b6: 61 d1 rcall .+706 ; 0x147a <__fp_pscA> + 11b8: 30 f0 brcs .+12 ; 0x11c6 <__addsf3+0x18> + 11ba: 66 d1 rcall .+716 ; 0x1488 <__fp_pscB> + 11bc: 20 f0 brcs .+8 ; 0x11c6 <__addsf3+0x18> + 11be: 31 f4 brne .+12 ; 0x11cc <__addsf3+0x1e> + 11c0: 9f 3f cpi r25, 0xFF ; 255 + 11c2: 11 f4 brne .+4 ; 0x11c8 <__addsf3+0x1a> + 11c4: 1e f4 brtc .+6 ; 0x11cc <__addsf3+0x1e> + 11c6: 56 c1 rjmp .+684 ; 0x1474 <__fp_nan> + 11c8: 0e f4 brtc .+2 ; 0x11cc <__addsf3+0x1e> + 11ca: e0 95 com r30 + 11cc: e7 fb bst r30, 7 + 11ce: 4c c1 rjmp .+664 ; 0x1468 <__fp_inf> -00000c74 <__addsf3x>: - c74: e9 2f mov r30, r25 - c76: 72 d1 rcall .+740 ; 0xf5c <__fp_split3> - c78: 80 f3 brcs .-32 ; 0xc5a <__addsf3+0x8> - c7a: ba 17 cp r27, r26 - c7c: 62 07 cpc r22, r18 - c7e: 73 07 cpc r23, r19 - c80: 84 07 cpc r24, r20 - c82: 95 07 cpc r25, r21 - c84: 18 f0 brcs .+6 ; 0xc8c <__addsf3x+0x18> - c86: 71 f4 brne .+28 ; 0xca4 <__addsf3x+0x30> - c88: 9e f5 brtc .+102 ; 0xcf0 <__addsf3x+0x7c> - c8a: 8a c1 rjmp .+788 ; 0xfa0 <__fp_zero> - c8c: 0e f4 brtc .+2 ; 0xc90 <__addsf3x+0x1c> - c8e: e0 95 com r30 - c90: 0b 2e mov r0, r27 - c92: ba 2f mov r27, r26 - c94: a0 2d mov r26, r0 - c96: 0b 01 movw r0, r22 - c98: b9 01 movw r22, r18 - c9a: 90 01 movw r18, r0 - c9c: 0c 01 movw r0, r24 - c9e: ca 01 movw r24, r20 - ca0: a0 01 movw r20, r0 - ca2: 11 24 eor r1, r1 - ca4: ff 27 eor r31, r31 - ca6: 59 1b sub r21, r25 - ca8: 99 f0 breq .+38 ; 0xcd0 <__addsf3x+0x5c> - caa: 59 3f cpi r21, 0xF9 ; 249 - cac: 50 f4 brcc .+20 ; 0xcc2 <__addsf3x+0x4e> - cae: 50 3e cpi r21, 0xE0 ; 224 - cb0: 68 f1 brcs .+90 ; 0xd0c <__addsf3x+0x98> - cb2: 1a 16 cp r1, r26 - cb4: f0 40 sbci r31, 0x00 ; 0 - cb6: a2 2f mov r26, r18 - cb8: 23 2f mov r18, r19 - cba: 34 2f mov r19, r20 - cbc: 44 27 eor r20, r20 - cbe: 58 5f subi r21, 0xF8 ; 248 - cc0: f3 cf rjmp .-26 ; 0xca8 <__addsf3x+0x34> - cc2: 46 95 lsr r20 - cc4: 37 95 ror r19 - cc6: 27 95 ror r18 - cc8: a7 95 ror r26 - cca: f0 40 sbci r31, 0x00 ; 0 - ccc: 53 95 inc r21 - cce: c9 f7 brne .-14 ; 0xcc2 <__addsf3x+0x4e> - cd0: 7e f4 brtc .+30 ; 0xcf0 <__addsf3x+0x7c> - cd2: 1f 16 cp r1, r31 - cd4: ba 0b sbc r27, r26 - cd6: 62 0b sbc r22, r18 - cd8: 73 0b sbc r23, r19 - cda: 84 0b sbc r24, r20 - cdc: ba f0 brmi .+46 ; 0xd0c <__addsf3x+0x98> - cde: 91 50 subi r25, 0x01 ; 1 - ce0: a1 f0 breq .+40 ; 0xd0a <__addsf3x+0x96> - ce2: ff 0f add r31, r31 - ce4: bb 1f adc r27, r27 - ce6: 66 1f adc r22, r22 - ce8: 77 1f adc r23, r23 - cea: 88 1f adc r24, r24 - cec: c2 f7 brpl .-16 ; 0xcde <__addsf3x+0x6a> - cee: 0e c0 rjmp .+28 ; 0xd0c <__addsf3x+0x98> - cf0: ba 0f add r27, r26 - cf2: 62 1f adc r22, r18 - cf4: 73 1f adc r23, r19 - cf6: 84 1f adc r24, r20 - cf8: 48 f4 brcc .+18 ; 0xd0c <__addsf3x+0x98> - cfa: 87 95 ror r24 - cfc: 77 95 ror r23 - cfe: 67 95 ror r22 - d00: b7 95 ror r27 - d02: f7 95 ror r31 - d04: 9e 3f cpi r25, 0xFE ; 254 - d06: 08 f0 brcs .+2 ; 0xd0a <__addsf3x+0x96> - d08: b3 cf rjmp .-154 ; 0xc70 <__addsf3+0x1e> - d0a: 93 95 inc r25 - d0c: 88 0f add r24, r24 - d0e: 08 f0 brcs .+2 ; 0xd12 <__addsf3x+0x9e> - d10: 99 27 eor r25, r25 - d12: ee 0f add r30, r30 - d14: 97 95 ror r25 - d16: 87 95 ror r24 - d18: 08 95 ret +000011d0 <__addsf3x>: + 11d0: e9 2f mov r30, r25 + 11d2: 72 d1 rcall .+740 ; 0x14b8 <__fp_split3> + 11d4: 80 f3 brcs .-32 ; 0x11b6 <__addsf3+0x8> + 11d6: ba 17 cp r27, r26 + 11d8: 62 07 cpc r22, r18 + 11da: 73 07 cpc r23, r19 + 11dc: 84 07 cpc r24, r20 + 11de: 95 07 cpc r25, r21 + 11e0: 18 f0 brcs .+6 ; 0x11e8 <__addsf3x+0x18> + 11e2: 71 f4 brne .+28 ; 0x1200 <__addsf3x+0x30> + 11e4: 9e f5 brtc .+102 ; 0x124c <__addsf3x+0x7c> + 11e6: 8a c1 rjmp .+788 ; 0x14fc <__fp_zero> + 11e8: 0e f4 brtc .+2 ; 0x11ec <__addsf3x+0x1c> + 11ea: e0 95 com r30 + 11ec: 0b 2e mov r0, r27 + 11ee: ba 2f mov r27, r26 + 11f0: a0 2d mov r26, r0 + 11f2: 0b 01 movw r0, r22 + 11f4: b9 01 movw r22, r18 + 11f6: 90 01 movw r18, r0 + 11f8: 0c 01 movw r0, r24 + 11fa: ca 01 movw r24, r20 + 11fc: a0 01 movw r20, r0 + 11fe: 11 24 eor r1, r1 + 1200: ff 27 eor r31, r31 + 1202: 59 1b sub r21, r25 + 1204: 99 f0 breq .+38 ; 0x122c <__addsf3x+0x5c> + 1206: 59 3f cpi r21, 0xF9 ; 249 + 1208: 50 f4 brcc .+20 ; 0x121e <__addsf3x+0x4e> + 120a: 50 3e cpi r21, 0xE0 ; 224 + 120c: 68 f1 brcs .+90 ; 0x1268 <__addsf3x+0x98> + 120e: 1a 16 cp r1, r26 + 1210: f0 40 sbci r31, 0x00 ; 0 + 1212: a2 2f mov r26, r18 + 1214: 23 2f mov r18, r19 + 1216: 34 2f mov r19, r20 + 1218: 44 27 eor r20, r20 + 121a: 58 5f subi r21, 0xF8 ; 248 + 121c: f3 cf rjmp .-26 ; 0x1204 <__addsf3x+0x34> + 121e: 46 95 lsr r20 + 1220: 37 95 ror r19 + 1222: 27 95 ror r18 + 1224: a7 95 ror r26 + 1226: f0 40 sbci r31, 0x00 ; 0 + 1228: 53 95 inc r21 + 122a: c9 f7 brne .-14 ; 0x121e <__addsf3x+0x4e> + 122c: 7e f4 brtc .+30 ; 0x124c <__addsf3x+0x7c> + 122e: 1f 16 cp r1, r31 + 1230: ba 0b sbc r27, r26 + 1232: 62 0b sbc r22, r18 + 1234: 73 0b sbc r23, r19 + 1236: 84 0b sbc r24, r20 + 1238: ba f0 brmi .+46 ; 0x1268 <__addsf3x+0x98> + 123a: 91 50 subi r25, 0x01 ; 1 + 123c: a1 f0 breq .+40 ; 0x1266 <__addsf3x+0x96> + 123e: ff 0f add r31, r31 + 1240: bb 1f adc r27, r27 + 1242: 66 1f adc r22, r22 + 1244: 77 1f adc r23, r23 + 1246: 88 1f adc r24, r24 + 1248: c2 f7 brpl .-16 ; 0x123a <__addsf3x+0x6a> + 124a: 0e c0 rjmp .+28 ; 0x1268 <__addsf3x+0x98> + 124c: ba 0f add r27, r26 + 124e: 62 1f adc r22, r18 + 1250: 73 1f adc r23, r19 + 1252: 84 1f adc r24, r20 + 1254: 48 f4 brcc .+18 ; 0x1268 <__addsf3x+0x98> + 1256: 87 95 ror r24 + 1258: 77 95 ror r23 + 125a: 67 95 ror r22 + 125c: b7 95 ror r27 + 125e: f7 95 ror r31 + 1260: 9e 3f cpi r25, 0xFE ; 254 + 1262: 08 f0 brcs .+2 ; 0x1266 <__addsf3x+0x96> + 1264: b3 cf rjmp .-154 ; 0x11cc <__addsf3+0x1e> + 1266: 93 95 inc r25 + 1268: 88 0f add r24, r24 + 126a: 08 f0 brcs .+2 ; 0x126e <__addsf3x+0x9e> + 126c: 99 27 eor r25, r25 + 126e: ee 0f add r30, r30 + 1270: 97 95 ror r25 + 1272: 87 95 ror r24 + 1274: 08 95 ret -00000d1a <__cmpsf2>: - d1a: d4 d0 rcall .+424 ; 0xec4 <__fp_cmp> - d1c: 08 f4 brcc .+2 ; 0xd20 <__cmpsf2+0x6> - d1e: 81 e0 ldi r24, 0x01 ; 1 - d20: 08 95 ret +00001276 <__cmpsf2>: + 1276: d4 d0 rcall .+424 ; 0x1420 <__fp_cmp> + 1278: 08 f4 brcc .+2 ; 0x127c <__cmpsf2+0x6> + 127a: 81 e0 ldi r24, 0x01 ; 1 + 127c: 08 95 ret -00000d22 <__divsf3>: - d22: 0c d0 rcall .+24 ; 0xd3c <__divsf3x> - d24: 0a c1 rjmp .+532 ; 0xf3a <__fp_round> - d26: 02 d1 rcall .+516 ; 0xf2c <__fp_pscB> - d28: 40 f0 brcs .+16 ; 0xd3a <__divsf3+0x18> - d2a: f9 d0 rcall .+498 ; 0xf1e <__fp_pscA> - d2c: 30 f0 brcs .+12 ; 0xd3a <__divsf3+0x18> - d2e: 21 f4 brne .+8 ; 0xd38 <__divsf3+0x16> - d30: 5f 3f cpi r21, 0xFF ; 255 - d32: 19 f0 breq .+6 ; 0xd3a <__divsf3+0x18> - d34: eb c0 rjmp .+470 ; 0xf0c <__fp_inf> - d36: 51 11 cpse r21, r1 - d38: 34 c1 rjmp .+616 ; 0xfa2 <__fp_szero> - d3a: ee c0 rjmp .+476 ; 0xf18 <__fp_nan> +0000127e <__divsf3>: + 127e: 0c d0 rcall .+24 ; 0x1298 <__divsf3x> + 1280: 0a c1 rjmp .+532 ; 0x1496 <__fp_round> + 1282: 02 d1 rcall .+516 ; 0x1488 <__fp_pscB> + 1284: 40 f0 brcs .+16 ; 0x1296 <__divsf3+0x18> + 1286: f9 d0 rcall .+498 ; 0x147a <__fp_pscA> + 1288: 30 f0 brcs .+12 ; 0x1296 <__divsf3+0x18> + 128a: 21 f4 brne .+8 ; 0x1294 <__divsf3+0x16> + 128c: 5f 3f cpi r21, 0xFF ; 255 + 128e: 19 f0 breq .+6 ; 0x1296 <__divsf3+0x18> + 1290: eb c0 rjmp .+470 ; 0x1468 <__fp_inf> + 1292: 51 11 cpse r21, r1 + 1294: 34 c1 rjmp .+616 ; 0x14fe <__fp_szero> + 1296: ee c0 rjmp .+476 ; 0x1474 <__fp_nan> -00000d3c <__divsf3x>: - d3c: 0f d1 rcall .+542 ; 0xf5c <__fp_split3> - d3e: 98 f3 brcs .-26 ; 0xd26 <__divsf3+0x4> +00001298 <__divsf3x>: + 1298: 0f d1 rcall .+542 ; 0x14b8 <__fp_split3> + 129a: 98 f3 brcs .-26 ; 0x1282 <__divsf3+0x4> -00000d40 <__divsf3_pse>: - d40: 99 23 and r25, r25 - d42: c9 f3 breq .-14 ; 0xd36 <__divsf3+0x14> - d44: 55 23 and r21, r21 - d46: b1 f3 breq .-20 ; 0xd34 <__divsf3+0x12> - d48: 95 1b sub r25, r21 - d4a: 55 0b sbc r21, r21 - d4c: bb 27 eor r27, r27 - d4e: aa 27 eor r26, r26 - d50: 62 17 cp r22, r18 - d52: 73 07 cpc r23, r19 - d54: 84 07 cpc r24, r20 - d56: 38 f0 brcs .+14 ; 0xd66 <__divsf3_pse+0x26> - d58: 9f 5f subi r25, 0xFF ; 255 - d5a: 5f 4f sbci r21, 0xFF ; 255 - d5c: 22 0f add r18, r18 - d5e: 33 1f adc r19, r19 - d60: 44 1f adc r20, r20 - d62: aa 1f adc r26, r26 - d64: a9 f3 breq .-22 ; 0xd50 <__divsf3_pse+0x10> - d66: 33 d0 rcall .+102 ; 0xdce <__divsf3_pse+0x8e> - d68: 0e 2e mov r0, r30 - d6a: 3a f0 brmi .+14 ; 0xd7a <__divsf3_pse+0x3a> - d6c: e0 e8 ldi r30, 0x80 ; 128 - d6e: 30 d0 rcall .+96 ; 0xdd0 <__divsf3_pse+0x90> - d70: 91 50 subi r25, 0x01 ; 1 - d72: 50 40 sbci r21, 0x00 ; 0 - d74: e6 95 lsr r30 - d76: 00 1c adc r0, r0 - d78: ca f7 brpl .-14 ; 0xd6c <__divsf3_pse+0x2c> - d7a: 29 d0 rcall .+82 ; 0xdce <__divsf3_pse+0x8e> - d7c: fe 2f mov r31, r30 - d7e: 27 d0 rcall .+78 ; 0xdce <__divsf3_pse+0x8e> - d80: 66 0f add r22, r22 - d82: 77 1f adc r23, r23 - d84: 88 1f adc r24, r24 - d86: bb 1f adc r27, r27 - d88: 26 17 cp r18, r22 - d8a: 37 07 cpc r19, r23 - d8c: 48 07 cpc r20, r24 - d8e: ab 07 cpc r26, r27 - d90: b0 e8 ldi r27, 0x80 ; 128 - d92: 09 f0 breq .+2 ; 0xd96 <__divsf3_pse+0x56> - d94: bb 0b sbc r27, r27 - d96: 80 2d mov r24, r0 - d98: bf 01 movw r22, r30 - d9a: ff 27 eor r31, r31 - d9c: 93 58 subi r25, 0x83 ; 131 - d9e: 5f 4f sbci r21, 0xFF ; 255 - da0: 2a f0 brmi .+10 ; 0xdac <__divsf3_pse+0x6c> - da2: 9e 3f cpi r25, 0xFE ; 254 - da4: 51 05 cpc r21, r1 - da6: 68 f0 brcs .+26 ; 0xdc2 <__divsf3_pse+0x82> - da8: b1 c0 rjmp .+354 ; 0xf0c <__fp_inf> - daa: fb c0 rjmp .+502 ; 0xfa2 <__fp_szero> - dac: 5f 3f cpi r21, 0xFF ; 255 - dae: ec f3 brlt .-6 ; 0xdaa <__divsf3_pse+0x6a> - db0: 98 3e cpi r25, 0xE8 ; 232 - db2: dc f3 brlt .-10 ; 0xdaa <__divsf3_pse+0x6a> - db4: 86 95 lsr r24 - db6: 77 95 ror r23 - db8: 67 95 ror r22 - dba: b7 95 ror r27 - dbc: f7 95 ror r31 - dbe: 9f 5f subi r25, 0xFF ; 255 - dc0: c9 f7 brne .-14 ; 0xdb4 <__divsf3_pse+0x74> - dc2: 88 0f add r24, r24 - dc4: 91 1d adc r25, r1 - dc6: 96 95 lsr r25 - dc8: 87 95 ror r24 - dca: 97 f9 bld r25, 7 - dcc: 08 95 ret - dce: e1 e0 ldi r30, 0x01 ; 1 - dd0: 66 0f add r22, r22 - dd2: 77 1f adc r23, r23 - dd4: 88 1f adc r24, r24 - dd6: bb 1f adc r27, r27 - dd8: 62 17 cp r22, r18 - dda: 73 07 cpc r23, r19 - ddc: 84 07 cpc r24, r20 - dde: ba 07 cpc r27, r26 - de0: 20 f0 brcs .+8 ; 0xdea <__divsf3_pse+0xaa> - de2: 62 1b sub r22, r18 - de4: 73 0b sbc r23, r19 - de6: 84 0b sbc r24, r20 - de8: ba 0b sbc r27, r26 - dea: ee 1f adc r30, r30 - dec: 88 f7 brcc .-30 ; 0xdd0 <__divsf3_pse+0x90> - dee: e0 95 com r30 - df0: 08 95 ret +0000129c <__divsf3_pse>: + 129c: 99 23 and r25, r25 + 129e: c9 f3 breq .-14 ; 0x1292 <__divsf3+0x14> + 12a0: 55 23 and r21, r21 + 12a2: b1 f3 breq .-20 ; 0x1290 <__divsf3+0x12> + 12a4: 95 1b sub r25, r21 + 12a6: 55 0b sbc r21, r21 + 12a8: bb 27 eor r27, r27 + 12aa: aa 27 eor r26, r26 + 12ac: 62 17 cp r22, r18 + 12ae: 73 07 cpc r23, r19 + 12b0: 84 07 cpc r24, r20 + 12b2: 38 f0 brcs .+14 ; 0x12c2 <__divsf3_pse+0x26> + 12b4: 9f 5f subi r25, 0xFF ; 255 + 12b6: 5f 4f sbci r21, 0xFF ; 255 + 12b8: 22 0f add r18, r18 + 12ba: 33 1f adc r19, r19 + 12bc: 44 1f adc r20, r20 + 12be: aa 1f adc r26, r26 + 12c0: a9 f3 breq .-22 ; 0x12ac <__divsf3_pse+0x10> + 12c2: 33 d0 rcall .+102 ; 0x132a <__divsf3_pse+0x8e> + 12c4: 0e 2e mov r0, r30 + 12c6: 3a f0 brmi .+14 ; 0x12d6 <__divsf3_pse+0x3a> + 12c8: e0 e8 ldi r30, 0x80 ; 128 + 12ca: 30 d0 rcall .+96 ; 0x132c <__divsf3_pse+0x90> + 12cc: 91 50 subi r25, 0x01 ; 1 + 12ce: 50 40 sbci r21, 0x00 ; 0 + 12d0: e6 95 lsr r30 + 12d2: 00 1c adc r0, r0 + 12d4: ca f7 brpl .-14 ; 0x12c8 <__divsf3_pse+0x2c> + 12d6: 29 d0 rcall .+82 ; 0x132a <__divsf3_pse+0x8e> + 12d8: fe 2f mov r31, r30 + 12da: 27 d0 rcall .+78 ; 0x132a <__divsf3_pse+0x8e> + 12dc: 66 0f add r22, r22 + 12de: 77 1f adc r23, r23 + 12e0: 88 1f adc r24, r24 + 12e2: bb 1f adc r27, r27 + 12e4: 26 17 cp r18, r22 + 12e6: 37 07 cpc r19, r23 + 12e8: 48 07 cpc r20, r24 + 12ea: ab 07 cpc r26, r27 + 12ec: b0 e8 ldi r27, 0x80 ; 128 + 12ee: 09 f0 breq .+2 ; 0x12f2 <__divsf3_pse+0x56> + 12f0: bb 0b sbc r27, r27 + 12f2: 80 2d mov r24, r0 + 12f4: bf 01 movw r22, r30 + 12f6: ff 27 eor r31, r31 + 12f8: 93 58 subi r25, 0x83 ; 131 + 12fa: 5f 4f sbci r21, 0xFF ; 255 + 12fc: 2a f0 brmi .+10 ; 0x1308 <__divsf3_pse+0x6c> + 12fe: 9e 3f cpi r25, 0xFE ; 254 + 1300: 51 05 cpc r21, r1 + 1302: 68 f0 brcs .+26 ; 0x131e <__divsf3_pse+0x82> + 1304: b1 c0 rjmp .+354 ; 0x1468 <__fp_inf> + 1306: fb c0 rjmp .+502 ; 0x14fe <__fp_szero> + 1308: 5f 3f cpi r21, 0xFF ; 255 + 130a: ec f3 brlt .-6 ; 0x1306 <__divsf3_pse+0x6a> + 130c: 98 3e cpi r25, 0xE8 ; 232 + 130e: dc f3 brlt .-10 ; 0x1306 <__divsf3_pse+0x6a> + 1310: 86 95 lsr r24 + 1312: 77 95 ror r23 + 1314: 67 95 ror r22 + 1316: b7 95 ror r27 + 1318: f7 95 ror r31 + 131a: 9f 5f subi r25, 0xFF ; 255 + 131c: c9 f7 brne .-14 ; 0x1310 <__divsf3_pse+0x74> + 131e: 88 0f add r24, r24 + 1320: 91 1d adc r25, r1 + 1322: 96 95 lsr r25 + 1324: 87 95 ror r24 + 1326: 97 f9 bld r25, 7 + 1328: 08 95 ret + 132a: e1 e0 ldi r30, 0x01 ; 1 + 132c: 66 0f add r22, r22 + 132e: 77 1f adc r23, r23 + 1330: 88 1f adc r24, r24 + 1332: bb 1f adc r27, r27 + 1334: 62 17 cp r22, r18 + 1336: 73 07 cpc r23, r19 + 1338: 84 07 cpc r24, r20 + 133a: ba 07 cpc r27, r26 + 133c: 20 f0 brcs .+8 ; 0x1346 <__divsf3_pse+0xaa> + 133e: 62 1b sub r22, r18 + 1340: 73 0b sbc r23, r19 + 1342: 84 0b sbc r24, r20 + 1344: ba 0b sbc r27, r26 + 1346: ee 1f adc r30, r30 + 1348: 88 f7 brcc .-30 ; 0x132c <__divsf3_pse+0x90> + 134a: e0 95 com r30 + 134c: 08 95 ret -00000df2 <__fixunssfsi>: - df2: bc d0 rcall .+376 ; 0xf6c <__fp_splitA> - df4: 88 f0 brcs .+34 ; 0xe18 <__fixunssfsi+0x26> - df6: 9f 57 subi r25, 0x7F ; 127 - df8: 90 f0 brcs .+36 ; 0xe1e <__fixunssfsi+0x2c> - dfa: b9 2f mov r27, r25 - dfc: 99 27 eor r25, r25 - dfe: b7 51 subi r27, 0x17 ; 23 - e00: a0 f0 brcs .+40 ; 0xe2a <__fixunssfsi+0x38> - e02: d1 f0 breq .+52 ; 0xe38 <__fixunssfsi+0x46> - e04: 66 0f add r22, r22 - e06: 77 1f adc r23, r23 - e08: 88 1f adc r24, r24 - e0a: 99 1f adc r25, r25 - e0c: 1a f0 brmi .+6 ; 0xe14 <__fixunssfsi+0x22> - e0e: ba 95 dec r27 - e10: c9 f7 brne .-14 ; 0xe04 <__fixunssfsi+0x12> - e12: 12 c0 rjmp .+36 ; 0xe38 <__fixunssfsi+0x46> - e14: b1 30 cpi r27, 0x01 ; 1 - e16: 81 f0 breq .+32 ; 0xe38 <__fixunssfsi+0x46> - e18: c3 d0 rcall .+390 ; 0xfa0 <__fp_zero> - e1a: b1 e0 ldi r27, 0x01 ; 1 - e1c: 08 95 ret - e1e: c0 c0 rjmp .+384 ; 0xfa0 <__fp_zero> - e20: 67 2f mov r22, r23 - e22: 78 2f mov r23, r24 - e24: 88 27 eor r24, r24 - e26: b8 5f subi r27, 0xF8 ; 248 - e28: 39 f0 breq .+14 ; 0xe38 <__fixunssfsi+0x46> - e2a: b9 3f cpi r27, 0xF9 ; 249 - e2c: cc f3 brlt .-14 ; 0xe20 <__fixunssfsi+0x2e> - e2e: 86 95 lsr r24 - e30: 77 95 ror r23 - e32: 67 95 ror r22 - e34: b3 95 inc r27 - e36: d9 f7 brne .-10 ; 0xe2e <__fixunssfsi+0x3c> - e38: 3e f4 brtc .+14 ; 0xe48 <__fixunssfsi+0x56> - e3a: 90 95 com r25 - e3c: 80 95 com r24 - e3e: 70 95 com r23 - e40: 61 95 neg r22 - e42: 7f 4f sbci r23, 0xFF ; 255 - e44: 8f 4f sbci r24, 0xFF ; 255 - e46: 9f 4f sbci r25, 0xFF ; 255 - e48: 08 95 ret +0000134e <__fixunssfsi>: + 134e: bc d0 rcall .+376 ; 0x14c8 <__fp_splitA> + 1350: 88 f0 brcs .+34 ; 0x1374 <__fixunssfsi+0x26> + 1352: 9f 57 subi r25, 0x7F ; 127 + 1354: 90 f0 brcs .+36 ; 0x137a <__fixunssfsi+0x2c> + 1356: b9 2f mov r27, r25 + 1358: 99 27 eor r25, r25 + 135a: b7 51 subi r27, 0x17 ; 23 + 135c: a0 f0 brcs .+40 ; 0x1386 <__fixunssfsi+0x38> + 135e: d1 f0 breq .+52 ; 0x1394 <__fixunssfsi+0x46> + 1360: 66 0f add r22, r22 + 1362: 77 1f adc r23, r23 + 1364: 88 1f adc r24, r24 + 1366: 99 1f adc r25, r25 + 1368: 1a f0 brmi .+6 ; 0x1370 <__fixunssfsi+0x22> + 136a: ba 95 dec r27 + 136c: c9 f7 brne .-14 ; 0x1360 <__fixunssfsi+0x12> + 136e: 12 c0 rjmp .+36 ; 0x1394 <__fixunssfsi+0x46> + 1370: b1 30 cpi r27, 0x01 ; 1 + 1372: 81 f0 breq .+32 ; 0x1394 <__fixunssfsi+0x46> + 1374: c3 d0 rcall .+390 ; 0x14fc <__fp_zero> + 1376: b1 e0 ldi r27, 0x01 ; 1 + 1378: 08 95 ret + 137a: c0 c0 rjmp .+384 ; 0x14fc <__fp_zero> + 137c: 67 2f mov r22, r23 + 137e: 78 2f mov r23, r24 + 1380: 88 27 eor r24, r24 + 1382: b8 5f subi r27, 0xF8 ; 248 + 1384: 39 f0 breq .+14 ; 0x1394 <__fixunssfsi+0x46> + 1386: b9 3f cpi r27, 0xF9 ; 249 + 1388: cc f3 brlt .-14 ; 0x137c <__fixunssfsi+0x2e> + 138a: 86 95 lsr r24 + 138c: 77 95 ror r23 + 138e: 67 95 ror r22 + 1390: b3 95 inc r27 + 1392: d9 f7 brne .-10 ; 0x138a <__fixunssfsi+0x3c> + 1394: 3e f4 brtc .+14 ; 0x13a4 <__fixunssfsi+0x56> + 1396: 90 95 com r25 + 1398: 80 95 com r24 + 139a: 70 95 com r23 + 139c: 61 95 neg r22 + 139e: 7f 4f sbci r23, 0xFF ; 255 + 13a0: 8f 4f sbci r24, 0xFF ; 255 + 13a2: 9f 4f sbci r25, 0xFF ; 255 + 13a4: 08 95 ret -00000e4a <__floatunsisf>: - e4a: e8 94 clt - e4c: 09 c0 rjmp .+18 ; 0xe60 <__floatsisf+0x12> +000013a6 <__floatunsisf>: + 13a6: e8 94 clt + 13a8: 09 c0 rjmp .+18 ; 0x13bc <__floatsisf+0x12> -00000e4e <__floatsisf>: - e4e: 97 fb bst r25, 7 - e50: 3e f4 brtc .+14 ; 0xe60 <__floatsisf+0x12> - e52: 90 95 com r25 - e54: 80 95 com r24 - e56: 70 95 com r23 - e58: 61 95 neg r22 - e5a: 7f 4f sbci r23, 0xFF ; 255 - e5c: 8f 4f sbci r24, 0xFF ; 255 - e5e: 9f 4f sbci r25, 0xFF ; 255 - e60: 99 23 and r25, r25 - e62: a9 f0 breq .+42 ; 0xe8e <__floatsisf+0x40> - e64: f9 2f mov r31, r25 - e66: 96 e9 ldi r25, 0x96 ; 150 - e68: bb 27 eor r27, r27 - e6a: 93 95 inc r25 - e6c: f6 95 lsr r31 - e6e: 87 95 ror r24 - e70: 77 95 ror r23 - e72: 67 95 ror r22 - e74: b7 95 ror r27 - e76: f1 11 cpse r31, r1 - e78: f8 cf rjmp .-16 ; 0xe6a <__floatsisf+0x1c> - e7a: fa f4 brpl .+62 ; 0xeba <__floatsisf+0x6c> - e7c: bb 0f add r27, r27 - e7e: 11 f4 brne .+4 ; 0xe84 <__floatsisf+0x36> - e80: 60 ff sbrs r22, 0 - e82: 1b c0 rjmp .+54 ; 0xeba <__floatsisf+0x6c> - e84: 6f 5f subi r22, 0xFF ; 255 - e86: 7f 4f sbci r23, 0xFF ; 255 - e88: 8f 4f sbci r24, 0xFF ; 255 - e8a: 9f 4f sbci r25, 0xFF ; 255 - e8c: 16 c0 rjmp .+44 ; 0xeba <__floatsisf+0x6c> - e8e: 88 23 and r24, r24 - e90: 11 f0 breq .+4 ; 0xe96 <__floatsisf+0x48> - e92: 96 e9 ldi r25, 0x96 ; 150 - e94: 11 c0 rjmp .+34 ; 0xeb8 <__floatsisf+0x6a> - e96: 77 23 and r23, r23 - e98: 21 f0 breq .+8 ; 0xea2 <__floatsisf+0x54> - e9a: 9e e8 ldi r25, 0x8E ; 142 - e9c: 87 2f mov r24, r23 - e9e: 76 2f mov r23, r22 - ea0: 05 c0 rjmp .+10 ; 0xeac <__floatsisf+0x5e> - ea2: 66 23 and r22, r22 - ea4: 71 f0 breq .+28 ; 0xec2 <__floatsisf+0x74> - ea6: 96 e8 ldi r25, 0x86 ; 134 - ea8: 86 2f mov r24, r22 - eaa: 70 e0 ldi r23, 0x00 ; 0 - eac: 60 e0 ldi r22, 0x00 ; 0 - eae: 2a f0 brmi .+10 ; 0xeba <__floatsisf+0x6c> - eb0: 9a 95 dec r25 - eb2: 66 0f add r22, r22 - eb4: 77 1f adc r23, r23 - eb6: 88 1f adc r24, r24 - eb8: da f7 brpl .-10 ; 0xeb0 <__floatsisf+0x62> - eba: 88 0f add r24, r24 - ebc: 96 95 lsr r25 - ebe: 87 95 ror r24 - ec0: 97 f9 bld r25, 7 - ec2: 08 95 ret +000013aa <__floatsisf>: + 13aa: 97 fb bst r25, 7 + 13ac: 3e f4 brtc .+14 ; 0x13bc <__floatsisf+0x12> + 13ae: 90 95 com r25 + 13b0: 80 95 com r24 + 13b2: 70 95 com r23 + 13b4: 61 95 neg r22 + 13b6: 7f 4f sbci r23, 0xFF ; 255 + 13b8: 8f 4f sbci r24, 0xFF ; 255 + 13ba: 9f 4f sbci r25, 0xFF ; 255 + 13bc: 99 23 and r25, r25 + 13be: a9 f0 breq .+42 ; 0x13ea <__floatsisf+0x40> + 13c0: f9 2f mov r31, r25 + 13c2: 96 e9 ldi r25, 0x96 ; 150 + 13c4: bb 27 eor r27, r27 + 13c6: 93 95 inc r25 + 13c8: f6 95 lsr r31 + 13ca: 87 95 ror r24 + 13cc: 77 95 ror r23 + 13ce: 67 95 ror r22 + 13d0: b7 95 ror r27 + 13d2: f1 11 cpse r31, r1 + 13d4: f8 cf rjmp .-16 ; 0x13c6 <__floatsisf+0x1c> + 13d6: fa f4 brpl .+62 ; 0x1416 <__floatsisf+0x6c> + 13d8: bb 0f add r27, r27 + 13da: 11 f4 brne .+4 ; 0x13e0 <__floatsisf+0x36> + 13dc: 60 ff sbrs r22, 0 + 13de: 1b c0 rjmp .+54 ; 0x1416 <__floatsisf+0x6c> + 13e0: 6f 5f subi r22, 0xFF ; 255 + 13e2: 7f 4f sbci r23, 0xFF ; 255 + 13e4: 8f 4f sbci r24, 0xFF ; 255 + 13e6: 9f 4f sbci r25, 0xFF ; 255 + 13e8: 16 c0 rjmp .+44 ; 0x1416 <__floatsisf+0x6c> + 13ea: 88 23 and r24, r24 + 13ec: 11 f0 breq .+4 ; 0x13f2 <__floatsisf+0x48> + 13ee: 96 e9 ldi r25, 0x96 ; 150 + 13f0: 11 c0 rjmp .+34 ; 0x1414 <__floatsisf+0x6a> + 13f2: 77 23 and r23, r23 + 13f4: 21 f0 breq .+8 ; 0x13fe <__floatsisf+0x54> + 13f6: 9e e8 ldi r25, 0x8E ; 142 + 13f8: 87 2f mov r24, r23 + 13fa: 76 2f mov r23, r22 + 13fc: 05 c0 rjmp .+10 ; 0x1408 <__floatsisf+0x5e> + 13fe: 66 23 and r22, r22 + 1400: 71 f0 breq .+28 ; 0x141e <__floatsisf+0x74> + 1402: 96 e8 ldi r25, 0x86 ; 134 + 1404: 86 2f mov r24, r22 + 1406: 70 e0 ldi r23, 0x00 ; 0 + 1408: 60 e0 ldi r22, 0x00 ; 0 + 140a: 2a f0 brmi .+10 ; 0x1416 <__floatsisf+0x6c> + 140c: 9a 95 dec r25 + 140e: 66 0f add r22, r22 + 1410: 77 1f adc r23, r23 + 1412: 88 1f adc r24, r24 + 1414: da f7 brpl .-10 ; 0x140c <__floatsisf+0x62> + 1416: 88 0f add r24, r24 + 1418: 96 95 lsr r25 + 141a: 87 95 ror r24 + 141c: 97 f9 bld r25, 7 + 141e: 08 95 ret -00000ec4 <__fp_cmp>: - ec4: 99 0f add r25, r25 - ec6: 00 08 sbc r0, r0 - ec8: 55 0f add r21, r21 - eca: aa 0b sbc r26, r26 - ecc: e0 e8 ldi r30, 0x80 ; 128 - ece: fe ef ldi r31, 0xFE ; 254 - ed0: 16 16 cp r1, r22 - ed2: 17 06 cpc r1, r23 - ed4: e8 07 cpc r30, r24 - ed6: f9 07 cpc r31, r25 - ed8: c0 f0 brcs .+48 ; 0xf0a <__fp_cmp+0x46> - eda: 12 16 cp r1, r18 - edc: 13 06 cpc r1, r19 - ede: e4 07 cpc r30, r20 - ee0: f5 07 cpc r31, r21 - ee2: 98 f0 brcs .+38 ; 0xf0a <__fp_cmp+0x46> - ee4: 62 1b sub r22, r18 - ee6: 73 0b sbc r23, r19 - ee8: 84 0b sbc r24, r20 - eea: 95 0b sbc r25, r21 - eec: 39 f4 brne .+14 ; 0xefc <__fp_cmp+0x38> - eee: 0a 26 eor r0, r26 - ef0: 61 f0 breq .+24 ; 0xf0a <__fp_cmp+0x46> - ef2: 23 2b or r18, r19 - ef4: 24 2b or r18, r20 - ef6: 25 2b or r18, r21 - ef8: 21 f4 brne .+8 ; 0xf02 <__fp_cmp+0x3e> - efa: 08 95 ret - efc: 0a 26 eor r0, r26 - efe: 09 f4 brne .+2 ; 0xf02 <__fp_cmp+0x3e> - f00: a1 40 sbci r26, 0x01 ; 1 - f02: a6 95 lsr r26 - f04: 8f ef ldi r24, 0xFF ; 255 - f06: 81 1d adc r24, r1 - f08: 81 1d adc r24, r1 - f0a: 08 95 ret +00001420 <__fp_cmp>: + 1420: 99 0f add r25, r25 + 1422: 00 08 sbc r0, r0 + 1424: 55 0f add r21, r21 + 1426: aa 0b sbc r26, r26 + 1428: e0 e8 ldi r30, 0x80 ; 128 + 142a: fe ef ldi r31, 0xFE ; 254 + 142c: 16 16 cp r1, r22 + 142e: 17 06 cpc r1, r23 + 1430: e8 07 cpc r30, r24 + 1432: f9 07 cpc r31, r25 + 1434: c0 f0 brcs .+48 ; 0x1466 <__fp_cmp+0x46> + 1436: 12 16 cp r1, r18 + 1438: 13 06 cpc r1, r19 + 143a: e4 07 cpc r30, r20 + 143c: f5 07 cpc r31, r21 + 143e: 98 f0 brcs .+38 ; 0x1466 <__fp_cmp+0x46> + 1440: 62 1b sub r22, r18 + 1442: 73 0b sbc r23, r19 + 1444: 84 0b sbc r24, r20 + 1446: 95 0b sbc r25, r21 + 1448: 39 f4 brne .+14 ; 0x1458 <__fp_cmp+0x38> + 144a: 0a 26 eor r0, r26 + 144c: 61 f0 breq .+24 ; 0x1466 <__fp_cmp+0x46> + 144e: 23 2b or r18, r19 + 1450: 24 2b or r18, r20 + 1452: 25 2b or r18, r21 + 1454: 21 f4 brne .+8 ; 0x145e <__fp_cmp+0x3e> + 1456: 08 95 ret + 1458: 0a 26 eor r0, r26 + 145a: 09 f4 brne .+2 ; 0x145e <__fp_cmp+0x3e> + 145c: a1 40 sbci r26, 0x01 ; 1 + 145e: a6 95 lsr r26 + 1460: 8f ef ldi r24, 0xFF ; 255 + 1462: 81 1d adc r24, r1 + 1464: 81 1d adc r24, r1 + 1466: 08 95 ret -00000f0c <__fp_inf>: - f0c: 97 f9 bld r25, 7 - f0e: 9f 67 ori r25, 0x7F ; 127 - f10: 80 e8 ldi r24, 0x80 ; 128 - f12: 70 e0 ldi r23, 0x00 ; 0 - f14: 60 e0 ldi r22, 0x00 ; 0 - f16: 08 95 ret +00001468 <__fp_inf>: + 1468: 97 f9 bld r25, 7 + 146a: 9f 67 ori r25, 0x7F ; 127 + 146c: 80 e8 ldi r24, 0x80 ; 128 + 146e: 70 e0 ldi r23, 0x00 ; 0 + 1470: 60 e0 ldi r22, 0x00 ; 0 + 1472: 08 95 ret -00000f18 <__fp_nan>: - f18: 9f ef ldi r25, 0xFF ; 255 - f1a: 80 ec ldi r24, 0xC0 ; 192 - f1c: 08 95 ret +00001474 <__fp_nan>: + 1474: 9f ef ldi r25, 0xFF ; 255 + 1476: 80 ec ldi r24, 0xC0 ; 192 + 1478: 08 95 ret -00000f1e <__fp_pscA>: - f1e: 00 24 eor r0, r0 - f20: 0a 94 dec r0 - f22: 16 16 cp r1, r22 - f24: 17 06 cpc r1, r23 - f26: 18 06 cpc r1, r24 - f28: 09 06 cpc r0, r25 - f2a: 08 95 ret +0000147a <__fp_pscA>: + 147a: 00 24 eor r0, r0 + 147c: 0a 94 dec r0 + 147e: 16 16 cp r1, r22 + 1480: 17 06 cpc r1, r23 + 1482: 18 06 cpc r1, r24 + 1484: 09 06 cpc r0, r25 + 1486: 08 95 ret -00000f2c <__fp_pscB>: - f2c: 00 24 eor r0, r0 - f2e: 0a 94 dec r0 - f30: 12 16 cp r1, r18 - f32: 13 06 cpc r1, r19 - f34: 14 06 cpc r1, r20 - f36: 05 06 cpc r0, r21 - f38: 08 95 ret +00001488 <__fp_pscB>: + 1488: 00 24 eor r0, r0 + 148a: 0a 94 dec r0 + 148c: 12 16 cp r1, r18 + 148e: 13 06 cpc r1, r19 + 1490: 14 06 cpc r1, r20 + 1492: 05 06 cpc r0, r21 + 1494: 08 95 ret -00000f3a <__fp_round>: - f3a: 09 2e mov r0, r25 - f3c: 03 94 inc r0 - f3e: 00 0c add r0, r0 - f40: 11 f4 brne .+4 ; 0xf46 <__fp_round+0xc> - f42: 88 23 and r24, r24 - f44: 52 f0 brmi .+20 ; 0xf5a <__fp_round+0x20> - f46: bb 0f add r27, r27 - f48: 40 f4 brcc .+16 ; 0xf5a <__fp_round+0x20> - f4a: bf 2b or r27, r31 - f4c: 11 f4 brne .+4 ; 0xf52 <__fp_round+0x18> - f4e: 60 ff sbrs r22, 0 - f50: 04 c0 rjmp .+8 ; 0xf5a <__fp_round+0x20> - f52: 6f 5f subi r22, 0xFF ; 255 - f54: 7f 4f sbci r23, 0xFF ; 255 - f56: 8f 4f sbci r24, 0xFF ; 255 - f58: 9f 4f sbci r25, 0xFF ; 255 - f5a: 08 95 ret +00001496 <__fp_round>: + 1496: 09 2e mov r0, r25 + 1498: 03 94 inc r0 + 149a: 00 0c add r0, r0 + 149c: 11 f4 brne .+4 ; 0x14a2 <__fp_round+0xc> + 149e: 88 23 and r24, r24 + 14a0: 52 f0 brmi .+20 ; 0x14b6 <__fp_round+0x20> + 14a2: bb 0f add r27, r27 + 14a4: 40 f4 brcc .+16 ; 0x14b6 <__fp_round+0x20> + 14a6: bf 2b or r27, r31 + 14a8: 11 f4 brne .+4 ; 0x14ae <__fp_round+0x18> + 14aa: 60 ff sbrs r22, 0 + 14ac: 04 c0 rjmp .+8 ; 0x14b6 <__fp_round+0x20> + 14ae: 6f 5f subi r22, 0xFF ; 255 + 14b0: 7f 4f sbci r23, 0xFF ; 255 + 14b2: 8f 4f sbci r24, 0xFF ; 255 + 14b4: 9f 4f sbci r25, 0xFF ; 255 + 14b6: 08 95 ret -00000f5c <__fp_split3>: - f5c: 57 fd sbrc r21, 7 - f5e: 90 58 subi r25, 0x80 ; 128 - f60: 44 0f add r20, r20 - f62: 55 1f adc r21, r21 - f64: 59 f0 breq .+22 ; 0xf7c <__fp_splitA+0x10> - f66: 5f 3f cpi r21, 0xFF ; 255 - f68: 71 f0 breq .+28 ; 0xf86 <__fp_splitA+0x1a> - f6a: 47 95 ror r20 +000014b8 <__fp_split3>: + 14b8: 57 fd sbrc r21, 7 + 14ba: 90 58 subi r25, 0x80 ; 128 + 14bc: 44 0f add r20, r20 + 14be: 55 1f adc r21, r21 + 14c0: 59 f0 breq .+22 ; 0x14d8 <__fp_splitA+0x10> + 14c2: 5f 3f cpi r21, 0xFF ; 255 + 14c4: 71 f0 breq .+28 ; 0x14e2 <__fp_splitA+0x1a> + 14c6: 47 95 ror r20 -00000f6c <__fp_splitA>: - f6c: 88 0f add r24, r24 - f6e: 97 fb bst r25, 7 - f70: 99 1f adc r25, r25 - f72: 61 f0 breq .+24 ; 0xf8c <__fp_splitA+0x20> - f74: 9f 3f cpi r25, 0xFF ; 255 - f76: 79 f0 breq .+30 ; 0xf96 <__fp_splitA+0x2a> - f78: 87 95 ror r24 - f7a: 08 95 ret - f7c: 12 16 cp r1, r18 - f7e: 13 06 cpc r1, r19 - f80: 14 06 cpc r1, r20 - f82: 55 1f adc r21, r21 - f84: f2 cf rjmp .-28 ; 0xf6a <__fp_split3+0xe> - f86: 46 95 lsr r20 - f88: f1 df rcall .-30 ; 0xf6c <__fp_splitA> - f8a: 08 c0 rjmp .+16 ; 0xf9c <__fp_splitA+0x30> - f8c: 16 16 cp r1, r22 - f8e: 17 06 cpc r1, r23 - f90: 18 06 cpc r1, r24 - f92: 99 1f adc r25, r25 - f94: f1 cf rjmp .-30 ; 0xf78 <__fp_splitA+0xc> - f96: 86 95 lsr r24 - f98: 71 05 cpc r23, r1 - f9a: 61 05 cpc r22, r1 - f9c: 08 94 sec - f9e: 08 95 ret +000014c8 <__fp_splitA>: + 14c8: 88 0f add r24, r24 + 14ca: 97 fb bst r25, 7 + 14cc: 99 1f adc r25, r25 + 14ce: 61 f0 breq .+24 ; 0x14e8 <__fp_splitA+0x20> + 14d0: 9f 3f cpi r25, 0xFF ; 255 + 14d2: 79 f0 breq .+30 ; 0x14f2 <__fp_splitA+0x2a> + 14d4: 87 95 ror r24 + 14d6: 08 95 ret + 14d8: 12 16 cp r1, r18 + 14da: 13 06 cpc r1, r19 + 14dc: 14 06 cpc r1, r20 + 14de: 55 1f adc r21, r21 + 14e0: f2 cf rjmp .-28 ; 0x14c6 <__fp_split3+0xe> + 14e2: 46 95 lsr r20 + 14e4: f1 df rcall .-30 ; 0x14c8 <__fp_splitA> + 14e6: 08 c0 rjmp .+16 ; 0x14f8 <__fp_splitA+0x30> + 14e8: 16 16 cp r1, r22 + 14ea: 17 06 cpc r1, r23 + 14ec: 18 06 cpc r1, r24 + 14ee: 99 1f adc r25, r25 + 14f0: f1 cf rjmp .-30 ; 0x14d4 <__fp_splitA+0xc> + 14f2: 86 95 lsr r24 + 14f4: 71 05 cpc r23, r1 + 14f6: 61 05 cpc r22, r1 + 14f8: 08 94 sec + 14fa: 08 95 ret -00000fa0 <__fp_zero>: - fa0: e8 94 clt +000014fc <__fp_zero>: + 14fc: e8 94 clt -00000fa2 <__fp_szero>: - fa2: bb 27 eor r27, r27 - fa4: 66 27 eor r22, r22 - fa6: 77 27 eor r23, r23 - fa8: cb 01 movw r24, r22 - faa: 97 f9 bld r25, 7 - fac: 08 95 ret +000014fe <__fp_szero>: + 14fe: bb 27 eor r27, r27 + 1500: 66 27 eor r22, r22 + 1502: 77 27 eor r23, r23 + 1504: cb 01 movw r24, r22 + 1506: 97 f9 bld r25, 7 + 1508: 08 95 ret -00000fae <__gesf2>: - fae: 8a df rcall .-236 ; 0xec4 <__fp_cmp> - fb0: 08 f4 brcc .+2 ; 0xfb4 <__gesf2+0x6> - fb2: 8f ef ldi r24, 0xFF ; 255 - fb4: 08 95 ret +0000150a <__gesf2>: + 150a: 8a df rcall .-236 ; 0x1420 <__fp_cmp> + 150c: 08 f4 brcc .+2 ; 0x1510 <__gesf2+0x6> + 150e: 8f ef ldi r24, 0xFF ; 255 + 1510: 08 95 ret -00000fb6 <__mulsf3>: - fb6: 0b d0 rcall .+22 ; 0xfce <__mulsf3x> - fb8: c0 cf rjmp .-128 ; 0xf3a <__fp_round> - fba: b1 df rcall .-158 ; 0xf1e <__fp_pscA> - fbc: 28 f0 brcs .+10 ; 0xfc8 <__mulsf3+0x12> - fbe: b6 df rcall .-148 ; 0xf2c <__fp_pscB> - fc0: 18 f0 brcs .+6 ; 0xfc8 <__mulsf3+0x12> - fc2: 95 23 and r25, r21 - fc4: 09 f0 breq .+2 ; 0xfc8 <__mulsf3+0x12> - fc6: a2 cf rjmp .-188 ; 0xf0c <__fp_inf> - fc8: a7 cf rjmp .-178 ; 0xf18 <__fp_nan> - fca: 11 24 eor r1, r1 - fcc: ea cf rjmp .-44 ; 0xfa2 <__fp_szero> +00001512 <__mulsf3>: + 1512: 0b d0 rcall .+22 ; 0x152a <__mulsf3x> + 1514: c0 cf rjmp .-128 ; 0x1496 <__fp_round> + 1516: b1 df rcall .-158 ; 0x147a <__fp_pscA> + 1518: 28 f0 brcs .+10 ; 0x1524 <__mulsf3+0x12> + 151a: b6 df rcall .-148 ; 0x1488 <__fp_pscB> + 151c: 18 f0 brcs .+6 ; 0x1524 <__mulsf3+0x12> + 151e: 95 23 and r25, r21 + 1520: 09 f0 breq .+2 ; 0x1524 <__mulsf3+0x12> + 1522: a2 cf rjmp .-188 ; 0x1468 <__fp_inf> + 1524: a7 cf rjmp .-178 ; 0x1474 <__fp_nan> + 1526: 11 24 eor r1, r1 + 1528: ea cf rjmp .-44 ; 0x14fe <__fp_szero> -00000fce <__mulsf3x>: - fce: c6 df rcall .-116 ; 0xf5c <__fp_split3> - fd0: a0 f3 brcs .-24 ; 0xfba <__mulsf3+0x4> +0000152a <__mulsf3x>: + 152a: c6 df rcall .-116 ; 0x14b8 <__fp_split3> + 152c: a0 f3 brcs .-24 ; 0x1516 <__mulsf3+0x4> -00000fd2 <__mulsf3_pse>: - fd2: 95 9f mul r25, r21 - fd4: d1 f3 breq .-12 ; 0xfca <__mulsf3+0x14> - fd6: 95 0f add r25, r21 - fd8: 50 e0 ldi r21, 0x00 ; 0 - fda: 55 1f adc r21, r21 - fdc: 62 9f mul r22, r18 - fde: f0 01 movw r30, r0 - fe0: 72 9f mul r23, r18 - fe2: bb 27 eor r27, r27 - fe4: f0 0d add r31, r0 - fe6: b1 1d adc r27, r1 - fe8: 63 9f mul r22, r19 - fea: aa 27 eor r26, r26 - fec: f0 0d add r31, r0 - fee: b1 1d adc r27, r1 - ff0: aa 1f adc r26, r26 - ff2: 64 9f mul r22, r20 - ff4: 66 27 eor r22, r22 - ff6: b0 0d add r27, r0 - ff8: a1 1d adc r26, r1 - ffa: 66 1f adc r22, r22 - ffc: 82 9f mul r24, r18 - ffe: 22 27 eor r18, r18 - 1000: b0 0d add r27, r0 - 1002: a1 1d adc r26, r1 - 1004: 62 1f adc r22, r18 - 1006: 73 9f mul r23, r19 - 1008: b0 0d add r27, r0 - 100a: a1 1d adc r26, r1 - 100c: 62 1f adc r22, r18 - 100e: 83 9f mul r24, r19 - 1010: a0 0d add r26, r0 - 1012: 61 1d adc r22, r1 - 1014: 22 1f adc r18, r18 - 1016: 74 9f mul r23, r20 - 1018: 33 27 eor r19, r19 - 101a: a0 0d add r26, r0 - 101c: 61 1d adc r22, r1 - 101e: 23 1f adc r18, r19 - 1020: 84 9f mul r24, r20 - 1022: 60 0d add r22, r0 - 1024: 21 1d adc r18, r1 - 1026: 82 2f mov r24, r18 - 1028: 76 2f mov r23, r22 - 102a: 6a 2f mov r22, r26 - 102c: 11 24 eor r1, r1 - 102e: 9f 57 subi r25, 0x7F ; 127 - 1030: 50 40 sbci r21, 0x00 ; 0 - 1032: 8a f0 brmi .+34 ; 0x1056 <__mulsf3_pse+0x84> - 1034: e1 f0 breq .+56 ; 0x106e <__mulsf3_pse+0x9c> - 1036: 88 23 and r24, r24 - 1038: 4a f0 brmi .+18 ; 0x104c <__mulsf3_pse+0x7a> - 103a: ee 0f add r30, r30 - 103c: ff 1f adc r31, r31 - 103e: bb 1f adc r27, r27 - 1040: 66 1f adc r22, r22 - 1042: 77 1f adc r23, r23 - 1044: 88 1f adc r24, r24 - 1046: 91 50 subi r25, 0x01 ; 1 - 1048: 50 40 sbci r21, 0x00 ; 0 - 104a: a9 f7 brne .-22 ; 0x1036 <__mulsf3_pse+0x64> - 104c: 9e 3f cpi r25, 0xFE ; 254 - 104e: 51 05 cpc r21, r1 - 1050: 70 f0 brcs .+28 ; 0x106e <__mulsf3_pse+0x9c> - 1052: 5c cf rjmp .-328 ; 0xf0c <__fp_inf> - 1054: a6 cf rjmp .-180 ; 0xfa2 <__fp_szero> - 1056: 5f 3f cpi r21, 0xFF ; 255 - 1058: ec f3 brlt .-6 ; 0x1054 <__mulsf3_pse+0x82> - 105a: 98 3e cpi r25, 0xE8 ; 232 - 105c: dc f3 brlt .-10 ; 0x1054 <__mulsf3_pse+0x82> - 105e: 86 95 lsr r24 - 1060: 77 95 ror r23 - 1062: 67 95 ror r22 - 1064: b7 95 ror r27 - 1066: f7 95 ror r31 - 1068: e7 95 ror r30 - 106a: 9f 5f subi r25, 0xFF ; 255 - 106c: c1 f7 brne .-16 ; 0x105e <__mulsf3_pse+0x8c> - 106e: fe 2b or r31, r30 - 1070: 88 0f add r24, r24 - 1072: 91 1d adc r25, r1 - 1074: 96 95 lsr r25 - 1076: 87 95 ror r24 - 1078: 97 f9 bld r25, 7 - 107a: 08 95 ret +0000152e <__mulsf3_pse>: + 152e: 95 9f mul r25, r21 + 1530: d1 f3 breq .-12 ; 0x1526 <__mulsf3+0x14> + 1532: 95 0f add r25, r21 + 1534: 50 e0 ldi r21, 0x00 ; 0 + 1536: 55 1f adc r21, r21 + 1538: 62 9f mul r22, r18 + 153a: f0 01 movw r30, r0 + 153c: 72 9f mul r23, r18 + 153e: bb 27 eor r27, r27 + 1540: f0 0d add r31, r0 + 1542: b1 1d adc r27, r1 + 1544: 63 9f mul r22, r19 + 1546: aa 27 eor r26, r26 + 1548: f0 0d add r31, r0 + 154a: b1 1d adc r27, r1 + 154c: aa 1f adc r26, r26 + 154e: 64 9f mul r22, r20 + 1550: 66 27 eor r22, r22 + 1552: b0 0d add r27, r0 + 1554: a1 1d adc r26, r1 + 1556: 66 1f adc r22, r22 + 1558: 82 9f mul r24, r18 + 155a: 22 27 eor r18, r18 + 155c: b0 0d add r27, r0 + 155e: a1 1d adc r26, r1 + 1560: 62 1f adc r22, r18 + 1562: 73 9f mul r23, r19 + 1564: b0 0d add r27, r0 + 1566: a1 1d adc r26, r1 + 1568: 62 1f adc r22, r18 + 156a: 83 9f mul r24, r19 + 156c: a0 0d add r26, r0 + 156e: 61 1d adc r22, r1 + 1570: 22 1f adc r18, r18 + 1572: 74 9f mul r23, r20 + 1574: 33 27 eor r19, r19 + 1576: a0 0d add r26, r0 + 1578: 61 1d adc r22, r1 + 157a: 23 1f adc r18, r19 + 157c: 84 9f mul r24, r20 + 157e: 60 0d add r22, r0 + 1580: 21 1d adc r18, r1 + 1582: 82 2f mov r24, r18 + 1584: 76 2f mov r23, r22 + 1586: 6a 2f mov r22, r26 + 1588: 11 24 eor r1, r1 + 158a: 9f 57 subi r25, 0x7F ; 127 + 158c: 50 40 sbci r21, 0x00 ; 0 + 158e: 8a f0 brmi .+34 ; 0x15b2 <__mulsf3_pse+0x84> + 1590: e1 f0 breq .+56 ; 0x15ca <__mulsf3_pse+0x9c> + 1592: 88 23 and r24, r24 + 1594: 4a f0 brmi .+18 ; 0x15a8 <__mulsf3_pse+0x7a> + 1596: ee 0f add r30, r30 + 1598: ff 1f adc r31, r31 + 159a: bb 1f adc r27, r27 + 159c: 66 1f adc r22, r22 + 159e: 77 1f adc r23, r23 + 15a0: 88 1f adc r24, r24 + 15a2: 91 50 subi r25, 0x01 ; 1 + 15a4: 50 40 sbci r21, 0x00 ; 0 + 15a6: a9 f7 brne .-22 ; 0x1592 <__mulsf3_pse+0x64> + 15a8: 9e 3f cpi r25, 0xFE ; 254 + 15aa: 51 05 cpc r21, r1 + 15ac: 70 f0 brcs .+28 ; 0x15ca <__mulsf3_pse+0x9c> + 15ae: 5c cf rjmp .-328 ; 0x1468 <__fp_inf> + 15b0: a6 cf rjmp .-180 ; 0x14fe <__fp_szero> + 15b2: 5f 3f cpi r21, 0xFF ; 255 + 15b4: ec f3 brlt .-6 ; 0x15b0 <__mulsf3_pse+0x82> + 15b6: 98 3e cpi r25, 0xE8 ; 232 + 15b8: dc f3 brlt .-10 ; 0x15b0 <__mulsf3_pse+0x82> + 15ba: 86 95 lsr r24 + 15bc: 77 95 ror r23 + 15be: 67 95 ror r22 + 15c0: b7 95 ror r27 + 15c2: f7 95 ror r31 + 15c4: e7 95 ror r30 + 15c6: 9f 5f subi r25, 0xFF ; 255 + 15c8: c1 f7 brne .-16 ; 0x15ba <__mulsf3_pse+0x8c> + 15ca: fe 2b or r31, r30 + 15cc: 88 0f add r24, r24 + 15ce: 91 1d adc r25, r1 + 15d0: 96 95 lsr r25 + 15d2: 87 95 ror r24 + 15d4: 97 f9 bld r25, 7 + 15d6: 08 95 ret -0000107c <__tablejump2__>: - 107c: ee 0f add r30, r30 - 107e: ff 1f adc r31, r31 +000015d8 <__divmodhi4>: + 15d8: 97 fb bst r25, 7 + 15da: 07 2e mov r0, r23 + 15dc: 16 f4 brtc .+4 ; 0x15e2 <__divmodhi4+0xa> + 15de: 00 94 com r0 + 15e0: 07 d0 rcall .+14 ; 0x15f0 <__divmodhi4_neg1> + 15e2: 77 fd sbrc r23, 7 + 15e4: 09 d0 rcall .+18 ; 0x15f8 <__divmodhi4_neg2> + 15e6: 0e 94 0c 0b call 0x1618 ; 0x1618 <__udivmodhi4> + 15ea: 07 fc sbrc r0, 7 + 15ec: 05 d0 rcall .+10 ; 0x15f8 <__divmodhi4_neg2> + 15ee: 3e f4 brtc .+14 ; 0x15fe <__divmodhi4_exit> -00001080 <__tablejump__>: - 1080: 05 90 lpm r0, Z+ - 1082: f4 91 lpm r31, Z - 1084: e0 2d mov r30, r0 - 1086: 09 94 ijmp +000015f0 <__divmodhi4_neg1>: + 15f0: 90 95 com r25 + 15f2: 81 95 neg r24 + 15f4: 9f 4f sbci r25, 0xFF ; 255 + 15f6: 08 95 ret -00001088 : - 1088: ef 92 push r14 - 108a: 0f 93 push r16 - 108c: 1f 93 push r17 - 108e: cf 93 push r28 - 1090: c0 2f mov r28, r16 - 1092: 47 ff sbrs r20, 7 - 1094: 02 c0 rjmp .+4 ; 0x109a - 1096: 34 e1 ldi r19, 0x14 ; 20 - 1098: 01 c0 rjmp .+2 ; 0x109c - 109a: 34 e0 ldi r19, 0x04 ; 4 - 109c: e4 2f mov r30, r20 - 109e: ff 27 eor r31, r31 - 10a0: e7 fd sbrc r30, 7 - 10a2: f0 95 com r31 - 10a4: f7 ff sbrs r31, 7 - 10a6: 03 c0 rjmp .+6 ; 0x10ae - 10a8: f1 95 neg r31 - 10aa: e1 95 neg r30 - 10ac: f1 09 sbc r31, r1 - 10ae: e3 2e mov r14, r19 - 10b0: 02 2f mov r16, r18 - 10b2: 2e 2f mov r18, r30 - 10b4: 4c 2f mov r20, r28 - 10b6: 51 2f mov r21, r17 - 10b8: 0e 94 7b 08 call 0x10f6 ; 0x10f6 - 10bc: 8c 2f mov r24, r28 - 10be: 91 2f mov r25, r17 - 10c0: cf 91 pop r28 - 10c2: 1f 91 pop r17 - 10c4: 0f 91 pop r16 - 10c6: ef 90 pop r14 - 10c8: 08 95 ret +000015f8 <__divmodhi4_neg2>: + 15f8: 70 95 com r23 + 15fa: 61 95 neg r22 + 15fc: 7f 4f sbci r23, 0xFF ; 255 -000010ca : - 10ca: fb 01 movw r30, r22 - 10cc: 9f 01 movw r18, r30 - 10ce: 42 30 cpi r20, 0x02 ; 2 - 10d0: 74 f0 brlt .+28 ; 0x10ee - 10d2: 45 32 cpi r20, 0x25 ; 37 - 10d4: 64 f4 brge .+24 ; 0x10ee - 10d6: 64 2f mov r22, r20 - 10d8: 77 27 eor r23, r23 - 10da: 0e 94 e0 0a call 0x15c0 ; 0x15c0 <__udivmodhi4> - 10de: 80 5d subi r24, 0xD0 ; 208 - 10e0: 8a 33 cpi r24, 0x3A ; 58 - 10e2: 0c f0 brlt .+2 ; 0x10e6 - 10e4: 89 5d subi r24, 0xD9 ; 217 - 10e6: 81 93 st Z+, r24 - 10e8: cb 01 movw r24, r22 - 10ea: 00 97 sbiw r24, 0x00 ; 0 - 10ec: a1 f7 brne .-24 ; 0x10d6 - 10ee: 10 82 st Z, r1 - 10f0: c9 01 movw r24, r18 - 10f2: 0c 94 d0 0a jmp 0x15a0 ; 0x15a0 +000015fe <__divmodhi4_exit>: + 15fe: 08 95 ret -000010f6 : - 10f6: 6f 92 push r6 - 10f8: 7f 92 push r7 - 10fa: 9f 92 push r9 - 10fc: af 92 push r10 - 10fe: bf 92 push r11 - 1100: cf 92 push r12 - 1102: df 92 push r13 - 1104: ef 92 push r14 - 1106: ff 92 push r15 - 1108: 0f 93 push r16 - 110a: 1f 93 push r17 - 110c: cf 93 push r28 - 110e: df 93 push r29 - 1110: cd b7 in r28, 0x3d ; 61 - 1112: de b7 in r29, 0x3e ; 62 - 1114: 29 97 sbiw r28, 0x09 ; 9 - 1116: 0f b6 in r0, 0x3f ; 63 - 1118: f8 94 cli - 111a: de bf out 0x3e, r29 ; 62 - 111c: 0f be out 0x3f, r0 ; 63 - 111e: cd bf out 0x3d, r28 ; 61 - 1120: 6a 01 movw r12, r20 - 1122: b2 2e mov r11, r18 - 1124: 10 2f mov r17, r16 - 1126: 0c 33 cpi r16, 0x3C ; 60 - 1128: 18 f4 brcc .+6 ; 0x1130 - 112a: f0 2e mov r15, r16 - 112c: f3 94 inc r15 - 112e: 02 c0 rjmp .+4 ; 0x1134 - 1130: 5c e3 ldi r21, 0x3C ; 60 - 1132: f5 2e mov r15, r21 - 1134: 0f 2d mov r16, r15 - 1136: 27 e0 ldi r18, 0x07 ; 7 - 1138: ae 01 movw r20, r28 - 113a: 4f 5f subi r20, 0xFF ; 255 - 113c: 5f 4f sbci r21, 0xFF ; 255 - 113e: 0e 94 f8 09 call 0x13f0 ; 0x13f0 <__ftoa_engine> - 1142: 79 81 ldd r23, Y+1 ; 0x01 - 1144: 27 2f mov r18, r23 - 1146: 29 70 andi r18, 0x09 ; 9 - 1148: 21 30 cpi r18, 0x01 ; 1 - 114a: 31 f0 breq .+12 ; 0x1158 - 114c: e1 fc sbrc r14, 1 - 114e: 06 c0 rjmp .+12 ; 0x115c - 1150: e0 fe sbrs r14, 0 - 1152: 06 c0 rjmp .+12 ; 0x1160 - 1154: 60 e2 ldi r22, 0x20 ; 32 - 1156: 05 c0 rjmp .+10 ; 0x1162 - 1158: 6d e2 ldi r22, 0x2D ; 45 - 115a: 03 c0 rjmp .+6 ; 0x1162 - 115c: 6b e2 ldi r22, 0x2B ; 43 - 115e: 01 c0 rjmp .+2 ; 0x1162 - 1160: 60 e0 ldi r22, 0x00 ; 0 - 1162: 73 ff sbrs r23, 3 - 1164: 3d c0 rjmp .+122 ; 0x11e0 - 1166: 66 23 and r22, r22 - 1168: 11 f0 breq .+4 ; 0x116e - 116a: 84 e0 ldi r24, 0x04 ; 4 - 116c: 01 c0 rjmp .+2 ; 0x1170 - 116e: 83 e0 ldi r24, 0x03 ; 3 - 1170: 8b 15 cp r24, r11 - 1172: 10 f4 brcc .+4 ; 0x1178 - 1174: b8 1a sub r11, r24 - 1176: 01 c0 rjmp .+2 ; 0x117a - 1178: b1 2c mov r11, r1 - 117a: e4 fc sbrc r14, 4 - 117c: 0b c0 rjmp .+22 ; 0x1194 - 117e: 8b 2d mov r24, r11 - 1180: f6 01 movw r30, r12 - 1182: 90 e2 ldi r25, 0x20 ; 32 - 1184: 02 c0 rjmp .+4 ; 0x118a - 1186: 91 93 st Z+, r25 - 1188: 81 50 subi r24, 0x01 ; 1 - 118a: 81 11 cpse r24, r1 - 118c: fc cf rjmp .-8 ; 0x1186 - 118e: cb 0c add r12, r11 - 1190: d1 1c adc r13, r1 - 1192: b1 2c mov r11, r1 - 1194: 66 23 and r22, r22 - 1196: 19 f0 breq .+6 ; 0x119e - 1198: d6 01 movw r26, r12 - 119a: 6d 93 st X+, r22 - 119c: 6d 01 movw r12, r26 - 119e: e2 fe sbrs r14, 2 - 11a0: 0a c0 rjmp .+20 ; 0x11b6 - 11a2: 8e e4 ldi r24, 0x4E ; 78 - 11a4: f6 01 movw r30, r12 - 11a6: 80 83 st Z, r24 - 11a8: 91 e4 ldi r25, 0x41 ; 65 - 11aa: 91 83 std Z+1, r25 ; 0x01 - 11ac: 82 83 std Z+2, r24 ; 0x02 - 11ae: f3 e0 ldi r31, 0x03 ; 3 - 11b0: cf 0e add r12, r31 - 11b2: d1 1c adc r13, r1 - 11b4: 0c c0 rjmp .+24 ; 0x11ce - 11b6: 8e e6 ldi r24, 0x6E ; 110 - 11b8: d6 01 movw r26, r12 - 11ba: 8c 93 st X, r24 - 11bc: 91 e6 ldi r25, 0x61 ; 97 - 11be: 11 96 adiw r26, 0x01 ; 1 - 11c0: 9c 93 st X, r25 - 11c2: 11 97 sbiw r26, 0x01 ; 1 - 11c4: 12 96 adiw r26, 0x02 ; 2 - 11c6: 8c 93 st X, r24 - 11c8: b3 e0 ldi r27, 0x03 ; 3 - 11ca: cb 0e add r12, r27 - 11cc: d1 1c adc r13, r1 - 11ce: 8b 2d mov r24, r11 - 11d0: f6 01 movw r30, r12 - 11d2: 90 e2 ldi r25, 0x20 ; 32 - 11d4: 02 c0 rjmp .+4 ; 0x11da - 11d6: 91 93 st Z+, r25 - 11d8: 81 50 subi r24, 0x01 ; 1 - 11da: 81 11 cpse r24, r1 - 11dc: fc cf rjmp .-8 ; 0x11d6 - 11de: 40 c0 rjmp .+128 ; 0x1260 - 11e0: 72 ff sbrs r23, 2 - 11e2: 45 c0 rjmp .+138 ; 0x126e - 11e4: 66 23 and r22, r22 - 11e6: 11 f0 breq .+4 ; 0x11ec - 11e8: 84 e0 ldi r24, 0x04 ; 4 - 11ea: 01 c0 rjmp .+2 ; 0x11ee - 11ec: 83 e0 ldi r24, 0x03 ; 3 - 11ee: 8b 15 cp r24, r11 - 11f0: 10 f4 brcc .+4 ; 0x11f6 - 11f2: b8 1a sub r11, r24 - 11f4: 01 c0 rjmp .+2 ; 0x11f8 - 11f6: b1 2c mov r11, r1 - 11f8: e4 fc sbrc r14, 4 - 11fa: 0b c0 rjmp .+22 ; 0x1212 - 11fc: 8b 2d mov r24, r11 - 11fe: f6 01 movw r30, r12 - 1200: 90 e2 ldi r25, 0x20 ; 32 - 1202: 02 c0 rjmp .+4 ; 0x1208 - 1204: 91 93 st Z+, r25 - 1206: 81 50 subi r24, 0x01 ; 1 - 1208: 81 11 cpse r24, r1 - 120a: fc cf rjmp .-8 ; 0x1204 - 120c: cb 0c add r12, r11 - 120e: d1 1c adc r13, r1 - 1210: b1 2c mov r11, r1 - 1212: 66 23 and r22, r22 - 1214: 19 f0 breq .+6 ; 0x121c - 1216: f6 01 movw r30, r12 - 1218: 61 93 st Z+, r22 - 121a: 6f 01 movw r12, r30 - 121c: e2 fe sbrs r14, 2 - 121e: 0e c0 rjmp .+28 ; 0x123c - 1220: 89 e4 ldi r24, 0x49 ; 73 - 1222: d6 01 movw r26, r12 - 1224: 8c 93 st X, r24 - 1226: 8e e4 ldi r24, 0x4E ; 78 - 1228: 11 96 adiw r26, 0x01 ; 1 - 122a: 8c 93 st X, r24 - 122c: 11 97 sbiw r26, 0x01 ; 1 - 122e: 86 e4 ldi r24, 0x46 ; 70 - 1230: 12 96 adiw r26, 0x02 ; 2 - 1232: 8c 93 st X, r24 - 1234: b3 e0 ldi r27, 0x03 ; 3 - 1236: cb 0e add r12, r27 - 1238: d1 1c adc r13, r1 - 123a: 0a c0 rjmp .+20 ; 0x1250 - 123c: 89 e6 ldi r24, 0x69 ; 105 - 123e: f6 01 movw r30, r12 - 1240: 80 83 st Z, r24 - 1242: 8e e6 ldi r24, 0x6E ; 110 - 1244: 81 83 std Z+1, r24 ; 0x01 - 1246: 86 e6 ldi r24, 0x66 ; 102 - 1248: 82 83 std Z+2, r24 ; 0x02 - 124a: f3 e0 ldi r31, 0x03 ; 3 - 124c: cf 0e add r12, r31 - 124e: d1 1c adc r13, r1 - 1250: 8b 2d mov r24, r11 - 1252: f6 01 movw r30, r12 - 1254: 90 e2 ldi r25, 0x20 ; 32 - 1256: 02 c0 rjmp .+4 ; 0x125c - 1258: 91 93 st Z+, r25 - 125a: 81 50 subi r24, 0x01 ; 1 - 125c: 81 11 cpse r24, r1 - 125e: fc cf rjmp .-8 ; 0x1258 - 1260: f6 01 movw r30, r12 - 1262: eb 0d add r30, r11 - 1264: f1 1d adc r31, r1 - 1266: 10 82 st Z, r1 - 1268: 2e ef ldi r18, 0xFE ; 254 - 126a: 3f ef ldi r19, 0xFF ; 255 - 126c: ac c0 rjmp .+344 ; 0x13c6 - 126e: a1 e0 ldi r26, 0x01 ; 1 - 1270: 61 11 cpse r22, r1 - 1272: 01 c0 rjmp .+2 ; 0x1276 - 1274: a0 e0 ldi r26, 0x00 ; 0 - 1276: 4a 2f mov r20, r26 - 1278: 50 e0 ldi r21, 0x00 ; 0 - 127a: 18 16 cp r1, r24 - 127c: 19 06 cpc r1, r25 - 127e: 24 f4 brge .+8 ; 0x1288 - 1280: 9c 01 movw r18, r24 - 1282: 2f 5f subi r18, 0xFF ; 255 - 1284: 3f 4f sbci r19, 0xFF ; 255 - 1286: 02 c0 rjmp .+4 ; 0x128c - 1288: 21 e0 ldi r18, 0x01 ; 1 - 128a: 30 e0 ldi r19, 0x00 ; 0 - 128c: 24 0f add r18, r20 - 128e: 35 1f adc r19, r21 - 1290: 11 23 and r17, r17 - 1292: 29 f0 breq .+10 ; 0x129e - 1294: 41 2f mov r20, r17 - 1296: 50 e0 ldi r21, 0x00 ; 0 - 1298: 4f 5f subi r20, 0xFF ; 255 - 129a: 5f 4f sbci r21, 0xFF ; 255 - 129c: 02 c0 rjmp .+4 ; 0x12a2 - 129e: 40 e0 ldi r20, 0x00 ; 0 - 12a0: 50 e0 ldi r21, 0x00 ; 0 - 12a2: 42 0f add r20, r18 - 12a4: 53 1f adc r21, r19 - 12a6: 2b 2d mov r18, r11 - 12a8: 30 e0 ldi r19, 0x00 ; 0 - 12aa: 42 17 cp r20, r18 - 12ac: 53 07 cpc r21, r19 - 12ae: 14 f4 brge .+4 ; 0x12b4 - 12b0: b4 1a sub r11, r20 - 12b2: 01 c0 rjmp .+2 ; 0x12b6 - 12b4: b1 2c mov r11, r1 - 12b6: 3e 2d mov r19, r14 - 12b8: 30 71 andi r19, 0x10 ; 16 - 12ba: e4 fc sbrc r14, 4 - 12bc: 0d c0 rjmp .+26 ; 0x12d8 - 12be: e3 fc sbrc r14, 3 - 12c0: 0b c0 rjmp .+22 ; 0x12d8 - 12c2: 2b 2d mov r18, r11 - 12c4: f6 01 movw r30, r12 - 12c6: 40 e2 ldi r20, 0x20 ; 32 - 12c8: 02 c0 rjmp .+4 ; 0x12ce - 12ca: 41 93 st Z+, r20 - 12cc: 21 50 subi r18, 0x01 ; 1 - 12ce: 21 11 cpse r18, r1 - 12d0: fc cf rjmp .-8 ; 0x12ca - 12d2: cb 0c add r12, r11 - 12d4: d1 1c adc r13, r1 - 12d6: b1 2c mov r11, r1 - 12d8: aa 23 and r26, r26 - 12da: 19 f0 breq .+6 ; 0x12e2 - 12dc: d6 01 movw r26, r12 - 12de: 6d 93 st X+, r22 - 12e0: 6d 01 movw r12, r26 - 12e2: 31 11 cpse r19, r1 - 12e4: 0b c0 rjmp .+22 ; 0x12fc - 12e6: 2b 2d mov r18, r11 - 12e8: f6 01 movw r30, r12 - 12ea: 30 e3 ldi r19, 0x30 ; 48 - 12ec: 02 c0 rjmp .+4 ; 0x12f2 - 12ee: 31 93 st Z+, r19 - 12f0: 21 50 subi r18, 0x01 ; 1 - 12f2: 21 11 cpse r18, r1 - 12f4: fc cf rjmp .-8 ; 0x12ee - 12f6: cb 0c add r12, r11 - 12f8: d1 1c adc r13, r1 - 12fa: b1 2c mov r11, r1 - 12fc: f8 0e add r15, r24 - 12fe: 0a 81 ldd r16, Y+2 ; 0x02 - 1300: 40 e1 ldi r20, 0x10 ; 16 - 1302: a4 2e mov r10, r20 - 1304: a7 22 and r10, r23 - 1306: 74 ff sbrs r23, 4 - 1308: 03 c0 rjmp .+6 ; 0x1310 - 130a: 01 33 cpi r16, 0x31 ; 49 - 130c: 09 f4 brne .+2 ; 0x1310 - 130e: fa 94 dec r15 - 1310: 1f 14 cp r1, r15 - 1312: 2c f4 brge .+10 ; 0x131e - 1314: 2f 2d mov r18, r15 - 1316: 29 30 cpi r18, 0x09 ; 9 - 1318: 18 f0 brcs .+6 ; 0x1320 - 131a: 28 e0 ldi r18, 0x08 ; 8 - 131c: 01 c0 rjmp .+2 ; 0x1320 - 131e: 21 e0 ldi r18, 0x01 ; 1 - 1320: ac 01 movw r20, r24 - 1322: 97 ff sbrs r25, 7 - 1324: 02 c0 rjmp .+4 ; 0x132a - 1326: 40 e0 ldi r20, 0x00 ; 0 - 1328: 50 e0 ldi r21, 0x00 ; 0 - 132a: 60 e0 ldi r22, 0x00 ; 0 - 132c: 70 e0 ldi r23, 0x00 ; 0 - 132e: 3e e2 ldi r19, 0x2E ; 46 - 1330: 93 2e mov r9, r19 - 1332: fc 01 movw r30, r24 - 1334: e2 1b sub r30, r18 - 1336: f1 09 sbc r31, r1 - 1338: 9f 01 movw r18, r30 - 133a: dc 01 movw r26, r24 - 133c: a4 1b sub r26, r20 - 133e: b5 0b sbc r27, r21 - 1340: fe 01 movw r30, r28 - 1342: 31 96 adiw r30, 0x01 ; 1 - 1344: ea 0f add r30, r26 - 1346: fb 1f adc r31, r27 - 1348: a1 2f mov r26, r17 - 134a: b0 e0 ldi r27, 0x00 ; 0 - 134c: 66 24 eor r6, r6 - 134e: 77 24 eor r7, r7 - 1350: 6a 1a sub r6, r26 - 1352: 7b 0a sbc r7, r27 - 1354: 4f 3f cpi r20, 0xFF ; 255 - 1356: 1f ef ldi r17, 0xFF ; 255 - 1358: 51 07 cpc r21, r17 - 135a: 19 f4 brne .+6 ; 0x1362 - 135c: d6 01 movw r26, r12 - 135e: 9d 92 st X+, r9 - 1360: 6d 01 movw r12, r26 - 1362: 84 17 cp r24, r20 - 1364: 95 07 cpc r25, r21 - 1366: 54 f0 brlt .+20 ; 0x137c - 1368: 24 17 cp r18, r20 - 136a: 35 07 cpc r19, r21 - 136c: 3c f4 brge .+14 ; 0x137c - 136e: 7f 01 movw r14, r30 - 1370: e6 0e add r14, r22 - 1372: f7 1e adc r15, r23 - 1374: d7 01 movw r26, r14 - 1376: 11 96 adiw r26, 0x01 ; 1 - 1378: 1c 91 ld r17, X - 137a: 01 c0 rjmp .+2 ; 0x137e - 137c: 10 e3 ldi r17, 0x30 ; 48 - 137e: 41 50 subi r20, 0x01 ; 1 - 1380: 51 09 sbc r21, r1 - 1382: 6f 5f subi r22, 0xFF ; 255 - 1384: 7f 4f sbci r23, 0xFF ; 255 - 1386: 46 15 cp r20, r6 - 1388: 57 05 cpc r21, r7 - 138a: 24 f0 brlt .+8 ; 0x1394 - 138c: d6 01 movw r26, r12 - 138e: 1d 93 st X+, r17 - 1390: 6d 01 movw r12, r26 - 1392: e0 cf rjmp .-64 ; 0x1354 - 1394: 48 17 cp r20, r24 - 1396: 59 07 cpc r21, r25 - 1398: 39 f4 brne .+14 ; 0x13a8 - 139a: 06 33 cpi r16, 0x36 ; 54 - 139c: 20 f4 brcc .+8 ; 0x13a6 - 139e: 05 33 cpi r16, 0x35 ; 53 - 13a0: 19 f4 brne .+6 ; 0x13a8 - 13a2: a1 10 cpse r10, r1 - 13a4: 01 c0 rjmp .+2 ; 0x13a8 - 13a6: 11 e3 ldi r17, 0x31 ; 49 - 13a8: f6 01 movw r30, r12 - 13aa: 11 93 st Z+, r17 - 13ac: 8b 2d mov r24, r11 - 13ae: df 01 movw r26, r30 - 13b0: 90 e2 ldi r25, 0x20 ; 32 - 13b2: 02 c0 rjmp .+4 ; 0x13b8 - 13b4: 9d 93 st X+, r25 - 13b6: 81 50 subi r24, 0x01 ; 1 - 13b8: 81 11 cpse r24, r1 - 13ba: fc cf rjmp .-8 ; 0x13b4 - 13bc: eb 0d add r30, r11 - 13be: f1 1d adc r31, r1 - 13c0: 10 82 st Z, r1 - 13c2: 20 e0 ldi r18, 0x00 ; 0 - 13c4: 30 e0 ldi r19, 0x00 ; 0 - 13c6: c9 01 movw r24, r18 - 13c8: 29 96 adiw r28, 0x09 ; 9 - 13ca: 0f b6 in r0, 0x3f ; 63 - 13cc: f8 94 cli - 13ce: de bf out 0x3e, r29 ; 62 - 13d0: 0f be out 0x3f, r0 ; 63 - 13d2: cd bf out 0x3d, r28 ; 61 - 13d4: df 91 pop r29 - 13d6: cf 91 pop r28 - 13d8: 1f 91 pop r17 - 13da: 0f 91 pop r16 - 13dc: ff 90 pop r15 - 13de: ef 90 pop r14 - 13e0: df 90 pop r13 - 13e2: cf 90 pop r12 - 13e4: bf 90 pop r11 - 13e6: af 90 pop r10 - 13e8: 9f 90 pop r9 - 13ea: 7f 90 pop r7 - 13ec: 6f 90 pop r6 - 13ee: 08 95 ret +00001600 <__umulhisi3>: + 1600: a2 9f mul r26, r18 + 1602: b0 01 movw r22, r0 + 1604: b3 9f mul r27, r19 + 1606: c0 01 movw r24, r0 + 1608: a3 9f mul r26, r19 + 160a: 01 d0 rcall .+2 ; 0x160e <__umulhisi3+0xe> + 160c: b2 9f mul r27, r18 + 160e: 70 0d add r23, r0 + 1610: 81 1d adc r24, r1 + 1612: 11 24 eor r1, r1 + 1614: 91 1d adc r25, r1 + 1616: 08 95 ret -000013f0 <__ftoa_engine>: - 13f0: 28 30 cpi r18, 0x08 ; 8 - 13f2: 08 f0 brcs .+2 ; 0x13f6 <__ftoa_engine+0x6> - 13f4: 27 e0 ldi r18, 0x07 ; 7 - 13f6: 33 27 eor r19, r19 - 13f8: da 01 movw r26, r20 - 13fa: 99 0f add r25, r25 - 13fc: 31 1d adc r19, r1 - 13fe: 87 fd sbrc r24, 7 - 1400: 91 60 ori r25, 0x01 ; 1 - 1402: 00 96 adiw r24, 0x00 ; 0 - 1404: 61 05 cpc r22, r1 - 1406: 71 05 cpc r23, r1 - 1408: 39 f4 brne .+14 ; 0x1418 <__ftoa_engine+0x28> - 140a: 32 60 ori r19, 0x02 ; 2 - 140c: 2e 5f subi r18, 0xFE ; 254 - 140e: 3d 93 st X+, r19 - 1410: 30 e3 ldi r19, 0x30 ; 48 - 1412: 2a 95 dec r18 - 1414: e1 f7 brne .-8 ; 0x140e <__ftoa_engine+0x1e> - 1416: 08 95 ret - 1418: 9f 3f cpi r25, 0xFF ; 255 - 141a: 30 f0 brcs .+12 ; 0x1428 <__ftoa_engine+0x38> - 141c: 80 38 cpi r24, 0x80 ; 128 - 141e: 71 05 cpc r23, r1 - 1420: 61 05 cpc r22, r1 - 1422: 09 f0 breq .+2 ; 0x1426 <__ftoa_engine+0x36> - 1424: 3c 5f subi r19, 0xFC ; 252 - 1426: 3c 5f subi r19, 0xFC ; 252 - 1428: 3d 93 st X+, r19 - 142a: 91 30 cpi r25, 0x01 ; 1 - 142c: 08 f0 brcs .+2 ; 0x1430 <__ftoa_engine+0x40> - 142e: 80 68 ori r24, 0x80 ; 128 - 1430: 91 1d adc r25, r1 - 1432: df 93 push r29 - 1434: cf 93 push r28 - 1436: 1f 93 push r17 - 1438: 0f 93 push r16 - 143a: ff 92 push r15 - 143c: ef 92 push r14 - 143e: 19 2f mov r17, r25 - 1440: 98 7f andi r25, 0xF8 ; 248 - 1442: 96 95 lsr r25 - 1444: e9 2f mov r30, r25 - 1446: 96 95 lsr r25 - 1448: 96 95 lsr r25 - 144a: e9 0f add r30, r25 - 144c: ff 27 eor r31, r31 - 144e: e2 55 subi r30, 0x52 ; 82 - 1450: ff 4f sbci r31, 0xFF ; 255 - 1452: 99 27 eor r25, r25 - 1454: 33 27 eor r19, r19 - 1456: ee 24 eor r14, r14 - 1458: ff 24 eor r15, r15 - 145a: a7 01 movw r20, r14 - 145c: e7 01 movw r28, r14 - 145e: 05 90 lpm r0, Z+ - 1460: 08 94 sec - 1462: 07 94 ror r0 - 1464: 28 f4 brcc .+10 ; 0x1470 <__ftoa_engine+0x80> - 1466: 36 0f add r19, r22 - 1468: e7 1e adc r14, r23 - 146a: f8 1e adc r15, r24 - 146c: 49 1f adc r20, r25 - 146e: 51 1d adc r21, r1 - 1470: 66 0f add r22, r22 - 1472: 77 1f adc r23, r23 - 1474: 88 1f adc r24, r24 - 1476: 99 1f adc r25, r25 - 1478: 06 94 lsr r0 - 147a: a1 f7 brne .-24 ; 0x1464 <__ftoa_engine+0x74> - 147c: 05 90 lpm r0, Z+ - 147e: 07 94 ror r0 - 1480: 28 f4 brcc .+10 ; 0x148c <__ftoa_engine+0x9c> - 1482: e7 0e add r14, r23 - 1484: f8 1e adc r15, r24 - 1486: 49 1f adc r20, r25 - 1488: 56 1f adc r21, r22 - 148a: c1 1d adc r28, r1 - 148c: 77 0f add r23, r23 - 148e: 88 1f adc r24, r24 - 1490: 99 1f adc r25, r25 - 1492: 66 1f adc r22, r22 - 1494: 06 94 lsr r0 - 1496: a1 f7 brne .-24 ; 0x1480 <__ftoa_engine+0x90> - 1498: 05 90 lpm r0, Z+ - 149a: 07 94 ror r0 - 149c: 28 f4 brcc .+10 ; 0x14a8 <__ftoa_engine+0xb8> - 149e: f8 0e add r15, r24 - 14a0: 49 1f adc r20, r25 - 14a2: 56 1f adc r21, r22 - 14a4: c7 1f adc r28, r23 - 14a6: d1 1d adc r29, r1 - 14a8: 88 0f add r24, r24 - 14aa: 99 1f adc r25, r25 - 14ac: 66 1f adc r22, r22 - 14ae: 77 1f adc r23, r23 - 14b0: 06 94 lsr r0 - 14b2: a1 f7 brne .-24 ; 0x149c <__ftoa_engine+0xac> - 14b4: 05 90 lpm r0, Z+ - 14b6: 07 94 ror r0 - 14b8: 20 f4 brcc .+8 ; 0x14c2 <__ftoa_engine+0xd2> - 14ba: 49 0f add r20, r25 - 14bc: 56 1f adc r21, r22 - 14be: c7 1f adc r28, r23 - 14c0: d8 1f adc r29, r24 - 14c2: 99 0f add r25, r25 - 14c4: 66 1f adc r22, r22 - 14c6: 77 1f adc r23, r23 - 14c8: 88 1f adc r24, r24 - 14ca: 06 94 lsr r0 - 14cc: a9 f7 brne .-22 ; 0x14b8 <__ftoa_engine+0xc8> - 14ce: 84 91 lpm r24, Z - 14d0: 10 95 com r17 - 14d2: 17 70 andi r17, 0x07 ; 7 - 14d4: 41 f0 breq .+16 ; 0x14e6 <__ftoa_engine+0xf6> - 14d6: d6 95 lsr r29 - 14d8: c7 95 ror r28 - 14da: 57 95 ror r21 - 14dc: 47 95 ror r20 - 14de: f7 94 ror r15 - 14e0: e7 94 ror r14 - 14e2: 1a 95 dec r17 - 14e4: c1 f7 brne .-16 ; 0x14d6 <__ftoa_engine+0xe6> - 14e6: e4 e5 ldi r30, 0x54 ; 84 - 14e8: f0 e0 ldi r31, 0x00 ; 0 - 14ea: 68 94 set - 14ec: 15 90 lpm r1, Z+ - 14ee: 15 91 lpm r17, Z+ - 14f0: 35 91 lpm r19, Z+ - 14f2: 65 91 lpm r22, Z+ - 14f4: 95 91 lpm r25, Z+ - 14f6: 05 90 lpm r0, Z+ - 14f8: 7f e2 ldi r23, 0x2F ; 47 - 14fa: 73 95 inc r23 - 14fc: e1 18 sub r14, r1 - 14fe: f1 0a sbc r15, r17 - 1500: 43 0b sbc r20, r19 - 1502: 56 0b sbc r21, r22 - 1504: c9 0b sbc r28, r25 - 1506: d0 09 sbc r29, r0 - 1508: c0 f7 brcc .-16 ; 0x14fa <__ftoa_engine+0x10a> - 150a: e1 0c add r14, r1 - 150c: f1 1e adc r15, r17 - 150e: 43 1f adc r20, r19 - 1510: 56 1f adc r21, r22 - 1512: c9 1f adc r28, r25 - 1514: d0 1d adc r29, r0 - 1516: 7e f4 brtc .+30 ; 0x1536 <__ftoa_engine+0x146> - 1518: 70 33 cpi r23, 0x30 ; 48 - 151a: 11 f4 brne .+4 ; 0x1520 <__ftoa_engine+0x130> - 151c: 8a 95 dec r24 - 151e: e6 cf rjmp .-52 ; 0x14ec <__ftoa_engine+0xfc> - 1520: e8 94 clt - 1522: 01 50 subi r16, 0x01 ; 1 - 1524: 30 f0 brcs .+12 ; 0x1532 <__ftoa_engine+0x142> - 1526: 08 0f add r16, r24 - 1528: 0a f4 brpl .+2 ; 0x152c <__ftoa_engine+0x13c> - 152a: 00 27 eor r16, r16 - 152c: 02 17 cp r16, r18 - 152e: 08 f4 brcc .+2 ; 0x1532 <__ftoa_engine+0x142> - 1530: 20 2f mov r18, r16 - 1532: 23 95 inc r18 - 1534: 02 2f mov r16, r18 - 1536: 7a 33 cpi r23, 0x3A ; 58 - 1538: 28 f0 brcs .+10 ; 0x1544 <__ftoa_engine+0x154> - 153a: 79 e3 ldi r23, 0x39 ; 57 - 153c: 7d 93 st X+, r23 - 153e: 2a 95 dec r18 - 1540: e9 f7 brne .-6 ; 0x153c <__ftoa_engine+0x14c> - 1542: 10 c0 rjmp .+32 ; 0x1564 <__ftoa_engine+0x174> - 1544: 7d 93 st X+, r23 - 1546: 2a 95 dec r18 - 1548: 89 f6 brne .-94 ; 0x14ec <__ftoa_engine+0xfc> - 154a: 06 94 lsr r0 - 154c: 97 95 ror r25 - 154e: 67 95 ror r22 - 1550: 37 95 ror r19 - 1552: 17 95 ror r17 - 1554: 17 94 ror r1 - 1556: e1 18 sub r14, r1 - 1558: f1 0a sbc r15, r17 - 155a: 43 0b sbc r20, r19 - 155c: 56 0b sbc r21, r22 - 155e: c9 0b sbc r28, r25 - 1560: d0 09 sbc r29, r0 - 1562: 98 f0 brcs .+38 ; 0x158a <__ftoa_engine+0x19a> - 1564: 23 95 inc r18 - 1566: 7e 91 ld r23, -X - 1568: 73 95 inc r23 - 156a: 7a 33 cpi r23, 0x3A ; 58 - 156c: 08 f0 brcs .+2 ; 0x1570 <__ftoa_engine+0x180> - 156e: 70 e3 ldi r23, 0x30 ; 48 - 1570: 7c 93 st X, r23 - 1572: 20 13 cpse r18, r16 - 1574: b8 f7 brcc .-18 ; 0x1564 <__ftoa_engine+0x174> - 1576: 7e 91 ld r23, -X - 1578: 70 61 ori r23, 0x10 ; 16 - 157a: 7d 93 st X+, r23 - 157c: 30 f0 brcs .+12 ; 0x158a <__ftoa_engine+0x19a> - 157e: 83 95 inc r24 - 1580: 71 e3 ldi r23, 0x31 ; 49 - 1582: 7d 93 st X+, r23 - 1584: 70 e3 ldi r23, 0x30 ; 48 - 1586: 2a 95 dec r18 - 1588: e1 f7 brne .-8 ; 0x1582 <__ftoa_engine+0x192> - 158a: 11 24 eor r1, r1 - 158c: ef 90 pop r14 - 158e: ff 90 pop r15 - 1590: 0f 91 pop r16 - 1592: 1f 91 pop r17 - 1594: cf 91 pop r28 - 1596: df 91 pop r29 - 1598: 99 27 eor r25, r25 - 159a: 87 fd sbrc r24, 7 - 159c: 90 95 com r25 - 159e: 08 95 ret +00001618 <__udivmodhi4>: + 1618: aa 1b sub r26, r26 + 161a: bb 1b sub r27, r27 + 161c: 51 e1 ldi r21, 0x11 ; 17 + 161e: 07 c0 rjmp .+14 ; 0x162e <__udivmodhi4_ep> -000015a0 : - 15a0: dc 01 movw r26, r24 - 15a2: fc 01 movw r30, r24 - 15a4: 67 2f mov r22, r23 - 15a6: 71 91 ld r23, Z+ - 15a8: 77 23 and r23, r23 - 15aa: e1 f7 brne .-8 ; 0x15a4 - 15ac: 32 97 sbiw r30, 0x02 ; 2 - 15ae: 04 c0 rjmp .+8 ; 0x15b8 - 15b0: 7c 91 ld r23, X - 15b2: 6d 93 st X+, r22 - 15b4: 70 83 st Z, r23 - 15b6: 62 91 ld r22, -Z - 15b8: ae 17 cp r26, r30 - 15ba: bf 07 cpc r27, r31 - 15bc: c8 f3 brcs .-14 ; 0x15b0 - 15be: 08 95 ret +00001620 <__udivmodhi4_loop>: + 1620: aa 1f adc r26, r26 + 1622: bb 1f adc r27, r27 + 1624: a6 17 cp r26, r22 + 1626: b7 07 cpc r27, r23 + 1628: 10 f0 brcs .+4 ; 0x162e <__udivmodhi4_ep> + 162a: a6 1b sub r26, r22 + 162c: b7 0b sbc r27, r23 -000015c0 <__udivmodhi4>: - 15c0: aa 1b sub r26, r26 - 15c2: bb 1b sub r27, r27 - 15c4: 51 e1 ldi r21, 0x11 ; 17 - 15c6: 07 c0 rjmp .+14 ; 0x15d6 <__udivmodhi4_ep> +0000162e <__udivmodhi4_ep>: + 162e: 88 1f adc r24, r24 + 1630: 99 1f adc r25, r25 + 1632: 5a 95 dec r21 + 1634: a9 f7 brne .-22 ; 0x1620 <__udivmodhi4_loop> + 1636: 80 95 com r24 + 1638: 90 95 com r25 + 163a: bc 01 movw r22, r24 + 163c: cd 01 movw r24, r26 + 163e: 08 95 ret -000015c8 <__udivmodhi4_loop>: - 15c8: aa 1f adc r26, r26 - 15ca: bb 1f adc r27, r27 - 15cc: a6 17 cp r26, r22 - 15ce: b7 07 cpc r27, r23 - 15d0: 10 f0 brcs .+4 ; 0x15d6 <__udivmodhi4_ep> - 15d2: a6 1b sub r26, r22 - 15d4: b7 0b sbc r27, r23 +00001640 <__tablejump2__>: + 1640: ee 0f add r30, r30 + 1642: ff 1f adc r31, r31 -000015d6 <__udivmodhi4_ep>: - 15d6: 88 1f adc r24, r24 - 15d8: 99 1f adc r25, r25 - 15da: 5a 95 dec r21 - 15dc: a9 f7 brne .-22 ; 0x15c8 <__udivmodhi4_loop> - 15de: 80 95 com r24 - 15e0: 90 95 com r25 - 15e2: bc 01 movw r22, r24 - 15e4: cd 01 movw r24, r26 - 15e6: 08 95 ret +00001644 <__tablejump__>: + 1644: 05 90 lpm r0, Z+ + 1646: f4 91 lpm r31, Z + 1648: e0 2d mov r30, r0 + 164a: 09 94 ijmp -000015e8 <_exit>: - 15e8: f8 94 cli +0000164c : + 164c: ef 92 push r14 + 164e: 0f 93 push r16 + 1650: 1f 93 push r17 + 1652: cf 93 push r28 + 1654: c0 2f mov r28, r16 + 1656: 47 ff sbrs r20, 7 + 1658: 02 c0 rjmp .+4 ; 0x165e + 165a: 34 e1 ldi r19, 0x14 ; 20 + 165c: 01 c0 rjmp .+2 ; 0x1660 + 165e: 34 e0 ldi r19, 0x04 ; 4 + 1660: e4 2f mov r30, r20 + 1662: ff 27 eor r31, r31 + 1664: e7 fd sbrc r30, 7 + 1666: f0 95 com r31 + 1668: f7 ff sbrs r31, 7 + 166a: 03 c0 rjmp .+6 ; 0x1672 + 166c: f1 95 neg r31 + 166e: e1 95 neg r30 + 1670: f1 09 sbc r31, r1 + 1672: e3 2e mov r14, r19 + 1674: 02 2f mov r16, r18 + 1676: 2e 2f mov r18, r30 + 1678: 4c 2f mov r20, r28 + 167a: 51 2f mov r21, r17 + 167c: 0e 94 5d 0b call 0x16ba ; 0x16ba + 1680: 8c 2f mov r24, r28 + 1682: 91 2f mov r25, r17 + 1684: cf 91 pop r28 + 1686: 1f 91 pop r17 + 1688: 0f 91 pop r16 + 168a: ef 90 pop r14 + 168c: 08 95 ret -000015ea <__stop_program>: - 15ea: ff cf rjmp .-2 ; 0x15ea <__stop_program> +0000168e : + 168e: fb 01 movw r30, r22 + 1690: 9f 01 movw r18, r30 + 1692: 42 30 cpi r20, 0x02 ; 2 + 1694: 74 f0 brlt .+28 ; 0x16b2 + 1696: 45 32 cpi r20, 0x25 ; 37 + 1698: 64 f4 brge .+24 ; 0x16b2 + 169a: 64 2f mov r22, r20 + 169c: 77 27 eor r23, r23 + 169e: 0e 94 0c 0b call 0x1618 ; 0x1618 <__udivmodhi4> + 16a2: 80 5d subi r24, 0xD0 ; 208 + 16a4: 8a 33 cpi r24, 0x3A ; 58 + 16a6: 0c f0 brlt .+2 ; 0x16aa + 16a8: 89 5d subi r24, 0xD9 ; 217 + 16aa: 81 93 st Z+, r24 + 16ac: cb 01 movw r24, r22 + 16ae: 00 97 sbiw r24, 0x00 ; 0 + 16b0: a1 f7 brne .-24 ; 0x169a + 16b2: 10 82 st Z, r1 + 16b4: c9 01 movw r24, r18 + 16b6: 0c 94 b2 0d jmp 0x1b64 ; 0x1b64 + +000016ba : + 16ba: 6f 92 push r6 + 16bc: 7f 92 push r7 + 16be: 9f 92 push r9 + 16c0: af 92 push r10 + 16c2: bf 92 push r11 + 16c4: cf 92 push r12 + 16c6: df 92 push r13 + 16c8: ef 92 push r14 + 16ca: ff 92 push r15 + 16cc: 0f 93 push r16 + 16ce: 1f 93 push r17 + 16d0: cf 93 push r28 + 16d2: df 93 push r29 + 16d4: cd b7 in r28, 0x3d ; 61 + 16d6: de b7 in r29, 0x3e ; 62 + 16d8: 29 97 sbiw r28, 0x09 ; 9 + 16da: 0f b6 in r0, 0x3f ; 63 + 16dc: f8 94 cli + 16de: de bf out 0x3e, r29 ; 62 + 16e0: 0f be out 0x3f, r0 ; 63 + 16e2: cd bf out 0x3d, r28 ; 61 + 16e4: 6a 01 movw r12, r20 + 16e6: b2 2e mov r11, r18 + 16e8: 10 2f mov r17, r16 + 16ea: 0c 33 cpi r16, 0x3C ; 60 + 16ec: 18 f4 brcc .+6 ; 0x16f4 + 16ee: f0 2e mov r15, r16 + 16f0: f3 94 inc r15 + 16f2: 02 c0 rjmp .+4 ; 0x16f8 + 16f4: 5c e3 ldi r21, 0x3C ; 60 + 16f6: f5 2e mov r15, r21 + 16f8: 0f 2d mov r16, r15 + 16fa: 27 e0 ldi r18, 0x07 ; 7 + 16fc: ae 01 movw r20, r28 + 16fe: 4f 5f subi r20, 0xFF ; 255 + 1700: 5f 4f sbci r21, 0xFF ; 255 + 1702: 0e 94 da 0c call 0x19b4 ; 0x19b4 <__ftoa_engine> + 1706: 79 81 ldd r23, Y+1 ; 0x01 + 1708: 27 2f mov r18, r23 + 170a: 29 70 andi r18, 0x09 ; 9 + 170c: 21 30 cpi r18, 0x01 ; 1 + 170e: 31 f0 breq .+12 ; 0x171c + 1710: e1 fc sbrc r14, 1 + 1712: 06 c0 rjmp .+12 ; 0x1720 + 1714: e0 fe sbrs r14, 0 + 1716: 06 c0 rjmp .+12 ; 0x1724 + 1718: 60 e2 ldi r22, 0x20 ; 32 + 171a: 05 c0 rjmp .+10 ; 0x1726 + 171c: 6d e2 ldi r22, 0x2D ; 45 + 171e: 03 c0 rjmp .+6 ; 0x1726 + 1720: 6b e2 ldi r22, 0x2B ; 43 + 1722: 01 c0 rjmp .+2 ; 0x1726 + 1724: 60 e0 ldi r22, 0x00 ; 0 + 1726: 73 ff sbrs r23, 3 + 1728: 3d c0 rjmp .+122 ; 0x17a4 + 172a: 66 23 and r22, r22 + 172c: 11 f0 breq .+4 ; 0x1732 + 172e: 84 e0 ldi r24, 0x04 ; 4 + 1730: 01 c0 rjmp .+2 ; 0x1734 + 1732: 83 e0 ldi r24, 0x03 ; 3 + 1734: 8b 15 cp r24, r11 + 1736: 10 f4 brcc .+4 ; 0x173c + 1738: b8 1a sub r11, r24 + 173a: 01 c0 rjmp .+2 ; 0x173e + 173c: b1 2c mov r11, r1 + 173e: e4 fc sbrc r14, 4 + 1740: 0b c0 rjmp .+22 ; 0x1758 + 1742: 8b 2d mov r24, r11 + 1744: f6 01 movw r30, r12 + 1746: 90 e2 ldi r25, 0x20 ; 32 + 1748: 02 c0 rjmp .+4 ; 0x174e + 174a: 91 93 st Z+, r25 + 174c: 81 50 subi r24, 0x01 ; 1 + 174e: 81 11 cpse r24, r1 + 1750: fc cf rjmp .-8 ; 0x174a + 1752: cb 0c add r12, r11 + 1754: d1 1c adc r13, r1 + 1756: b1 2c mov r11, r1 + 1758: 66 23 and r22, r22 + 175a: 19 f0 breq .+6 ; 0x1762 + 175c: d6 01 movw r26, r12 + 175e: 6d 93 st X+, r22 + 1760: 6d 01 movw r12, r26 + 1762: e2 fe sbrs r14, 2 + 1764: 0a c0 rjmp .+20 ; 0x177a + 1766: 8e e4 ldi r24, 0x4E ; 78 + 1768: f6 01 movw r30, r12 + 176a: 80 83 st Z, r24 + 176c: 91 e4 ldi r25, 0x41 ; 65 + 176e: 91 83 std Z+1, r25 ; 0x01 + 1770: 82 83 std Z+2, r24 ; 0x02 + 1772: f3 e0 ldi r31, 0x03 ; 3 + 1774: cf 0e add r12, r31 + 1776: d1 1c adc r13, r1 + 1778: 0c c0 rjmp .+24 ; 0x1792 + 177a: 8e e6 ldi r24, 0x6E ; 110 + 177c: d6 01 movw r26, r12 + 177e: 8c 93 st X, r24 + 1780: 91 e6 ldi r25, 0x61 ; 97 + 1782: 11 96 adiw r26, 0x01 ; 1 + 1784: 9c 93 st X, r25 + 1786: 11 97 sbiw r26, 0x01 ; 1 + 1788: 12 96 adiw r26, 0x02 ; 2 + 178a: 8c 93 st X, r24 + 178c: b3 e0 ldi r27, 0x03 ; 3 + 178e: cb 0e add r12, r27 + 1790: d1 1c adc r13, r1 + 1792: 8b 2d mov r24, r11 + 1794: f6 01 movw r30, r12 + 1796: 90 e2 ldi r25, 0x20 ; 32 + 1798: 02 c0 rjmp .+4 ; 0x179e + 179a: 91 93 st Z+, r25 + 179c: 81 50 subi r24, 0x01 ; 1 + 179e: 81 11 cpse r24, r1 + 17a0: fc cf rjmp .-8 ; 0x179a + 17a2: 40 c0 rjmp .+128 ; 0x1824 + 17a4: 72 ff sbrs r23, 2 + 17a6: 45 c0 rjmp .+138 ; 0x1832 + 17a8: 66 23 and r22, r22 + 17aa: 11 f0 breq .+4 ; 0x17b0 + 17ac: 84 e0 ldi r24, 0x04 ; 4 + 17ae: 01 c0 rjmp .+2 ; 0x17b2 + 17b0: 83 e0 ldi r24, 0x03 ; 3 + 17b2: 8b 15 cp r24, r11 + 17b4: 10 f4 brcc .+4 ; 0x17ba + 17b6: b8 1a sub r11, r24 + 17b8: 01 c0 rjmp .+2 ; 0x17bc + 17ba: b1 2c mov r11, r1 + 17bc: e4 fc sbrc r14, 4 + 17be: 0b c0 rjmp .+22 ; 0x17d6 + 17c0: 8b 2d mov r24, r11 + 17c2: f6 01 movw r30, r12 + 17c4: 90 e2 ldi r25, 0x20 ; 32 + 17c6: 02 c0 rjmp .+4 ; 0x17cc + 17c8: 91 93 st Z+, r25 + 17ca: 81 50 subi r24, 0x01 ; 1 + 17cc: 81 11 cpse r24, r1 + 17ce: fc cf rjmp .-8 ; 0x17c8 + 17d0: cb 0c add r12, r11 + 17d2: d1 1c adc r13, r1 + 17d4: b1 2c mov r11, r1 + 17d6: 66 23 and r22, r22 + 17d8: 19 f0 breq .+6 ; 0x17e0 + 17da: f6 01 movw r30, r12 + 17dc: 61 93 st Z+, r22 + 17de: 6f 01 movw r12, r30 + 17e0: e2 fe sbrs r14, 2 + 17e2: 0e c0 rjmp .+28 ; 0x1800 + 17e4: 89 e4 ldi r24, 0x49 ; 73 + 17e6: d6 01 movw r26, r12 + 17e8: 8c 93 st X, r24 + 17ea: 8e e4 ldi r24, 0x4E ; 78 + 17ec: 11 96 adiw r26, 0x01 ; 1 + 17ee: 8c 93 st X, r24 + 17f0: 11 97 sbiw r26, 0x01 ; 1 + 17f2: 86 e4 ldi r24, 0x46 ; 70 + 17f4: 12 96 adiw r26, 0x02 ; 2 + 17f6: 8c 93 st X, r24 + 17f8: b3 e0 ldi r27, 0x03 ; 3 + 17fa: cb 0e add r12, r27 + 17fc: d1 1c adc r13, r1 + 17fe: 0a c0 rjmp .+20 ; 0x1814 + 1800: 89 e6 ldi r24, 0x69 ; 105 + 1802: f6 01 movw r30, r12 + 1804: 80 83 st Z, r24 + 1806: 8e e6 ldi r24, 0x6E ; 110 + 1808: 81 83 std Z+1, r24 ; 0x01 + 180a: 86 e6 ldi r24, 0x66 ; 102 + 180c: 82 83 std Z+2, r24 ; 0x02 + 180e: f3 e0 ldi r31, 0x03 ; 3 + 1810: cf 0e add r12, r31 + 1812: d1 1c adc r13, r1 + 1814: 8b 2d mov r24, r11 + 1816: f6 01 movw r30, r12 + 1818: 90 e2 ldi r25, 0x20 ; 32 + 181a: 02 c0 rjmp .+4 ; 0x1820 + 181c: 91 93 st Z+, r25 + 181e: 81 50 subi r24, 0x01 ; 1 + 1820: 81 11 cpse r24, r1 + 1822: fc cf rjmp .-8 ; 0x181c + 1824: f6 01 movw r30, r12 + 1826: eb 0d add r30, r11 + 1828: f1 1d adc r31, r1 + 182a: 10 82 st Z, r1 + 182c: 2e ef ldi r18, 0xFE ; 254 + 182e: 3f ef ldi r19, 0xFF ; 255 + 1830: ac c0 rjmp .+344 ; 0x198a + 1832: a1 e0 ldi r26, 0x01 ; 1 + 1834: 61 11 cpse r22, r1 + 1836: 01 c0 rjmp .+2 ; 0x183a + 1838: a0 e0 ldi r26, 0x00 ; 0 + 183a: 4a 2f mov r20, r26 + 183c: 50 e0 ldi r21, 0x00 ; 0 + 183e: 18 16 cp r1, r24 + 1840: 19 06 cpc r1, r25 + 1842: 24 f4 brge .+8 ; 0x184c + 1844: 9c 01 movw r18, r24 + 1846: 2f 5f subi r18, 0xFF ; 255 + 1848: 3f 4f sbci r19, 0xFF ; 255 + 184a: 02 c0 rjmp .+4 ; 0x1850 + 184c: 21 e0 ldi r18, 0x01 ; 1 + 184e: 30 e0 ldi r19, 0x00 ; 0 + 1850: 24 0f add r18, r20 + 1852: 35 1f adc r19, r21 + 1854: 11 23 and r17, r17 + 1856: 29 f0 breq .+10 ; 0x1862 + 1858: 41 2f mov r20, r17 + 185a: 50 e0 ldi r21, 0x00 ; 0 + 185c: 4f 5f subi r20, 0xFF ; 255 + 185e: 5f 4f sbci r21, 0xFF ; 255 + 1860: 02 c0 rjmp .+4 ; 0x1866 + 1862: 40 e0 ldi r20, 0x00 ; 0 + 1864: 50 e0 ldi r21, 0x00 ; 0 + 1866: 42 0f add r20, r18 + 1868: 53 1f adc r21, r19 + 186a: 2b 2d mov r18, r11 + 186c: 30 e0 ldi r19, 0x00 ; 0 + 186e: 42 17 cp r20, r18 + 1870: 53 07 cpc r21, r19 + 1872: 14 f4 brge .+4 ; 0x1878 + 1874: b4 1a sub r11, r20 + 1876: 01 c0 rjmp .+2 ; 0x187a + 1878: b1 2c mov r11, r1 + 187a: 3e 2d mov r19, r14 + 187c: 30 71 andi r19, 0x10 ; 16 + 187e: e4 fc sbrc r14, 4 + 1880: 0d c0 rjmp .+26 ; 0x189c + 1882: e3 fc sbrc r14, 3 + 1884: 0b c0 rjmp .+22 ; 0x189c + 1886: 2b 2d mov r18, r11 + 1888: f6 01 movw r30, r12 + 188a: 40 e2 ldi r20, 0x20 ; 32 + 188c: 02 c0 rjmp .+4 ; 0x1892 + 188e: 41 93 st Z+, r20 + 1890: 21 50 subi r18, 0x01 ; 1 + 1892: 21 11 cpse r18, r1 + 1894: fc cf rjmp .-8 ; 0x188e + 1896: cb 0c add r12, r11 + 1898: d1 1c adc r13, r1 + 189a: b1 2c mov r11, r1 + 189c: aa 23 and r26, r26 + 189e: 19 f0 breq .+6 ; 0x18a6 + 18a0: d6 01 movw r26, r12 + 18a2: 6d 93 st X+, r22 + 18a4: 6d 01 movw r12, r26 + 18a6: 31 11 cpse r19, r1 + 18a8: 0b c0 rjmp .+22 ; 0x18c0 + 18aa: 2b 2d mov r18, r11 + 18ac: f6 01 movw r30, r12 + 18ae: 30 e3 ldi r19, 0x30 ; 48 + 18b0: 02 c0 rjmp .+4 ; 0x18b6 + 18b2: 31 93 st Z+, r19 + 18b4: 21 50 subi r18, 0x01 ; 1 + 18b6: 21 11 cpse r18, r1 + 18b8: fc cf rjmp .-8 ; 0x18b2 + 18ba: cb 0c add r12, r11 + 18bc: d1 1c adc r13, r1 + 18be: b1 2c mov r11, r1 + 18c0: f8 0e add r15, r24 + 18c2: 0a 81 ldd r16, Y+2 ; 0x02 + 18c4: 40 e1 ldi r20, 0x10 ; 16 + 18c6: a4 2e mov r10, r20 + 18c8: a7 22 and r10, r23 + 18ca: 74 ff sbrs r23, 4 + 18cc: 03 c0 rjmp .+6 ; 0x18d4 + 18ce: 01 33 cpi r16, 0x31 ; 49 + 18d0: 09 f4 brne .+2 ; 0x18d4 + 18d2: fa 94 dec r15 + 18d4: 1f 14 cp r1, r15 + 18d6: 2c f4 brge .+10 ; 0x18e2 + 18d8: 2f 2d mov r18, r15 + 18da: 29 30 cpi r18, 0x09 ; 9 + 18dc: 18 f0 brcs .+6 ; 0x18e4 + 18de: 28 e0 ldi r18, 0x08 ; 8 + 18e0: 01 c0 rjmp .+2 ; 0x18e4 + 18e2: 21 e0 ldi r18, 0x01 ; 1 + 18e4: ac 01 movw r20, r24 + 18e6: 97 ff sbrs r25, 7 + 18e8: 02 c0 rjmp .+4 ; 0x18ee + 18ea: 40 e0 ldi r20, 0x00 ; 0 + 18ec: 50 e0 ldi r21, 0x00 ; 0 + 18ee: 60 e0 ldi r22, 0x00 ; 0 + 18f0: 70 e0 ldi r23, 0x00 ; 0 + 18f2: 3e e2 ldi r19, 0x2E ; 46 + 18f4: 93 2e mov r9, r19 + 18f6: fc 01 movw r30, r24 + 18f8: e2 1b sub r30, r18 + 18fa: f1 09 sbc r31, r1 + 18fc: 9f 01 movw r18, r30 + 18fe: dc 01 movw r26, r24 + 1900: a4 1b sub r26, r20 + 1902: b5 0b sbc r27, r21 + 1904: fe 01 movw r30, r28 + 1906: 31 96 adiw r30, 0x01 ; 1 + 1908: ea 0f add r30, r26 + 190a: fb 1f adc r31, r27 + 190c: a1 2f mov r26, r17 + 190e: b0 e0 ldi r27, 0x00 ; 0 + 1910: 66 24 eor r6, r6 + 1912: 77 24 eor r7, r7 + 1914: 6a 1a sub r6, r26 + 1916: 7b 0a sbc r7, r27 + 1918: 4f 3f cpi r20, 0xFF ; 255 + 191a: 1f ef ldi r17, 0xFF ; 255 + 191c: 51 07 cpc r21, r17 + 191e: 19 f4 brne .+6 ; 0x1926 + 1920: d6 01 movw r26, r12 + 1922: 9d 92 st X+, r9 + 1924: 6d 01 movw r12, r26 + 1926: 84 17 cp r24, r20 + 1928: 95 07 cpc r25, r21 + 192a: 54 f0 brlt .+20 ; 0x1940 + 192c: 24 17 cp r18, r20 + 192e: 35 07 cpc r19, r21 + 1930: 3c f4 brge .+14 ; 0x1940 + 1932: 7f 01 movw r14, r30 + 1934: e6 0e add r14, r22 + 1936: f7 1e adc r15, r23 + 1938: d7 01 movw r26, r14 + 193a: 11 96 adiw r26, 0x01 ; 1 + 193c: 1c 91 ld r17, X + 193e: 01 c0 rjmp .+2 ; 0x1942 + 1940: 10 e3 ldi r17, 0x30 ; 48 + 1942: 41 50 subi r20, 0x01 ; 1 + 1944: 51 09 sbc r21, r1 + 1946: 6f 5f subi r22, 0xFF ; 255 + 1948: 7f 4f sbci r23, 0xFF ; 255 + 194a: 46 15 cp r20, r6 + 194c: 57 05 cpc r21, r7 + 194e: 24 f0 brlt .+8 ; 0x1958 + 1950: d6 01 movw r26, r12 + 1952: 1d 93 st X+, r17 + 1954: 6d 01 movw r12, r26 + 1956: e0 cf rjmp .-64 ; 0x1918 + 1958: 48 17 cp r20, r24 + 195a: 59 07 cpc r21, r25 + 195c: 39 f4 brne .+14 ; 0x196c + 195e: 06 33 cpi r16, 0x36 ; 54 + 1960: 20 f4 brcc .+8 ; 0x196a + 1962: 05 33 cpi r16, 0x35 ; 53 + 1964: 19 f4 brne .+6 ; 0x196c + 1966: a1 10 cpse r10, r1 + 1968: 01 c0 rjmp .+2 ; 0x196c + 196a: 11 e3 ldi r17, 0x31 ; 49 + 196c: f6 01 movw r30, r12 + 196e: 11 93 st Z+, r17 + 1970: 8b 2d mov r24, r11 + 1972: df 01 movw r26, r30 + 1974: 90 e2 ldi r25, 0x20 ; 32 + 1976: 02 c0 rjmp .+4 ; 0x197c + 1978: 9d 93 st X+, r25 + 197a: 81 50 subi r24, 0x01 ; 1 + 197c: 81 11 cpse r24, r1 + 197e: fc cf rjmp .-8 ; 0x1978 + 1980: eb 0d add r30, r11 + 1982: f1 1d adc r31, r1 + 1984: 10 82 st Z, r1 + 1986: 20 e0 ldi r18, 0x00 ; 0 + 1988: 30 e0 ldi r19, 0x00 ; 0 + 198a: c9 01 movw r24, r18 + 198c: 29 96 adiw r28, 0x09 ; 9 + 198e: 0f b6 in r0, 0x3f ; 63 + 1990: f8 94 cli + 1992: de bf out 0x3e, r29 ; 62 + 1994: 0f be out 0x3f, r0 ; 63 + 1996: cd bf out 0x3d, r28 ; 61 + 1998: df 91 pop r29 + 199a: cf 91 pop r28 + 199c: 1f 91 pop r17 + 199e: 0f 91 pop r16 + 19a0: ff 90 pop r15 + 19a2: ef 90 pop r14 + 19a4: df 90 pop r13 + 19a6: cf 90 pop r12 + 19a8: bf 90 pop r11 + 19aa: af 90 pop r10 + 19ac: 9f 90 pop r9 + 19ae: 7f 90 pop r7 + 19b0: 6f 90 pop r6 + 19b2: 08 95 ret + +000019b4 <__ftoa_engine>: + 19b4: 28 30 cpi r18, 0x08 ; 8 + 19b6: 08 f0 brcs .+2 ; 0x19ba <__ftoa_engine+0x6> + 19b8: 27 e0 ldi r18, 0x07 ; 7 + 19ba: 33 27 eor r19, r19 + 19bc: da 01 movw r26, r20 + 19be: 99 0f add r25, r25 + 19c0: 31 1d adc r19, r1 + 19c2: 87 fd sbrc r24, 7 + 19c4: 91 60 ori r25, 0x01 ; 1 + 19c6: 00 96 adiw r24, 0x00 ; 0 + 19c8: 61 05 cpc r22, r1 + 19ca: 71 05 cpc r23, r1 + 19cc: 39 f4 brne .+14 ; 0x19dc <__ftoa_engine+0x28> + 19ce: 32 60 ori r19, 0x02 ; 2 + 19d0: 2e 5f subi r18, 0xFE ; 254 + 19d2: 3d 93 st X+, r19 + 19d4: 30 e3 ldi r19, 0x30 ; 48 + 19d6: 2a 95 dec r18 + 19d8: e1 f7 brne .-8 ; 0x19d2 <__ftoa_engine+0x1e> + 19da: 08 95 ret + 19dc: 9f 3f cpi r25, 0xFF ; 255 + 19de: 30 f0 brcs .+12 ; 0x19ec <__ftoa_engine+0x38> + 19e0: 80 38 cpi r24, 0x80 ; 128 + 19e2: 71 05 cpc r23, r1 + 19e4: 61 05 cpc r22, r1 + 19e6: 09 f0 breq .+2 ; 0x19ea <__ftoa_engine+0x36> + 19e8: 3c 5f subi r19, 0xFC ; 252 + 19ea: 3c 5f subi r19, 0xFC ; 252 + 19ec: 3d 93 st X+, r19 + 19ee: 91 30 cpi r25, 0x01 ; 1 + 19f0: 08 f0 brcs .+2 ; 0x19f4 <__ftoa_engine+0x40> + 19f2: 80 68 ori r24, 0x80 ; 128 + 19f4: 91 1d adc r25, r1 + 19f6: df 93 push r29 + 19f8: cf 93 push r28 + 19fa: 1f 93 push r17 + 19fc: 0f 93 push r16 + 19fe: ff 92 push r15 + 1a00: ef 92 push r14 + 1a02: 19 2f mov r17, r25 + 1a04: 98 7f andi r25, 0xF8 ; 248 + 1a06: 96 95 lsr r25 + 1a08: e9 2f mov r30, r25 + 1a0a: 96 95 lsr r25 + 1a0c: 96 95 lsr r25 + 1a0e: e9 0f add r30, r25 + 1a10: ff 27 eor r31, r31 + 1a12: e2 55 subi r30, 0x52 ; 82 + 1a14: ff 4f sbci r31, 0xFF ; 255 + 1a16: 99 27 eor r25, r25 + 1a18: 33 27 eor r19, r19 + 1a1a: ee 24 eor r14, r14 + 1a1c: ff 24 eor r15, r15 + 1a1e: a7 01 movw r20, r14 + 1a20: e7 01 movw r28, r14 + 1a22: 05 90 lpm r0, Z+ + 1a24: 08 94 sec + 1a26: 07 94 ror r0 + 1a28: 28 f4 brcc .+10 ; 0x1a34 <__ftoa_engine+0x80> + 1a2a: 36 0f add r19, r22 + 1a2c: e7 1e adc r14, r23 + 1a2e: f8 1e adc r15, r24 + 1a30: 49 1f adc r20, r25 + 1a32: 51 1d adc r21, r1 + 1a34: 66 0f add r22, r22 + 1a36: 77 1f adc r23, r23 + 1a38: 88 1f adc r24, r24 + 1a3a: 99 1f adc r25, r25 + 1a3c: 06 94 lsr r0 + 1a3e: a1 f7 brne .-24 ; 0x1a28 <__ftoa_engine+0x74> + 1a40: 05 90 lpm r0, Z+ + 1a42: 07 94 ror r0 + 1a44: 28 f4 brcc .+10 ; 0x1a50 <__ftoa_engine+0x9c> + 1a46: e7 0e add r14, r23 + 1a48: f8 1e adc r15, r24 + 1a4a: 49 1f adc r20, r25 + 1a4c: 56 1f adc r21, r22 + 1a4e: c1 1d adc r28, r1 + 1a50: 77 0f add r23, r23 + 1a52: 88 1f adc r24, r24 + 1a54: 99 1f adc r25, r25 + 1a56: 66 1f adc r22, r22 + 1a58: 06 94 lsr r0 + 1a5a: a1 f7 brne .-24 ; 0x1a44 <__ftoa_engine+0x90> + 1a5c: 05 90 lpm r0, Z+ + 1a5e: 07 94 ror r0 + 1a60: 28 f4 brcc .+10 ; 0x1a6c <__ftoa_engine+0xb8> + 1a62: f8 0e add r15, r24 + 1a64: 49 1f adc r20, r25 + 1a66: 56 1f adc r21, r22 + 1a68: c7 1f adc r28, r23 + 1a6a: d1 1d adc r29, r1 + 1a6c: 88 0f add r24, r24 + 1a6e: 99 1f adc r25, r25 + 1a70: 66 1f adc r22, r22 + 1a72: 77 1f adc r23, r23 + 1a74: 06 94 lsr r0 + 1a76: a1 f7 brne .-24 ; 0x1a60 <__ftoa_engine+0xac> + 1a78: 05 90 lpm r0, Z+ + 1a7a: 07 94 ror r0 + 1a7c: 20 f4 brcc .+8 ; 0x1a86 <__ftoa_engine+0xd2> + 1a7e: 49 0f add r20, r25 + 1a80: 56 1f adc r21, r22 + 1a82: c7 1f adc r28, r23 + 1a84: d8 1f adc r29, r24 + 1a86: 99 0f add r25, r25 + 1a88: 66 1f adc r22, r22 + 1a8a: 77 1f adc r23, r23 + 1a8c: 88 1f adc r24, r24 + 1a8e: 06 94 lsr r0 + 1a90: a9 f7 brne .-22 ; 0x1a7c <__ftoa_engine+0xc8> + 1a92: 84 91 lpm r24, Z + 1a94: 10 95 com r17 + 1a96: 17 70 andi r17, 0x07 ; 7 + 1a98: 41 f0 breq .+16 ; 0x1aaa <__ftoa_engine+0xf6> + 1a9a: d6 95 lsr r29 + 1a9c: c7 95 ror r28 + 1a9e: 57 95 ror r21 + 1aa0: 47 95 ror r20 + 1aa2: f7 94 ror r15 + 1aa4: e7 94 ror r14 + 1aa6: 1a 95 dec r17 + 1aa8: c1 f7 brne .-16 ; 0x1a9a <__ftoa_engine+0xe6> + 1aaa: e4 e5 ldi r30, 0x54 ; 84 + 1aac: f0 e0 ldi r31, 0x00 ; 0 + 1aae: 68 94 set + 1ab0: 15 90 lpm r1, Z+ + 1ab2: 15 91 lpm r17, Z+ + 1ab4: 35 91 lpm r19, Z+ + 1ab6: 65 91 lpm r22, Z+ + 1ab8: 95 91 lpm r25, Z+ + 1aba: 05 90 lpm r0, Z+ + 1abc: 7f e2 ldi r23, 0x2F ; 47 + 1abe: 73 95 inc r23 + 1ac0: e1 18 sub r14, r1 + 1ac2: f1 0a sbc r15, r17 + 1ac4: 43 0b sbc r20, r19 + 1ac6: 56 0b sbc r21, r22 + 1ac8: c9 0b sbc r28, r25 + 1aca: d0 09 sbc r29, r0 + 1acc: c0 f7 brcc .-16 ; 0x1abe <__ftoa_engine+0x10a> + 1ace: e1 0c add r14, r1 + 1ad0: f1 1e adc r15, r17 + 1ad2: 43 1f adc r20, r19 + 1ad4: 56 1f adc r21, r22 + 1ad6: c9 1f adc r28, r25 + 1ad8: d0 1d adc r29, r0 + 1ada: 7e f4 brtc .+30 ; 0x1afa <__ftoa_engine+0x146> + 1adc: 70 33 cpi r23, 0x30 ; 48 + 1ade: 11 f4 brne .+4 ; 0x1ae4 <__ftoa_engine+0x130> + 1ae0: 8a 95 dec r24 + 1ae2: e6 cf rjmp .-52 ; 0x1ab0 <__ftoa_engine+0xfc> + 1ae4: e8 94 clt + 1ae6: 01 50 subi r16, 0x01 ; 1 + 1ae8: 30 f0 brcs .+12 ; 0x1af6 <__ftoa_engine+0x142> + 1aea: 08 0f add r16, r24 + 1aec: 0a f4 brpl .+2 ; 0x1af0 <__ftoa_engine+0x13c> + 1aee: 00 27 eor r16, r16 + 1af0: 02 17 cp r16, r18 + 1af2: 08 f4 brcc .+2 ; 0x1af6 <__ftoa_engine+0x142> + 1af4: 20 2f mov r18, r16 + 1af6: 23 95 inc r18 + 1af8: 02 2f mov r16, r18 + 1afa: 7a 33 cpi r23, 0x3A ; 58 + 1afc: 28 f0 brcs .+10 ; 0x1b08 <__ftoa_engine+0x154> + 1afe: 79 e3 ldi r23, 0x39 ; 57 + 1b00: 7d 93 st X+, r23 + 1b02: 2a 95 dec r18 + 1b04: e9 f7 brne .-6 ; 0x1b00 <__ftoa_engine+0x14c> + 1b06: 10 c0 rjmp .+32 ; 0x1b28 <__ftoa_engine+0x174> + 1b08: 7d 93 st X+, r23 + 1b0a: 2a 95 dec r18 + 1b0c: 89 f6 brne .-94 ; 0x1ab0 <__ftoa_engine+0xfc> + 1b0e: 06 94 lsr r0 + 1b10: 97 95 ror r25 + 1b12: 67 95 ror r22 + 1b14: 37 95 ror r19 + 1b16: 17 95 ror r17 + 1b18: 17 94 ror r1 + 1b1a: e1 18 sub r14, r1 + 1b1c: f1 0a sbc r15, r17 + 1b1e: 43 0b sbc r20, r19 + 1b20: 56 0b sbc r21, r22 + 1b22: c9 0b sbc r28, r25 + 1b24: d0 09 sbc r29, r0 + 1b26: 98 f0 brcs .+38 ; 0x1b4e <__ftoa_engine+0x19a> + 1b28: 23 95 inc r18 + 1b2a: 7e 91 ld r23, -X + 1b2c: 73 95 inc r23 + 1b2e: 7a 33 cpi r23, 0x3A ; 58 + 1b30: 08 f0 brcs .+2 ; 0x1b34 <__ftoa_engine+0x180> + 1b32: 70 e3 ldi r23, 0x30 ; 48 + 1b34: 7c 93 st X, r23 + 1b36: 20 13 cpse r18, r16 + 1b38: b8 f7 brcc .-18 ; 0x1b28 <__ftoa_engine+0x174> + 1b3a: 7e 91 ld r23, -X + 1b3c: 70 61 ori r23, 0x10 ; 16 + 1b3e: 7d 93 st X+, r23 + 1b40: 30 f0 brcs .+12 ; 0x1b4e <__ftoa_engine+0x19a> + 1b42: 83 95 inc r24 + 1b44: 71 e3 ldi r23, 0x31 ; 49 + 1b46: 7d 93 st X+, r23 + 1b48: 70 e3 ldi r23, 0x30 ; 48 + 1b4a: 2a 95 dec r18 + 1b4c: e1 f7 brne .-8 ; 0x1b46 <__ftoa_engine+0x192> + 1b4e: 11 24 eor r1, r1 + 1b50: ef 90 pop r14 + 1b52: ff 90 pop r15 + 1b54: 0f 91 pop r16 + 1b56: 1f 91 pop r17 + 1b58: cf 91 pop r28 + 1b5a: df 91 pop r29 + 1b5c: 99 27 eor r25, r25 + 1b5e: 87 fd sbrc r24, 7 + 1b60: 90 95 com r25 + 1b62: 08 95 ret + +00001b64 : + 1b64: dc 01 movw r26, r24 + 1b66: fc 01 movw r30, r24 + 1b68: 67 2f mov r22, r23 + 1b6a: 71 91 ld r23, Z+ + 1b6c: 77 23 and r23, r23 + 1b6e: e1 f7 brne .-8 ; 0x1b68 + 1b70: 32 97 sbiw r30, 0x02 ; 2 + 1b72: 04 c0 rjmp .+8 ; 0x1b7c + 1b74: 7c 91 ld r23, X + 1b76: 6d 93 st X+, r22 + 1b78: 70 83 st Z, r23 + 1b7a: 62 91 ld r22, -Z + 1b7c: ae 17 cp r26, r30 + 1b7e: bf 07 cpc r27, r31 + 1b80: c8 f3 brcs .-14 ; 0x1b74 + 1b82: 08 95 ret + +00001b84 <_exit>: + 1b84: f8 94 cli + +00001b86 <__stop_program>: + 1b86: ff cf rjmp .-2 ; 0x1b86 <__stop_program> diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.map b/USBLaminator/USBLaminator/Debug/USBLaminator.map index c9aa419..90f5b06 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.map +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.map @@ -36,6 +36,8 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- USBLaminator.o (__mulsf3) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + USBLaminator.o (__divmodhi4) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o (exit) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) @@ -44,6 +46,10 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- USBLaminator.o (__do_clear_bss) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) USBLaminator.o (__do_global_ctors) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + USBLaminator.o (__umulhisi3) +c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) (__udivmodhi4) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) (__tablejump__) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) @@ -56,8 +62,6 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) (__ftoa_engine) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) (strrev) -c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) (__udivmodhi4) Discarded input sections @@ -103,6 +107,17 @@ Discarded input sections .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .text.libgcc.mul @@ -155,6 +170,28 @@ Discarded input sections 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) .text.libgcc.fmul 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) .text.libgcc.mul @@ -177,17 +214,6 @@ Discarded input sections .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) Memory Configuration @@ -304,7 +330,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x15ec +.text 0x00000000 0x1b88 *(.vectors) .vectors 0x00000000 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o 0x00000000 __vector_default @@ -367,7 +393,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000001a0 __vector_12 0x000001a0 __bad_interrupt 0x000001a0 __vector_3 - 0x000001a0 __vector_11 0x000001a0 __vector_13 0x000001a0 __vector_17 0x000001a0 __vector_19 @@ -388,122 +413,132 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .text._Z5setupv 0x000001a4 0x216 USBLaminator.o 0x000001a4 _Z5setupv - .text.main 0x000003ba 0x666 USBLaminator.o + .text.main 0x000003ba 0xb00 USBLaminator.o 0x000003ba main .text.__vector_6 - 0x00000a20 0x108 USBLaminator.o - 0x00000a20 __vector_6 + 0x00000eba 0x108 USBLaminator.o + 0x00000eba __vector_6 .text.__vector_1 - 0x00000b28 0x1c USBLaminator.o - 0x00000b28 __vector_1 + 0x00000fc2 0x1c USBLaminator.o + 0x00000fc2 __vector_1 + .text.__vector_11 + 0x00000fde 0xba USBLaminator.o + 0x00000fde __vector_11 .text._ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev - 0x00000b44 0x34 USBLaminator.o - 0x00000b44 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev - 0x00000b44 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev + 0x00001098 0x34 USBLaminator.o + 0x00001098 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC2Ev + 0x00001098 _ZN3SSRIN6avrlib5portcELi2ELi3ELi4ELi5ELi6ELi7EEC1Ev .text._ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000b78 0x5a USBLaminator.o - 0x00000b78 _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000b78 _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE + 0x000010cc 0x62 USBLaminator.o + 0x000010cc _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC1E3LedINS0_5portbELi4ELi3ELi2EE + 0x000010cc _ZN5UsartILm38400EN6avrlib5portdELi5ELi4ELi3EEC2E3LedINS0_5portbELi4ELi3ELi2EE .text._ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000bd2 0x2c USBLaminator.o - 0x00000bd2 _ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE - 0x00000bd2 _ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE + 0x0000112e 0x2c USBLaminator.o + 0x0000112e _ZN6ButtonIN6avrlib5portdELi2EEC1E3LedINS0_5portbELi4ELi3ELi2EE + 0x0000112e _ZN6ButtonIN6avrlib5portdELi2EEC2E3LedINS0_5portbELi4ELi3ELi2EE .text._ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv - 0x00000bfe 0x14 USBLaminator.o - 0x00000bfe _ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv + 0x0000115a 0x14 USBLaminator.o + 0x0000115a _ZN3LedIN6avrlib5portbELi4ELi3ELi2EE4initEv .text._GLOBAL__sub_I_l - 0x00000c12 0x3e USBLaminator.o + 0x0000116e 0x3e USBLaminator.o .text.avr-libc.fplib - 0x00000c50 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) - 0x00000c50 __subsf3 - 0x00000c52 __addsf3 + 0x000011ac 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3.o) + 0x000011ac __subsf3 + 0x000011ae __addsf3 .text.avr-libc.fplib - 0x00000c5a 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) - 0x00000c74 __addsf3x + 0x000011b6 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) + 0x000011d0 __addsf3x .text.avr-libc.fplib - 0x00000d1a 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) - 0x00000d1a __nesf2 - 0x00000d1a __eqsf2 - 0x00000d1a __cmpsf2 - 0x00000d1a __ltsf2 - 0x00000d1a __lesf2 + 0x00001276 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(cmpsf2.o) + 0x00001276 __nesf2 + 0x00001276 __eqsf2 + 0x00001276 __cmpsf2 + 0x00001276 __ltsf2 + 0x00001276 __lesf2 .text.avr-libc.fplib - 0x00000d22 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) - 0x00000d22 __divsf3 + 0x0000127e 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3.o) + 0x0000127e __divsf3 .text.avr-libc.fplib - 0x00000d26 0xcc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) - 0x00000d3c __divsf3x - 0x00000d40 __divsf3_pse + 0x00001282 0xcc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) + 0x00001298 __divsf3x + 0x0000129c __divsf3_pse .text.avr-libc.fplib - 0x00000df2 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) - 0x00000df2 __fixunssfsi + 0x0000134e 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o) + 0x0000134e __fixunssfsi .text.avr-libc.fplib - 0x00000e4a 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) - 0x00000e4a __floatunsisf - 0x00000e4e __floatsisf + 0x000013a6 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) + 0x000013a6 __floatunsisf + 0x000013aa __floatsisf .text.avr-libc.fplib - 0x00000ec4 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) - 0x00000ec4 __fp_cmp + 0x00001420 0x48 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) + 0x00001420 __fp_cmp .text.avr-libc.fplib - 0x00000f0c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) - 0x00000f0c __fp_inf + 0x00001468 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_inf.o) + 0x00001468 __fp_inf .text.avr-libc.fplib - 0x00000f18 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) - 0x00000f18 __fp_nan + 0x00001474 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) + 0x00001474 __fp_nan .text.avr-libc.fplib - 0x00000f1e 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) - 0x00000f1e __fp_pscA + 0x0000147a 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o) + 0x0000147a __fp_pscA .text.avr-libc.fplib - 0x00000f2c 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) - 0x00000f2c __fp_pscB + 0x00001488 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o) + 0x00001488 __fp_pscB .text.avr-libc.fplib - 0x00000f3a 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) - 0x00000f3a __fp_round + 0x00001496 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_round.o) + 0x00001496 __fp_round .text.avr-libc.fplib - 0x00000f5c 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) - 0x00000f5c __fp_split3 - 0x00000f6c __fp_splitA + 0x000014b8 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_split3.o) + 0x000014b8 __fp_split3 + 0x000014c8 __fp_splitA .text.avr-libc.fplib - 0x00000fa0 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) - 0x00000fa0 __fp_zero - 0x00000fa2 __fp_szero + 0x000014fc 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) + 0x000014fc __fp_zero + 0x000014fe __fp_szero .text.avr-libc.fplib - 0x00000fae 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) - 0x00000fae __gesf2 - 0x00000fae __gtsf2 + 0x0000150a 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) + 0x0000150a __gesf2 + 0x0000150a __gtsf2 .text.avr-libc.fplib - 0x00000fb6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) - 0x00000fb6 __mulsf3 + 0x00001512 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) + 0x00001512 __mulsf3 .text.avr-libc.fplib - 0x00000fba 0xc2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) - 0x00000fce __mulsf3x - 0x00000fd2 __mulsf3_pse - .text.libgcc 0x0000107c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) - 0x0000107c __tablejump2__ - 0x00001080 __tablejump__ - .text.avr-libc - 0x00001088 0x42 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - 0x00001088 dtostrf - .text.avr-libc - 0x000010ca 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) - 0x000010ca utoa - .text.avr-libc - 0x000010f6 0x2fa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) - 0x000010f6 dtoa_prf - .text.avr-libc - 0x000013f0 0x1b0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) - 0x000013f0 __ftoa_engine - .text.avr-libc - 0x000015a0 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) - 0x000015a0 strrev + 0x00001516 0xc2 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) + 0x0000152a __mulsf3x + 0x0000152e __mulsf3_pse .text.libgcc.div - 0x000015c0 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) - 0x000015c0 __udivmodhi4 - 0x000015e8 . = ALIGN (0x2) + 0x000015d8 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) + 0x000015d8 _div + 0x000015d8 __divmodhi4 + .text.libgcc.mul + 0x00001600 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + 0x00001600 __umulhisi3 + .text.libgcc.div + 0x00001618 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) + 0x00001618 __udivmodhi4 + .text.libgcc 0x00001640 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) + 0x00001640 __tablejump2__ + 0x00001644 __tablejump__ + .text.avr-libc + 0x0000164c 0x42 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + 0x0000164c dtostrf + .text.avr-libc + 0x0000168e 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) + 0x0000168e utoa + .text.avr-libc + 0x000016ba 0x2fa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + 0x000016ba dtoa_prf + .text.avr-libc + 0x000019b4 0x1b0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) + 0x000019b4 __ftoa_engine + .text.avr-libc + 0x00001b64 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) + 0x00001b64 strrev + 0x00001b84 . = ALIGN (0x2) *(.fini9) - .fini9 0x000015e8 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) - 0x000015e8 _exit - 0x000015e8 exit + .fini9 0x00001b84 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + 0x00001b84 _exit + 0x00001b84 exit *(.fini9) *(.fini8) *(.fini8) @@ -522,11 +557,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x000015e8 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) + .fini0 0x00001b84 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) *(.fini0) - 0x000015ec _etext = . + 0x00001b88 _etext = . -.data 0x00800060 0x136 load address 0x000015ec +.data 0x00800060 0x142 load address 0x00001b88 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm16a.o @@ -549,50 +584,53 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(gesf2.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_divmodhi4.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_umulhisi3.o) + .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(utoa.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(ftoa_engine.o) .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(strrev.o) - .data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_udivmodhi4.o) *(.data*) *(.rodata) .rodata 0x00800060 0x30 USBLaminator.o *(.rodata*) .rodata.str1.1 - 0x00800090 0x105 USBLaminator.o + 0x00800090 0x111 USBLaminator.o + 0x114 (size before relaxing) *(.gnu.linkonce.d*) - 0x00800196 . = ALIGN (0x2) - *fill* 0x00800195 0x1 - 0x00800196 _edata = . - 0x00800196 PROVIDE (__data_end, .) + 0x008001a2 . = ALIGN (0x2) + *fill* 0x008001a1 0x1 + 0x008001a2 _edata = . + 0x008001a2 PROVIDE (__data_end, .) -.bss 0x00800196 0x3c - 0x00800196 PROVIDE (__bss_start, .) +.bss 0x008001a2 0x43 + 0x008001a2 PROVIDE (__bss_start, .) *(.bss) - .bss 0x00800196 0x3c USBLaminator.o - 0x00800196 b - 0x00800197 a - 0x008001c7 r - 0x008001ca o - 0x008001d1 l + .bss 0x008001a2 0x43 USBLaminator.o + 0x008001a2 b + 0x008001a3 a + 0x008001d3 r + 0x008001dd o + 0x008001e4 l *(.bss*) *(COMMON) - 0x008001d2 PROVIDE (__bss_end, .) - 0x000015ec __data_load_start = LOADADDR (.data) - 0x00001722 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x008001e5 PROVIDE (__bss_end, .) + 0x00001b88 __data_load_start = LOADADDR (.data) + 0x00001cca __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x008001d2 0x0 - 0x008001d2 PROVIDE (__noinit_start, .) +.noinit 0x008001e5 0x0 + 0x008001e5 PROVIDE (__noinit_start, .) *(.noinit*) - 0x008001d2 PROVIDE (__noinit_end, .) - 0x008001d2 _end = . - 0x008001d2 PROVIDE (__heap_start, .) + 0x008001e5 PROVIDE (__noinit_end, .) + 0x008001e5 _end = . + 0x008001e5 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -694,57 +732,57 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0xa0 +.debug_aranges 0x00000000 0xa8 *(.debug_aranges) .debug_aranges - 0x00000000 0x60 USBLaminator.o + 0x00000000 0x68 USBLaminator.o .debug_aranges - 0x00000060 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + 0x00000068 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) .debug_aranges - 0x00000080 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + 0x00000088 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x756b +.debug_info 0x00000000 0x8098 *(.debug_info) - .debug_info 0x00000000 0x72ba USBLaminator.o - .debug_info 0x000072ba 0x121 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_info 0x000073db 0x190 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_info 0x00000000 0x7de7 USBLaminator.o + .debug_info 0x00007de7 0x121 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_info 0x00007f08 0x190 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) *(.gnu.linkonce.wi.*) -.debug_abbrev 0x00000000 0x659 +.debug_abbrev 0x00000000 0x682 *(.debug_abbrev) - .debug_abbrev 0x00000000 0x4c0 USBLaminator.o - .debug_abbrev 0x000004c0 0xad c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_abbrev 0x0000056d 0xec c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_abbrev 0x00000000 0x4e9 USBLaminator.o + .debug_abbrev 0x000004e9 0xad c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_abbrev 0x00000596 0xec c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) -.debug_line 0x00000000 0xb99 +.debug_line 0x00000000 0xcc0 *(.debug_line) - .debug_line 0x00000000 0x8b3 USBLaminator.o - .debug_line 0x000008b3 0x96 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_line 0x00000949 0x250 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_line 0x00000000 0x9da USBLaminator.o + .debug_line 0x000009da 0x96 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_line 0x00000a70 0x250 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) -.debug_frame 0x00000000 0x1d8 +.debug_frame 0x00000000 0x21c *(.debug_frame) - .debug_frame 0x00000000 0x134 USBLaminator.o - .debug_frame 0x00000134 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_frame 0x0000016c 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_frame 0x00000000 0x178 USBLaminator.o + .debug_frame 0x00000178 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_frame 0x000001b0 0x6c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) -.debug_str 0x00000000 0x1945 +.debug_str 0x00000000 0x1a0c *(.debug_str) - .debug_str 0x00000000 0x185a USBLaminator.o - 0x18c2 (size before relaxing) - .debug_str 0x0000185a 0x7b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_str 0x00000000 0x1921 USBLaminator.o + 0x1996 (size before relaxing) + .debug_str 0x00001921 0x7b c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) 0xfc (size before relaxing) - .debug_str 0x000018d5 0x70 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_str 0x0000199c 0x70 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) 0x118 (size before relaxing) -.debug_loc 0x00000000 0x1a95 +.debug_loc 0x00000000 0x1e5f *(.debug_loc) - .debug_loc 0x00000000 0x1479 USBLaminator.o - .debug_loc 0x00001479 0x108 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_loc 0x00001581 0x514 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_loc 0x00000000 0x1843 USBLaminator.o + .debug_loc 0x00001843 0x108 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_loc 0x0000194b 0x514 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .debug_macinfo *(.debug_macinfo) @@ -752,11 +790,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0xd0 +.debug_ranges 0x00000000 0xe0 *(.debug_ranges) - .debug_ranges 0x00000000 0xb0 USBLaminator.o - .debug_ranges 0x000000b0 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) - .debug_ranges 0x000000c0 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) + .debug_ranges 0x00000000 0xc0 USBLaminator.o + .debug_ranges 0x000000c0 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtostrf.o) + .debug_ranges 0x000000d0 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(dtoa_prf.o) .debug_macro *(.debug_macro) diff --git a/USBLaminator/USBLaminator/Debug/USBLaminator.srec b/USBLaminator/USBLaminator/Debug/USBLaminator.srec index 28c2bf0..f6a86cd 100644 --- a/USBLaminator/USBLaminator/Debug/USBLaminator.srec +++ b/USBLaminator/USBLaminator/Debug/USBLaminator.srec @@ -1,7 +1,7 @@ S01400005553424C616D696E61746F722E737265637F -S11300000C94A8000C9494050C94D0000C94D0008B -S11300100C94D0000C94D0000C9410050C94D000D7 -S11300200C94D0000C94D0000C94D0000C94D0000C +S11300000C94A8000C94E1070C94D0000C94D0003C +S11300100C94D0000C94D0000C945D070C94D00088 +S11300200C94D0000C94D0000C94D0000C94EF07E6 S11300300C94D0000C94D0000C94D0000C94D000FC S11300400C94D0000C94D0000C94D0000C94D000EC S11300500C94D00000407A10F35A00A0724E180994 @@ -19,12 +19,12 @@ S1130100902E0300943577050080841E080000209B S11301104E0A000000C80C333333330F986E128339 S11301201141EF8D2114893BE65516CFFEE6DB180D S1130130D1844B381BF77C1D901DA4BBE4242032D2 -S113014084725E228100C9F124ECA1E53D270906F1 +S113014084725E228100C9F124ECA1E53D27B70841 S113015011241FBECFE5D4E0DEBFCDBF11E0A0E681 -S1130160B0E0ECEEF5E102C005900D92A639B107BE -S1130170D9F721E0A6E9B1E001C01D92A23DB20782 +S1130160B0E0E8E8FBE102C005900D92A23AB107C5 +S1130170D9F721E0A2EAB1E001C01D92A53EB20781 S1130180E1F711E0C0E5D1E004C02297FE010E942E -S11301904008CE34D107C9F70E94DD010C94F40A5B +S1130190220BCE34D107C9F70E94DD010C94C20DA5 S11301A00C940000CF93C49ABC9AAA98A29AAB98D4 S11301B0A39AAC98A49AAD98A59AAE98A69AAF982B S11301C0A79AE1E9F0E083E2C39ABB9A5D9BFECF74 @@ -59,315 +59,406 @@ S11303808111F6CFC29ABA9A16C0C498BC9AC39A7D S1130390BB9AEFE3F1E083E2C9CF379A2FEF81EE06 S11303A094E0215080409040E1F700C00000ECE46C S11303B0F1E083E2C6CFCF910895CF93DF93CDB719 -S11303C0DEB7AB970FB6F894DEBF0FBECDBF0E9469 -S11303D0D20024E130E039A728A787B1887F87B904 -S11303E087B187B935E33A95F1F70000369A349B23 -S11303F0FECFA4B0B5B087B1887F87B9389A85E3BA -S11304008A95F1F70000369A349BFECF84B095B0FC -S113041099EEA91693E0B90668F4E9EE8E16E3E0C6 -S11304209E0640F4F5E0AF16B10420F025E08216F4 -S1130430910478F4C49ABC9A1092CC011092CD0124 -S11304401092CE011092CF011092D0011092D101DE -S1130450FFCFE7E9F1E06081718180E090E00E94E4 -S113046025076AA37BA38CA39DA3E9E9F1E060813E -S1130470718180E090E00E942507262E372E082FF8 -S1130480192FEBE9F1E06081718180E090E00E9436 -S113049025079B01AC01BAA1ABA1FCA1EDA16B2F77 -S11304A07A2F8F2F9E2F0E9428066B017C01EDE985 -S11304B0F1E06081718180E090E00E9425079B015A -S11304C0AC01622D732D802F912F0E9428069B0171 -S11304D0AC01C701B6010E949106D62EC72EE82EA4 -S11304E0F92E462E572E682E792EB50180E090E025 -S11304F00E9425079B01AC016D2D7C2D8E2D9F2D17 -S11305000E94DB076B017C01A30192015058622D0C -S1130510732D802F912F0E94DB079B01AC01C70133 -S1130520B6010E9429069B01AC01BAA1ABA1FCA1B2 -S1130530EDA16B2F7A2F8F2F9E2F0E9429066AA37D -S11305407BA38CA39DA3EFE9F1E06081718180E03E -S113055090E00E9425076EA37FA38AA79BA7E1EAE8 -S1130560F1E06081718180E090E00E942507262EF1 -S1130570372E082F192FE3EAF1E06081718180E0C2 -S113058090E00E9425079B01AC01BEA1AFA1FAA592 -S1130590EBA56B2F7A2F8F2F9E2F0E9428066B01BD -S11305A07C01E5EAF1E06081718180E090E00E94E5 -S11305B025079B01AC01622D732D802F912F0E9482 -S11305C028069B01AC01C701B6010E949106D62EF4 -S11305D0C72EE82EF92E462E572E682E792EB401FA -S11305E080E090E00E9425079B01AC016D2D7C2DDD -S11305F08E2D9F2D0E94DB076B017C01A3019201CC -S11306005058622D732D802F912F0E94DB079B0180 -S1130610AC01C701B6010E9429069B01AC01BEA131 -S1130620AFA1FAA5EBA56B2F7A2F8F2F9E2F0E94D7 -S113063029066EA37FA3D82EC92E762F6FA1272F4C -S1130640362F4D2D5C2DBAA1ABA1FCA1EDA16B2FD2 -S11306507A2F8F2F9E2F0E94290620E030E040E061 -S11306605FE30E94DB07762E672E582E492EE8ECB6 -S1130670F1E0808191812FEF3FEF318320838F3F21 -S11306803FEF930711F099A788A768A579A56B5F39 -S11306907F4F882777FD8095982F0E942707272D65 -S11306A0362D452D542D0E942806F62EE72E382E81 -S11306B0292E20E030E0A9010E948D0688230CF445 -S11306C099C120E030E040EA51E46F2D7E2D832D66 -S11306D0922D0E94D70718160CF491C13F2D2E2D90 -S11306E0932D822D90C1C39ABB9A5D9BFECF8CB98A -S11306F0C398BB9A81918111F6CF8E01095E1F4F79 -S113070022E04AE06F2D7E2D832D922D0E94440815 -S1130710FC012081222359F03196C39ABB9A5D9B38 -S1130720FECF2CB9C398BB9A21912111F6CFC39A5D -S1130730BB9A5D9BFECF8BE38CB9C398BB9A0F2EFB -S1130740FAE6EF2EF1E0FF2EF02DF70183E6C39ACF -S1130750BB9A5D9BFECF8CB9C398BB9A81918111E2 -S1130760F6CFB4016A0D7B1D80E090E00E9425075E -S113077020E030E040E05FE30E94DB078E01045F8D -S11307801F4F22E04AE00E944408FC0120812223FA -S113079059F03196C39ABB9A5D9BFECF2CB9C3988E -S11307A0BB9A21912111F6CFC39ABB9A5D9BFECFD0 -S11307B08BE38CB9C398BB9AEEE6F1E086E7C39A63 -S11307C0BB9A5D9BFECF8CB9C398BB9A8191811172 -S11307D0F6CF4AE050E0BE01645F7F4FC5010E943E -S11307E06508FC012081222359F03196C39ABB9AF3 -S11307F05D9BFECF2CB9C398BB9A21912111F6CFF2 -S1130800C39ABB9A5D9BFECF8BE38CB9C398BB9A0A -S1130810E2E7F1E086E7C39ABB9A5D9BFECF8CB911 -S1130820C398BB9A81918111F6CF4AE050E0BE0192 -S1130830645F7F4FC4010E946508FC01208122236C -S113084059F03196C39ABB9A5D9BFECF2CB9C398DD -S1130850BB9A21912111F6CFC39ABB9A5D9BFECF1F -S11308608BE38CB9C398BB9A83E6F701C39ABB9A0E -S11308705D9BFECF8CB9C398BB9A81918111F6CF51 -S11308808E010F5F1F4F22E04AE0672D762D852DE4 -S1130890942D0E944408FC012081222359F03196B2 -S11308A0C39ABB9A5D9BFECF2CB9C398BB9A219186 -S11308B02111F6CFC39ABB9A5D9BFECF8BE38CB913 -S11308C0C398BB9AE6E7F1E083E6C39ABB9A5D9BC3 -S11308D0FECF8CB9C398BB9A81918111F6CF8E015A -S11308E00F5F1F4F22E04AE0FAA1EBA15CA13DA1FA -S11308F06F2F7E2F852F932F0E944408FC012081A7 -S1130900222359F03196C39ABB9A5D9BFECF2CB932 -S1130910C398BB9A21912111F6CFC39ABB9A5D9BD0 -S1130920FECF8BE38CB9C398BB9AEAE7F1E083E688 -S1130930C39ABB9A5D9BFECF8CB9C398BB9A819135 -S11309408111F6CF8E010F5F1F4F22E04AE0FEA116 -S1130950EFA16F2F7E2F8D2D9C2D0E944408FC014A -S11309602081222359F03196C39ABB9A5D9BFECF16 -S11309702CB9C398BB9A21912111F6CFC39ABB9A83 -S11309805D9BFECF8BE38CB9C398BB9AEEE7F1E095 -S113099088E6C39ABB9A5D9BFECF8CB9C398BB9A79 -S11309A081918111F6CF9A9B03C0E2E6F1E002C087 -S11309B0EBE5F1E08081882359F03196C39ABB9A24 -S11309C05D9BFECF8CB9C398BB9A81918111F6CF00 -S11309D0C39ABB9A5D9BFECF8AE08CB9C398BB9A3D -S11309E0FFEF21EE34E0F15020403040E1F700C049 -S11309F00000F3CC30E020E090E080E004C030E080 -S1130A0020E090EA81E4482F632F722F892F942FDE -S1130A100E94F9066093CB01E5E8F1E080E763CE3C -S1130A201F920F920FB60F9211242F933F934F935F -S1130A305F936F937F938F939F93AF93BF93EF9342 -S1130A40FF938091CA01843108F451C01092CA0105 -S1130A5051C0822F91916C91961718F1992309F145 -S1130A60BA01022E02C0660F771F0A94E2F7CB0187 -S1130A7060FF02C0AA9AA29A81FF02C0AB9AA39A0D -S1130A8082FF02C0AC9AA49A83FF02C0AD9AA59AD1 -S1130A9084FF02C0AE9AA69A85FF22C0AF9AA79A95 -S1130AA01FC0BA0102C0660F771F8A95E2F7CB0117 -S1130AB060FF02C0AA98A29A81FF02C0AB98A39AD1 -S1130AC082FF02C0AC98A49A83FF02C0AD98A59A95 -S1130AD084FF02C0AE98A69A85FF02C0AF98A79A79 -S1130AE02F5F3F4F2630310509F0B3CF0CC08F5F25 -S1130AF08093CA01EBECF1E020E030E0AAECB1E035 -S1130B0041E050E0A6CFFF91EF91BF91AF919F914B -S1130B108F917F916F915F914F913F912F910F90A2 -S1130B200FBE0F901F9018951F920F920FB60F9241 -S1130B3011248F9380E48ABF8F910F900FBE0F9082 -S1130B401F901895FC01119286E0DF011D928A9591 -S1130B50E9F7A29AA39AA49AA59AA69AA79AAA98F8 -S1130B60A29AAB98A39AAC98A49AAD98A59AAE9879 -S1130B70A69AAF98A79A0895CF93DF931F92CDB703 -S1130B80DEB76983BC9ABB9ABA9AC498BC9AC398D4 -S1130B90BB9AC298BA9A2FEF3FEFFC0132832183AC -S1130BA01BB888E08AB986EA80BD10BC89E189B99E -S1130BB0EAE8F1E085E5C39ABB9A5D9BFECF8CB968 -S1130BC0C398BB9A81918111F6CF0F90DF91CF9199 -S1130BD00895CF93DF931F92CDB7DEB76983BC9A94 -S1130BE0BB9ABA9AC498BC9AC398BB9AC298BA9A48 -S1130BF08A989298929A0F90DF91CF910895BC9A17 -S1130C00BB9ABA9AC498BC9AC398BB9AC298BA9A27 -S1130C10089581ED91E00E94FF058AEC91E00E9425 -S1130C20A20560E087EC91E00E94BC0580E3E0E669 -S1130C30F0E0A7E9B1E001900D928A95E1F784E034 -S1130C4086B917B860E086E991E00E94E905089545 -S1130C505058BB27AA270ED070C161D130F066D19D -S1130C6020F031F49F3F11F41EF456C10EF4E095C8 -S1130C70E7FB4CC1E92F72D180F3BA1762077307FF -S1130C808407950718F071F49EF58AC10EF4E09577 -S1130C900B2EBA2FA02D0B01B90190010C01CA0132 -S1130CA0A0011124FF27591B99F0593F50F4503EDD -S1130CB068F11A16F040A22F232F342F4427585FCF -S1130CC0F3CF469537952795A795F0405395C9F7E7 -S1130CD07EF41F16BA0B620B730B840BBAF091509F -S1130CE0A1F0FF0FBB1F661F771F881FC2F70EC03E -S1130CF0BA0F621F731F841F48F487957795679511 -S1130D00B795F7959E3F08F0B3CF9395880F08F0F9 -S1130D109927EE0F979587950895D4D008F481E02C -S1130D2008950CD00AC102D140F0F9D030F021F47A -S1130D305F3F19F0EBC0511134C1EEC00FD198F3ED -S1130D409923C9F35523B1F3951B550BBB27AA2748 -S1130D5062177307840738F09F5F5F4F220F331FBA -S1130D60441FAA1FA9F333D00E2E3AF0E0E830D086 -S1130D7091505040E695001CCAF729D0FE2F27D089 -S1130D80660F771F881FBB1F261737074807AB0757 -S1130D90B0E809F0BB0B802DBF01FF2793585F4FCC -S1130DA02AF09E3F510568F0B1C0FBC05F3FECF3F1 -S1130DB0983EDCF3869577956795B795F7959F5F91 -S1130DC0C9F7880F911D9695879597F90895E1E0E5 -S1130DD0660F771F881FBB1F621773078407BA0744 -S1130DE020F0621B730B840BBA0BEE1F88F7E0959F -S1130DF00895BCD088F09F5790F0B92F9927B75128 -S1130E00A0F0D1F0660F771F881F991F1AF0BA95CA -S1130E10C9F712C0B13081F0C3D0B1E00895C0C0A9 -S1130E20672F782F8827B85F39F0B93FCCF38695C0 -S1130E3077956795B395D9F73EF49095809570951D -S1130E4061957F4F8F4F9F4F0895E89409C097FB9A -S1130E503EF490958095709561957F4F8F4F9F4F8D -S1130E609923A9F0F92F96E9BB279395F6958795D1 -S1130E7077956795B795F111F8CFFAF4BB0F11F494 -S1130E8060FF1BC06F5F7F4F8F4F9F4F16C088233B -S1130E9011F096E911C0772321F09EE8872F762F71 -S1130EA005C0662371F096E8862F70E060E02AF0B2 -S1130EB09A95660F771F881FDAF7880F969587959E -S1130EC097F90895990F0008550FAA0BE0E8FEEF73 -S1130ED016161706E807F907C0F012161306E407FA -S1130EE0F50798F0621B730B840B950B39F40A26F3 -S1130EF061F0232B242B252B21F408950A2609F4D1 -S1130F00A140A6958FEF811D811D089597F99F67D4 -S1130F1080E870E060E008959FEF80EC089500247D -S1130F200A941616170618060906089500240A944A -S1130F3012161306140605060895092E0394000CD0 -S1130F4011F4882352F0BB0F40F4BF2B11F460FF5F -S1130F5004C06F5F7F4F8F4F9F4F089557FD905888 -S1130F60440F551F59F05F3F71F04795880F97FB69 -S1130F70991F61F09F3F79F0879508951216130623 -S1130F801406551FF2CF4695F1DF08C01616170652 -S1130F901806991FF1CF8695710561050894089587 -S1130FA0E894BB2766277727CB0197F908958ADF52 -S1130FB008F48FEF08950BD0C0CFB1DF28F0B6DF6F -S1130FC018F0952309F0A2CFA7CF1124EACFC6DFEA -S1130FD0A0F3959FD1F3950F50E0551F629FF00148 -S1130FE0729FBB27F00DB11D639FAA27F00DB11DA1 -S1130FF0AA1F649F6627B00DA11D661F829F22272A -S1131000B00DA11D621F739FB00DA11D621F839FB0 -S1131010A00D611D221F749F3327A00D611D231F86 -S1131020849F600D211D822F762F6A2F11249F57D4 -S113103050408AF0E1F088234AF0EE0FFF1FBB1FF7 -S1131040661F771F881F91505040A9F79E3F510596 -S113105070F05CCFA6CF5F3FECF3983EDCF386954F -S113106077956795B795F795E7959F5FC1F7FE2B41 -S1131070880F911D9695879597F90895EE0FFF1F98 -S11310800590F491E02D0994EF920F931F93CF9361 -S1131090C02F47FF02C034E101C034E0E42FFF2732 -S11310A0E7FDF095F7FF03C0F195E195F109E32E13 -S11310B0022F2E2F4C2F512F0E947B088C2F912F03 -S11310C0CF911F910F91EF900895FB019F01423042 -S11310D074F0453264F4642F77270E94E00A805D3F -S11310E08A330CF0895D8193CB010097A1F71082BC -S11310F0C9010C94D00A6F927F929F92AF92BF92D3 -S1131100CF92DF92EF92FF920F931F93CF93DF93CF -S1131110CDB7DEB729970FB6F894DEBF0FBECDBFAB -S11311206A01B22E102F0C3318F4F02EF39402C07F -S11311305CE3F52E0F2D27E0AE014F5F5F4F0E9459 -S1131140F8097981272F2970213031F0E1FC06C09C -S1131150E0FE06C060E205C06DE203C06BE201C0C0 -S113116060E073FF3DC0662311F084E001C083E0BA -S11311708B1510F4B81A01C0B12CE4FC0BC08B2DF4 -S1131180F60190E202C0919381508111FCCFCB0C07 -S1131190D11CB12C662319F0D6016D936D01E2FECA -S11311A00AC08EE4F601808391E491838283F3E0A4 -S11311B0CF0ED11C0CC08EE6D6018C9391E611960D -S11311C09C93119712968C93B3E0CB0ED11C8B2D6C -S11311D0F60190E202C0919381508111FCCF40C08E -S11311E072FF45C0662311F084E001C083E08B15D3 -S11311F010F4B81A01C0B12CE4FC0BC08B2DF6011D -S113120090E202C0919381508111FCCFCB0CD11C90 -S1131210B12C662319F0F60161936F01E2FE0EC052 -S113122089E4D6018C938EE411968C93119786E40D -S113123012968C93B3E0CB0ED11C0AC089E6F6015A -S113124080838EE6818386E68283F3E0CF0ED11C11 -S11312508B2DF60190E202C0919381508111FCCF55 -S1131260F601EB0DF11D10822EEF3FEFACC0A1E0B3 -S1131270611101C0A0E04A2F50E01816190624F4A9 -S11312809C012F5F3F4F02C021E030E0240F351F47 -S1131290112329F0412F50E04F5F5F4F02C040E01F -S11312A050E0420F531F2B2D30E04217530714F424 -S11312B0B41A01C0B12C3E2D3071E4FC0DC0E3FC26 -S11312C00BC02B2DF60140E202C0419321502111A5 -S11312D0FCCFCB0CD11CB12CAA2319F0D6016D93F1 -S11312E06D0131110BC02B2DF60130E302C0319397 -S11312F021502111FCCFCB0CD11CB12CF80E0A814A -S113130040E1A42EA72274FF03C0013309F4FA9428 -S11313101F142CF42F2D293018F028E001C021E0EF -S1131320AC0197FF02C040E050E060E070E03EE2B4 -S1131330932EFC01E21BF1099F01DC01A41BB50BF8 -S1131340FE013196EA0FFB1FA12FB0E0662477243B -S11313506A1A7B0A4F3F1FEF510719F4D6019D9279 -S11313606D018417950754F0241735073CF47F0169 -S1131370E60EF71ED70111961C9101C010E34150EF -S113138051096F5F7F4F4615570524F0D6011D9311 -S11313906D01E0CF4817590739F4063320F40533BB -S11313A019F4A11001C011E3F60111938B2DDF0193 -S11313B090E202C09D9381508111FCCFEB0DF11D91 -S11313C0108220E030E0C90129960FB6F894DEBF00 -S11313D00FBECDBFDF91CF911F910F91FF90EF9082 -S11313E0DF90CF90BF90AF909F907F906F900895C3 -S11313F0283008F027E03327DA01990F311D87FDE3 -S1131400916000966105710539F432602E5F3D9359 -S113141030E32A95E1F708959F3F30F08038710555 -S1131420610509F03C5F3C5F3D93913008F08068B2 -S1131430911DDF93CF931F930F93FF92EF92192F78 -S1131440987F9695E92F96959695E90FFF27E25593 -S1131450FF4F99273327EE24FF24A701E7010590C6 -S11314600894079428F4360FE71EF81E491F511DEF -S1131470660F771F881F991F0694A1F7059007949C -S113148028F4E70EF81E491F561FC11D770F881F49 -S1131490991F661F0694A1F70590079428F4F80E87 -S11314A0491F561FC71FD11D880F991F661F771F1D -S11314B00694A1F70590079420F4490F561FC71FFF -S11314C0D81F990F661F771F881F0694A9F7849168 -S11314D01095177041F0D695C79557954795F79491 -S11314E0E7941A95C1F7E4E5F0E068941590159136 -S11314F035916591959105907FE27395E118F10A14 -S1131500430B560BC90BD009C0F7E10CF11E431F66 -S1131510561FC91FD01D7EF4703311F48A95E6CF8F -S1131520E894015030F0080F0AF40027021708F479 -S1131530202F2395022F7A3328F079E37D932A957F -S1131540E9F710C07D932A9589F6069497956795D7 -S1131550379517951794E118F10A430B560BC90BED -S1131560D00998F023957E9173957A3308F070E34F -S11315707C932013B8F77E9170617D9330F083954E -S113158071E37D9370E32A95E1F71124EF90FF90C6 -S11315900F911F91CF91DF91992787FD9095089521 -S11315A0DC01FC01672F71917723E1F7329704C0C6 -S11315B07C916D9370836291AE17BF07C8F3089551 -S11315C0AA1BBB1B51E107C0AA1FBB1FA617B70765 -S11315D010F0A61BB70B881F991F5A95A9F7809581 -S10F15E09095BC01CD010895F894FFCF54 -S11315EC1F00FC01C80080011F00F801C800700135 -S11315FC00000000000000000000000000000000DB -S113160C00000000000000000000000000000000CA -S113161C2323232320426567696E20426F6F747500 -S113162C7020232323232323232323232323232330 -S113163C232323232323232323232323232323236A -S113164C23232323232323232323230A0023205468 -S113165C657374204F75747075740A002320536578 -S113166C7475702054696D65720A002323204F75BC -S113167C7470757420496E697420446F6E65210A08 -S113168C002323232320456E6420426F6F747570EE -S113169C202323232323232323232323232323230D -S11316AC23232323232323232323232323232323FA -S11316BC2323232323232323232323230A00232029 -S11316CC5365747570204144430A00232053657498 -S11316DC757020427574746F6E0A006D6F6E3D30B8 -S11316EC3B006D6F6E3D313B00636D3D0076303DCC -S11316FC0076313D0063303D0063313D00686F6E10 -S113170C3D303B0070776D3D005561727420646F01 -S109171C6E65210A0000C5 +S11303C0DEB7C35AD1090FB6F894DEBF0FBECDBF56 +S11303D00E94D20088E2FE01B996DF01282F1D9207 +S11303E02A95E9F7FE013196DF011D928A95E9F716 +S11303F0C956DF4F1882C759D040B4E1CA56DF4FFF +S1130400B883C659D040E4E1F0E0CC56DF4FF9831D +S1130410E883C459D0409E012F5F3F4FC857DF4F38 +S113042039832883C858D040CE55DF4F2883C25A19 +S1130430D040CD55DF4F3883C35AD0400F2EF9E258 +S1130440AF2EB12CF02DAC0EBD1E38E2A30EB11CA4 +S1130450C956DF4F8881C759D040482F50E087B133 +S1130460887F87B987B187B995E39A95F1F700003A +S1130470369A349BFECF84B195B1FA01EE0FFF1F7B +S1130480A1E0B0E0AC0FBD1FEA0FFB1F91A780A74E +S113049087B1887F87B9389AB5E3BA95F1F7000038 +S11304A0369A349BFECF84B195B1FA01EE0FFF1F4B +S11304B021E030E02C0F3D1FE20FF31F9183808376 +S11304C0FE01B996CE55DF4FA881C25AD040CD5512 +S11304D0DF4FB881C35AD04000E010E020E030E0A4 +S11304E081919191280F391F8D919D91080F191FAA +S11304F0EA15FB05A9F7ADECBCEC0E94000B7C01EE +S1130500F694E794F694E794F694E794F694E794D3 +S113051098010E94000B6C01D694C794D694C7949A +S1130520D694C794D694C794CA01019664E170E046 +S11305300E94EC0AC956DF4F8883C759D04039EE70 +S1130540E31633E0F30668F489EEC81683E0D806B0 +S113055040F495E0E916F10420F0A5E0CA16D104B0 +S113056068F4C49ABC9A1092E0011092E1011092CE +S1130570E2011092E3011092E401FFCFE3EAF1E01B +S11305806081718180E090E00E94D309362E272E8D +S1130590C657DF4F8883CA58D040C557DF4F98836A +S11305A0CB58D040A5EAB1E06D917C9180E090E019 +S11305B00E94D309062F172F982E892EE7EAF1E01F +S11305C06081718180E090E00E94D3099B01AC01BD +S11305D0C657DF4FF881CA58D040C557DF4FE8816E +S11305E0CB58D040632D722D8F2F9E2F0E94D6089A +S11305F02B013C016091A9017091AA0180E090E077 +S11306000E94D3099B01AC01602F712F892D982D75 +S11306100E94D6089B01AC01C301B2010E943F09AC +S1130620562E472E682E792E862F942DA62DB72D63 +S1130630C457DF4F88839983AA83BB83CC58D040A7 +S1130640B70180E090E00E94D3099B01AC01652DC5 +S1130650742D862D972D0E94890A2B013C01C457C5 +S1130660DF4F288139814A815B81CC58D040505872 +S1130670602F712F892D982D0E94890A9B01AC014E +S1130680C301B2010E94D7089B01AC01C657DF4FDA +S1130690F881CA58D040C557DF4FE881CB58D040C5 +S11306A0632D722D8F2F9E2F0E94D708C457DF4FC2 +S11306B06883CC58D040C856DF4F7883C859D0409F +S11306C0C756DF4F8883C959D040C656DF4F988339 +S11306D0CA59D0406091AB017091AC0180E090E0C8 +S11306E00E94D309362E272EC657DF4F8883CA5857 +S11306F0D040C557DF4F9883CB58D0406091AD01AF +S11307007091AE0180E090E00E94D309062F172F6C +S1130710982E892E6091AF017091B00180E090E035 +S11307200E94D3099B01AC01C657DF4FF881CA5818 +S1130730D040C557DF4FE881CB58D040632D722D90 +S11307408F2F9E2F0E94D6082B013C016091B1018E +S11307507091B20180E090E00E94D3099B01AC014A +S1130760602F712F892D982D0E94D6089B01AC0112 +S1130770C301B2010E943F09562E472E682E792EDE +S1130780862F942DA62DB72DC057DF4F88839983CC +S1130790AA83BB83C059D040B60180E090E00E9498 +S11307A0D3099B01AC01652D742D862D972D0E94D4 +S11307B0890A2B013C01C057DF4F288139814A81C6 +S11307C05B81C059D0405058602F712F892D982DCE +S11307D00E94890A9B01AC01C301B2010E94D7089F +S11307E09B01AC01C657DF4FF881CA58D040C557AA +S11307F0DF4FE881CB58D040632D722D8F2F9E2F71 +S11308000E94D708C057DF4F6883C059D040C556EF +S1130810DF4F7883CB59D040C456DF4F8883CC59FF +S1130820D040C356DF4F9883CD59D040762FC5565C +S1130830DF4F6881CB59D040982FC356DF4F888152 +S1130840CD59D040272F362F492F582FC457DF4F6B +S1130850B881CC58D040C856DF4FA881C859D04081 +S1130860C756DF4FF881C959D040C656DF4FE881DB +S1130870CA59D0406B2F7A2F8F2F9E2F0E94D708F2 +S113088020E030E040E05FE30E94890AC256DF4F77 +S11308906883CE59D040C156DF4F7883CF59D040BA +S11308A0C056DF4F8883C05AD040CF55DF4F98835E +S11308B0C15AD040E4EDF1E0808191812FEF3FEF08 +S11308C0318320838F3FFFEF9F0731F0CC56DF4FFA +S11308D099838883C459D040E6EDF1E080819FEF8D +S11308E090838F3F29F0CA56DF4F8883C659D04082 +S11308F0CC56DF4F68817981C459D0406B5F7F4FFC +S1130900882777FD8095982F0E94D509C256DF4F1E +S1130910B881CE59D040C156DF4FA881CF59D040BD +S1130920C056DF4FF881C05AD040CF55DF4FE88121 +S1130930C15AD0402B2F3A2F4F2F5E2F0E94D6083A +S1130940962E872E782E692E20E030E0A9010E9491 +S11309503B0988238CF020E030E040EA51E4692D23 +S1130960782D872D962D0E94850A181654F0392D5E +S1130970282D972D862D09C030E020E090E080E0FE +S113098004C030E020E090EA81E4482F632F722F06 +S1130990892F942F0E94A7096093DE01CA56DF4F66 +S11309A02881C659D040622F772767FD7095872F1D +S11309B0972F0E94D509262E372E082F192F462E41 +S11309C0572EC657DF4F8883CA58D040C557DF4FCC +S11309D09883CB58D04020E030E0A9010E943B0925 +S11309E088230CF439C220E030E040EA51E4622D5F +S11309F0732D802F912F0E94850A18160CF439C28A +S1130A0046C2C39ABB9A5D9BFECF8CB9C398BB9A6E +S1130A1081918111F6CF8E0103581F4F22E04AE0E5 +S1130A20692D782D872D962D0E94260BDC012C91A3 +S1130A30222361F0FC013196C39ABB9A5D9BFECFE1 +S1130A402CB9C398BB9A21912111F6CFC39ABB9AB2 +S1130A505D9BFECF8BE38CB9C398BB9AE6E7F1E0CC +S1130A6086E7C39ABB9A5D9BFECF8CB9C398BB9AA9 +S1130A7081918111F6CFB6016E0D7F1D80E090E06B +S1130A800E94D30920E030E040E05FE30E94890A3D +S1130A908E010E581F4F22E04AE00E94260BFC01F3 +S1130AA02081222359F03196C39ABB9A5D9BFECFD5 +S1130AB02CB9C398BB9A21912111F6CFC39ABB9A42 +S1130AC05D9BFECF8BE38CB9C398BB9AEAE7F1E058 +S1130AD086E7C39ABB9A5D9BFECF8CB9C398BB9A39 +S1130AE081918111F6CF4AE050E0BE016E587F4FEC +S1130AF0C7010E94470BDC012C91222361F0FC0109 +S1130B003196C39ABB9A5D9BFECF2CB9C398BB9A0E +S1130B1021912111F6CFC39ABB9A5D9BFECF8BE343 +S1130B208CB9C398BB9AEEE7F1E086E7C39ABB9A07 +S1130B305D9BFECF8CB9C398BB9A81918111F6CF8E +S1130B404AE050E0BE016E587F4FC6010E94470B39 +S1130B50FC012081222359F03196C39ABB9A5D9BF4 +S1130B60FECF2CB9C398BB9A21912111F6CFC39A19 +S1130B70BB9A5D9BFECF8BE38CB9C398BB9AE2E82A +S1130B80F1E083E6C39ABB9A5D9BFECF8CB9C39810 +S1130B90BB9A81918111F6CF8E0109591F4F22E032 +S1130BA04AE0C256DF4FF881CE59D040C156DF4FDC +S1130BB0E881CF59D040C056DF4F5881C05AD04049 +S1130BC0CF55DF4F3881C15AD0406F2F7E2F852FEC +S1130BD0932F0E94260BDC012C91222361F0FC014F +S1130BE03196C39ABB9A5D9BFECF2CB9C398BB9A2E +S1130BF021912111F6CFC39ABB9A5D9BFECF8BE363 +S1130C008CB9C398BB9AE6E8F1E083E6C39ABB9A31 +S1130C105D9BFECF8CB9C398BB9A81918111F6CFAD +S1130C208E0109591F4F22E04AE0C457DF4FF88173 +S1130C30CC58D040C856DF4FE881C859D040C75679 +S1130C40DF4F5881C959D040C656DF4F3881CA5941 +S1130C50D0406F2F7E2F852F932F0E94260BFC01EF +S1130C602081222359F03196C39ABB9A5D9BFECF13 +S1130C702CB9C398BB9A21912111F6CFC39ABB9A80 +S1130C805D9BFECF8BE38CB9C398BB9AEAE8F1E095 +S1130C9083E6C39ABB9A5D9BFECF8CB9C398BB9A7B +S1130CA081918111F6CF8E0109591F4F22E04AE04C +S1130CB0C057DF4FF881C059D040C556DF4FE88197 +S1130CC0CB59D040C456DF4F5881CC59D040C3567D +S1130CD0DF4F3881CD59D0406F2F7E2F852F932F32 +S1130CE00E94260BDC012C91222361F0FC01319639 +S1130CF0C39ABB9A5D9BFECF2CB9C398BB9A219132 +S1130D002111F6CFC39ABB9A5D9BFECF8BE38CB9BE +S1130D10C398BB9AEEE8F1E084E7C39ABB9A5D9B63 +S1130D20FECF8CB9C398BB9A81918111F6CF4AE06A +S1130D3050E0BE01645A7F4FCC56DF4F88819981C1 +S1130D40C459D0400E94470BFC012081222359F052 +S1130D503196C39ABB9A5D9BFECF2CB9C398BB9ABC +S1130D6021912111F6CFC39ABB9A5D9BFECF8BE3F1 +S1130D708CB9C398BB9AE3E8F1E08DE6C39ABB9AB9 +S1130D805D9BFECF8CB9C398BB9A81918111F6CF3C +S1130D904AE050E0BE016F5A7F4FCA56DF4FF881D8 +S1130DA0C659D0408F2F992787FD90950E94470BF5 +S1130DB0DC012C91222361F0FC013196C39ABB9A89 +S1130DC05D9BFECF2CB9C398BB9A21912111F6CF1C +S1130DD0C39ABB9A5D9BFECF8BE38CB9C398BB9A35 +S1130DE09A9B03C0E2E6F1E002C0EBE5F1E080810A +S1130DF0882359F03196C39ABB9A5D9BFECF8CB978 +S1130E00C398BB9A81918111F6CF9B9B03C0EFE6F7 +S1130E10F1E002C0E9E6F1E08081882359F03196DF +S1130E20C39ABB9A5D9BFECF8CB9C398BB9A819140 +S1130E308111F6CFC39ABB9A5D9BFECF8AE08CB931 +S1130E40C398BB9ABFEFE0E7F2E0B150E040F04056 +S1130E50E1F700C00000FCCA412C512CC657DF4FFB +S1130E601882CA58D040C557DF4F1882CB58D0409B +S1130E700EC0412C512C20EAC657DF4F2883CA5894 +S1130E80D04031E4C557DF4F3883CB58D040C657E4 +S1130E90DF4F3881CA58D040C557DF4F2881CB581F +S1130EA0D040642D752D832F922F0E94A709609343 +S1130EB0DF01E1E9F1E080E7A4CD1F920F920FB6C4 +S1130EC00F9211242F933F934F935F936F937F93CC +S1130ED08F939F93AF93BF93EF93FF938091DD0123 +S1130EE0843108F451C01092DD0151C0822F9191D8 +S1130EF06C91961718F1992309F1BA01022E02C0D8 +S1130F00660F771F0A94E2F7CB0160FF02C0AA9A2A +S1130F10A29A81FF02C0AB9AA39A82FF02C0AC9A44 +S1130F20A49A83FF02C0AD9AA59A84FF02C0AE9A28 +S1130F30A69A85FF22C0AF9AA79A1FC0BA0102C021 +S1130F40660F771F8A95E2F7CB0160FF02C0AA986B +S1130F50A29A81FF02C0AB98A39A82FF02C0AC9808 +S1130F60A49A83FF02C0AD98A59A84FF02C0AE98EC +S1130F70A69A85FF02C0AF98A79A2F5F3F4F2630ED +S1130F80310509F0B3CF0CC08F5F8093DD01EEED26 +S1130F90F1E020E030E0ADEDB1E041E050E0A6CF7B +S1130FA0FF91EF91BF91AF919F918F917F916F913D +S1130FB05F914F913F912F910F900FBE0F901F9013 +S1130FC018951F920F920FB60F9211248F9380E4FD +S1130FD08ABF8F910F900FBE0F901F9018951F928C +S1130FE00F920FB60F9211242F933F934F938F9329 +S1130FF09F93EF93FF938CB18A3079F08D3069F031 +S11310009091D701953048F4E92FF0E0ED52FE4F6E +S113101085839F5F9093D70133C08091D801843733 +S1131020F1F44091D9018091DA0190E0880F991F81 +S11310309C01220F331F220F331F820F931F24E6BC +S1131040429F800D911D11242091DB01820F911D7F +S1131050805D94419093D5018093D4010FC08D3667 +S113106069F49091DA0190518091D901880F282F69 +S1131070220F220F820F890F8093D6011092D7017D +S1131080FF91EF919F918F914F913F912F910F90ED +S11310900FBE0F901F901895FC01119286E0DF019E +S11310A01D928A95E9F7A29AA39AA49AA59AA69A58 +S11310B0A79AAA98A29AAB98A39AAC98A49AAD9826 +S11310C0A59AAE98A69AAF98A79A0895CF93DF935E +S11310D01F92CDB7DEB7FC016983BC9ABB9ABA9A5A +S11310E0C498BC9AC398BB9AC298BA9A8FEF9FEFE0 +S11310F0928381838FEF838314821BB888E98AB932 +S113110086EA80BD10BC89E189B97894E6E9F1E00A +S113111085E5C39ABB9A5D9BFECF8CB9C398BB9AF5 +S113112081918111F6CF0F90DF91CF910895CF93E4 +S1131130DF931F92CDB7DEB76983BC9ABB9ABA9A84 +S1131140C498BC9AC398BB9AC298BA9A8A9892983F +S1131150929A0F90DF91CF910895BC9ABB9ABA9A54 +S1131160C498BC9AC398BB9AC298BA9A089584EE5C +S113117091E00E94AD088DED91E00E944C0860E082 +S113118083ED91E00E94660880E3E0E6F0E0A3EAE4 +S1131190B1E001900D928A95E1F784E086B917B821 +S11311A060E082EA91E00E94970808955058BB27B6 +S11311B0AA270ED070C161D130F066D120F031F48D +S11311C09F3F11F41EF456C10EF4E095E7FB4CC1A9 +S11311D0E92F72D180F3BA17620773078407950762 +S11311E018F071F49EF58AC10EF4E0950B2EBA2F17 +S11311F0A02D0B01B90190010C01CA01A001112419 +S1131200FF27591B99F0593F50F4503E68F11A16C4 +S1131210F040A22F232F342F4427585FF3CF469555 +S113122037952795A795F0405395C9F77EF41F1677 +S1131230BA0B620B730B840BBAF09150A1F0FF0F41 +S1131240BB1F661F771F881FC2F70EC0BA0F621F2D +S1131250731F841F48F4879577956795B795F7951D +S11312609E3F08F0B3CF9395880F08F09927EE0FAF +S1131270979587950895D4D008F481E008950CD00B +S11312800AC102D140F0F9D030F021F45F3F19F0E7 +S1131290EBC0511134C1EEC00FD198F39923C9F3B7 +S11312A05523B1F3951B550BBB27AA276217730768 +S11312B0840738F09F5F5F4F220F331F441FAA1F1C +S11312C0A9F333D00E2E3AF0E0E830D091505040DC +S11312D0E695001CCAF729D0FE2F27D0660F771F8A +S11312E0881FBB1F261737074807AB07B0E809F06C +S11312F0BB0B802DBF01FF2793585F4F2AF09E3F01 +S1131300510568F0B1C0FBC05F3FECF3983EDCF3DD +S1131310869577956795B795F7959F5FC9F7880F79 +S1131320911D9695879597F90895E1E0660F771FCB +S1131330881FBB1F621773078407BA0720F0621B5C +S1131340730B840BBA0BEE1F88F7E0950895BCD09D +S113135088F09F5790F0B92F9927B751A0F0D1F09A +S1131360660F771F881F991F1AF0BA95C9F712C024 +S1131370B13081F0C3D0B1E00895C0C0672F782F99 +S11313808827B85F39F0B93FCCF386957795679590 +S1131390B395D9F73EF490958095709561957F4FFC +S11313A08F4F9F4F0895E89409C097FB3EF49095A2 +S11313B08095709561957F4F8F4F9F4F9923A9F02A +S11313C0F92F96E9BB279395F695879577956795B9 +S11313D0B795F111F8CFFAF4BB0F11F460FF1BC0FD +S11313E06F5F7F4F8F4F9F4F16C0882311F096E990 +S11313F011C0772321F09EE8872F762F05C066233E +S113140071F096E8862F70E060E02AF09A95660FF6 +S1131410771F881FDAF7880F9695879597F90895AF +S1131420990F0008550FAA0BE0E8FEEF16161706F1 +S1131430E807F907C0F012161306E407F50798F059 +S1131440621B730B840B950B39F40A2661F0232B72 +S1131450242B252B21F408950A2609F4A140A695EE +S11314608FEF811D811D089597F99F6780E870E0D3 +S113147060E008959FEF80EC089500240A94161606 +S1131480170618060906089500240A94121613066E +S1131490140605060895092E0394000C11F48823FC +S11314A052F0BB0F40F4BF2B11F460FF04C06F5F18 +S11314B07F4F8F4F9F4F089557FD9058440F551FEE +S11314C059F05F3F71F04795880F97FB991F61F0C2 +S11314D09F3F79F087950895121613061406551F39 +S11314E0F2CF4695F1DF08C0161617061806991FA5 +S11314F0F1CF86957105610508940895E894BB279A +S113150066277727CB0197F908958ADF08F48FEFD0 +S113151008950BD0C0CFB1DF28F0B6DF18F09523C3 +S113152009F0A2CFA7CF1124EACFC6DFA0F3959F7D +S1131530D1F3950F50E0551F629FF001729FBB27B6 +S1131540F00DB11D639FAA27F00DB11DAA1F649F62 +S11315506627B00DA11D661F829F2227B00DA11D15 +S1131560621F739FB00DA11D621F839FA00D611D9B +S1131570221F749F3327A00D611D231F849F600DBC +S1131580211D822F762F6A2F11249F5750408AF0F5 +S1131590E1F088234AF0EE0FFF1FBB1F661F771F81 +S11315A0881F91505040A9F79E3F510570F05CCFC1 +S11315B0A6CF5F3FECF3983EDCF38695779567956D +S11315C0B795F795E7959F5FC1F7FE2B880F911D9F +S11315D09695879597F9089597FB072E16F400942E +S11315E007D077FD09D00E940C0B07FC05D03EF410 +S11315F0909581959F4F0895709561957F4F0895BB +S1131600A29FB001B39FC001A39F01D0B29F700DF0 +S1131610811D1124911D0895AA1BBB1B51E107C014 +S1131620AA1FBB1FA617B70710F0A61BB70B881F6E +S1131630991F5A95A9F780959095BC01CD010895FD +S1131640EE0FFF1F0590F491E02D0994EF920F9394 +S11316501F93CF93C02F47FF02C034E101C034E091 +S1131660E42FFF27E7FDF095F7FF03C0F195E1951F +S1131670F109E32E022F2E2F4C2F512F0E945D0BC8 +S11316808C2F912FCF911F910F91EF900895FB0113 +S11316909F01423074F0453264F4642F77270E942E +S11316A00C0B805D8A330CF0895D8193CB0100972C +S11316B0A1F71082C9010C94B20D6F927F929F9290 +S11316C0AF92BF92CF92DF92EF92FF920F931F934C +S11316D0CF93DF93CDB7DEB729970FB6F894DEBF6B +S11316E00FBECDBF6A01B22E102F0C3318F4F02EAA +S11316F0F39402C05CE3F52E0F2D27E0AE014F5F9B +S11317005F4F0E94DA0C7981272F2970213031F044 +S1131710E1FC06C0E0FE06C060E205C06DE203C065 +S11317206BE201C060E073FF3DC0662311F084E00A +S113173001C083E08B1510F4B81A01C0B12CE4FC8D +S11317400BC08B2DF60190E202C091938150811160 +S1131750FCCFCB0CD11CB12C662319F0D6016D93B0 +S11317606D01E2FE0AC08EE4F601808391E4918368 +S11317708283F3E0CF0ED11C0CC08EE6D6018C938D +S113178091E611969C93119712968C93B3E0CB0E2D +S1131790D11C8B2DF60190E202C0919381508111EE +S11317A0FCCF40C072FF45C0662311F084E001C045 +S11317B083E08B1510F4B81A01C0B12CE4FC0BC003 +S11317C08B2DF60190E202C0919381508111FCCFE0 +S11317D0CB0CD11CB12C662319F0F60161936F0177 +S11317E0E2FE0EC089E4D6018C938EE411968C93AC +S11317F0119786E412968C93B3E0CB0ED11C0AC0E9 +S113180089E6F60180838EE6818386E68283F3E0AF +S1131810CF0ED11C8B2DF60190E202C09193815022 +S11318208111FCCFF601EB0DF11D10822EEF3FEF7D +S1131830ACC0A1E0611101C0A0E04A2F50E018162D +S1131840190624F49C012F5F3F4F02C021E030E0D1 +S1131850240F351F112329F0412F50E04F5F5F4FB4 +S113186002C040E050E0420F531F2B2D30E04217DE +S1131870530714F4B41A01C0B12C3E2D3071E4FCAA +S11318800DC0E3FC0BC02B2DF60140E202C04193D6 +S113189021502111FCCFCB0CD11CB12CAA2319F05F +S11318A0D6016D936D0131110BC02B2DF60130E380 +S11318B002C0319321502111FCCFCB0CD11CB12C8F +S11318C0F80E0A8140E1A42EA72274FF03C001335D +S11318D009F4FA941F142CF42F2D293018F028E061 +S11318E001C021E0AC0197FF02C040E050E060E09D +S11318F070E03EE2932EFC01E21BF1099F01DC0142 +S1131900A41BB50BFE013196EA0FFB1FA12FB0E01B +S1131910662477246A1A7B0A4F3F1FEF510719F494 +S1131920D6019D926D018417950754F0241735074D +S11319303CF47F01E60EF71ED70111961C9101C0FD +S113194010E3415051096F5F7F4F4615570524F04E +S1131950D6011D936D01E0CF4817590739F40633BA +S113196020F4053319F4A11001C011E3F601119319 +S11319708B2DDF0190E202C09D9381508111FCCF39 +S1131980EB0DF11D108220E030E0C90129960FB65D +S1131990F894DEBF0FBECDBFDF91CF911F910F91A1 +S11319A0FF90EF90DF90CF90BF90AF909F907F908B +S11319B06F900895283008F027E03327DA01990F53 +S11319C0311D87FD916000966105710539F432601F +S11319D02E5F3D9330E32A95E1F708959F3F30F061 +S11319E080387105610509F03C5F3C5F3D9391309F +S11319F008F08068911DDF93CF931F930F93FF929C +S1131A00EF92192F987F9695E92F96959695E90F61 +S1131A10FF27E255FF4F99273327EE24FF24A70120 +S1131A20E70105900894079428F4360FE71EF81E82 +S1131A30491F511D660F771F881F991F0694A1F730 +S1131A400590079428F4E70EF81E491F561FC11D80 +S1131A50770F881F991F661F0694A1F705900794B6 +S1131A6028F4F80E491F561FC71FD11D880F991F50 +S1131A70661F771F0694A1F70590079420F4490F79 +S1131A80561FC71FD81F990F661F771F881F0694FC +S1131A90A9F784911095177041F0D695C79557957D +S1131AA04795F794E7941A95C1F7E4E5F0E0689454 +S1131AB01590159135916591959105907FE27395F7 +S1131AC0E118F10A430B560BC90BD009C0F7E10C1E +S1131AD0F11E431F561FC91FD01D7EF4703311F42D +S1131AE08A95E6CFE894015030F0080F0AF40027F5 +S1131AF0021708F4202F2395022F7A3328F079E374 +S1131B007D932A95E9F710C07D932A9589F606946A +S1131B1097956795379517951794E118F10A430B34 +S1131B20560BC90BD00998F023957E9173957A339F +S1131B3008F070E37C932013B8F77E9170617D9375 +S1131B4030F0839571E37D9370E32A95E1F71124D6 +S1131B50EF90FF900F911F91CF91DF91992787FD0F +S1131B6090950895DC01FC01672F71917723E1F7CB +S1131B70329704C07C916D9370836291AE17BF0756 +S10B1B80C8F30895F894FFCFA7 +S1131B881F00FC01C80080011F00F801C800800183 +S1131B980000000000000000000000000000000039 +S1131BA80000000000000000000000000000000029 +S1131BB82323232320426567696E20426F6F74755F +S1131BC8702023232323232323232323232323238F +S1131BD823232323232323232323232323232323C9 +S1131BE823232323232323232323230A00232054C7 +S1131BF8657374204F75747075740A0023205365D7 +S1131C087475702054696D65720A002323204F751A +S1131C187470757420496E697420446F6E65210A66 +S1131C28002323232320456E6420426F6F7475704C +S1131C38202323232323232323232323232323236B +S1131C482323232323232323232323232323232358 +S1131C582323232323232323232323230A00232087 +S1131C685365747570204144430A002320536574F6 +S1131C78757020427574746F6E0A00686F6E3D301B +S1131C883B00686F6E3D313B006D6F6E3D30006DFB +S1131C986F6E3D3100766D3D0076303D0076313D06 +S1131CA800636D3D0063303D0063313D00743D00C9 +S1131CB870776D3D005561727420646F6E65210AFA +S1051CC8000016 S9030000FC diff --git a/USBLaminator/USBLaminator/USBLaminator.cpp b/USBLaminator/USBLaminator/USBLaminator.cpp index 962b249..6ce23e9 100644 --- a/USBLaminator/USBLaminator/USBLaminator.cpp +++ b/USBLaminator/USBLaminator/USBLaminator.cpp @@ -39,11 +39,25 @@ int main(void) { setup(); int16_t target_temp = 20; + int8_t target_motor = 20; float pwm_value = 0; + uint16_t v0a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t v1a[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uint8_t p = 0; while(1) { - uint16_t v0 = a.get(0); - uint16_t v1 = a.get(1); + v0a[p] = a.get(0); + v1a[p] = a.get(1); + uint16_t v0s = 0; + uint16_t v1s = 0; + for (uint8_t i = 0; i < 20; i++) + { + v0s += v0a[i]; + v1s += v1a[i]; + } + uint16_t v0 = v0s/20; + uint16_t v1 = v1s/20; + p = (p + 1) % 20; if(v0 > 1000 || v1 > 1000 || v0 < 5 || v1 < 5) { l.on(l.RED); o.stop(); @@ -56,21 +70,26 @@ int main(void) if(temp != -1) { target_temp = temp; } + int8_t motor = r.readMotor(); + if(motor != -1) { + target_motor = motor; + } pwm_value = (target_temp+5) - tm; o.setPwm(0, pwm_value); + o.setPwm(1, target_motor); char pw[11]; r.send("pwm="); r.send(dtostrf(pwm_value, 10, 2, pw)); r.send(";"); - char vs[11]; r.send("cm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); + char vs[11]; r.send("vm="); r.send(dtostrf((((float)(v0+v1))/2), 10, 2, vs)); r.send(";"); r.send("v0="); r.send(utoa(v0, vs, 10)); r.send(";"); r.send("v1="); r.send(utoa(v1, vs, 10)); r.send(";"); char cs[11]; r.send("cm="); r.send(dtostrf(tm, 10, 2, cs)); r.send(";"); r.send("c0="); r.send(dtostrf(t0, 10, 2, cs)); r.send(";"); r.send("c1="); r.send(dtostrf(t1, 10, 2, cs)); r.send(";"); - //temp_ziel_wert - //motor_ziel_wert - r.send((o.isOn(0)==1)?"hon=1;":"hon=0;"); - r.send((o.isOn(1)==1)?"mon=1;":"mon=0;"); + char ts[11]; r.send("t="); r.send(utoa(target_temp, ts, 10)); r.send(";"); + char ms[11]; r.send("m="); r.send(utoa(target_motor, ms, 10)); r.send(";"); + r.send((o.isOn(o.OUT1)==1)?"hon=1;":"hon=0;"); + r.send((o.isOn(o.OUT2)==1)?"mon=1":"mon=0"); r.send("\n"); - _delay_ms(100); + _delay_ms(50); } } @@ -80,4 +99,8 @@ ISR(TIMER1_COMPA_vect) { ISR(INT0_vect) { b.intr(); +} + +ISR(USART_RXC_vect) { + r.intr(); } \ No newline at end of file diff --git a/USBLaminator/USBLaminator/io/ADC.hpp b/USBLaminator/USBLaminator/io/ADC.hpp index fe4a576..6f7dab1 100644 --- a/USBLaminator/USBLaminator/io/ADC.hpp +++ b/USBLaminator/USBLaminator/io/ADC.hpp @@ -51,8 +51,8 @@ class Adc { } } const uint16_t table[6][4] = { - {31, 508, 200, 384}, //ADC-Wert=520 @ 31°C, 84 @ 180°C - {31, 504, 200, 368}, //ADC-Wert=144 @ 26°C, 84 @ 180°C + {31, 508, 200, 384}, //ADC-Wert=508 @ 31°C, 384 @ 200°C + {31, 504, 200, 384}, //ADC-Wert=504 @ 31°C, 368 @ 200°C {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, diff --git a/USBLaminator/USBLaminator/io/Usart.hpp b/USBLaminator/USBLaminator/io/Usart.hpp index f6fb385..968fdfd 100644 --- a/USBLaminator/USBLaminator/io/Usart.hpp +++ b/USBLaminator/USBLaminator/io/Usart.hpp @@ -32,13 +32,35 @@ class Usart { this->temp = -1; return t; } + int8_t readMotor() { + int8_t m = this->motor; + this->motor = -1; + return m; + } + void intr() { + uint8_t nextChar = UDR; + //uart_putchar(nextChar); + if( nextChar != '\n' && nextChar != '\r' && this->uart_str_count < this->UART_MAXSTRLEN ) { + this->uart_string[this->uart_str_count] = nextChar; + this->uart_str_count++; + } else { + if(this->uart_string[0] == 't') { + this->temp = (this->uart_string[1]-48)*100+(this->uart_string[2]-48)*10+(this->uart_string[3]-48); + } + if(uart_string[0] == 'm') { + this->motor = (this->uart_string[1]-48)*10+(this->uart_string[2]-48); + } + this->uart_str_count = 0; + } + } private: void init() { UCSRA = 0; - UCSRB = (1< rts; const typedef avrlib::pin cts; const typedef avrlib::pin pwren; - int16_t temp = -1; + volatile int16_t temp = -1; + volatile int8_t motor = -1; + static const uint8_t UART_MAXSTRLEN = 5; + uint8_t uart_str_count = 0; + uint8_t uart_string[UART_MAXSTRLEN]; + }; #endif /* USART_H_ */ \ No newline at end of file