Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 349 → Rev 366

/branches/v0.60_MicroMag3_Nick666/trunc/COPYING
0,0 → 1,674
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
 
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
 
Preamble
 
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
 
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
 
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
 
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
 
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
 
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
 
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
 
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
 
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
 
The precise terms and conditions for copying, distribution and
modification follow.
 
TERMS AND CONDITIONS
 
0. Definitions.
 
"This License" refers to version 3 of the GNU General Public License.
 
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
 
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
 
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
 
A "covered work" means either the unmodified Program or a work based
on the Program.
 
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
 
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
 
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
 
1. Source Code.
 
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
 
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
 
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
 
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
 
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
 
The Corresponding Source for a work in source code form is that
same work.
 
2. Basic Permissions.
 
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
 
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
 
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
 
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
 
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
 
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
 
4. Conveying Verbatim Copies.
 
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
 
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
 
5. Conveying Modified Source Versions.
 
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
 
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
 
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
 
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
 
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
 
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
 
6. Conveying Non-Source Forms.
 
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
 
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
 
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
 
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
 
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
 
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
 
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
 
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
 
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
 
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
 
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
 
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
 
7. Additional Terms.
 
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
 
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
 
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
 
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
 
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
 
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
 
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
 
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
 
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
 
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
 
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
 
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
 
8. Termination.
 
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
 
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
 
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
 
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
 
9. Acceptance Not Required for Having Copies.
 
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
 
10. Automatic Licensing of Downstream Recipients.
 
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
 
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
 
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
 
11. Patents.
 
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
 
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
 
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
 
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
 
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
 
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
 
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
 
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
 
12. No Surrender of Others' Freedom.
 
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
 
13. Use with the GNU Affero General Public License.
 
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
 
14. Revised Versions of this License.
 
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
 
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
 
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
 
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
 
15. Disclaimer of Warranty.
 
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
 
16. Limitation of Liability.
 
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
 
17. Interpretation of Sections 15 and 16.
 
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
 
END OF TERMS AND CONDITIONS
 
How to Apply These Terms to Your New Programs
 
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
 
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
 
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
 
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
 
Also add information on how to contact you by electronic and paper mail.
 
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
 
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
 
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
 
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
 
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
/branches/v0.60_MicroMag3_Nick666/trunc/COPYING.LESSER
0,0 → 1,165
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
 
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
 
 
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
 
0. Additional Definitions.
 
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
 
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
 
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
 
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
 
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
 
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
 
1. Exception to Section 3 of the GNU GPL.
 
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
 
2. Conveying Modified Versions.
 
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
 
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
 
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
 
3. Object Code Incorporating Material from Library Header Files.
 
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
 
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
 
b) Accompany the object code with a copy of the GNU GPL and this license
document.
 
4. Combined Works.
 
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
 
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
 
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
 
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
 
d) Do one of the following:
 
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
 
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
 
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
 
5. Combined Libraries.
 
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
 
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
 
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
 
6. Revised Versions of the GNU Lesser General Public License.
 
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
 
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
 
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.eep
0,0 → 1,33
:1000000000000000000000000000000000000000F0
:1000100000000000000000000000000000000000E0
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090
:100070000000000000000000000000000000000080
:100080000000000000000000000000000000000070
:100090000000000000000000000000000000000060
:1000A0000000000000000000000000000000000050
:1000B0000000000000000000000000000000000040
:1000C0000000000000000000000000000000000030
:1000D0000000000000000000000000000000000020
:1000E0000000000000000000000000000000000010
:1000F0000000000000000000000000000000000000
:1001000000000000000000000000000000000000EF
:1001100000000000000000000000000000000000DF
:1001200000000000000000000000000000000000CF
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000000000000000AF
:10015000000000000000000000000000000000009F
:10016000000000000000000000000000000000008F
:10017000000000000000000000000000000000007F
:10018000000000000000000000000000000000006F
:10019000000000000000000000000000000000005F
:1001A000000000000000000000000000000000004F
:1001B000000000000000000000000000000000003F
:1001C000000000000000000000000000000000002F
:1001D000000000000000000000000000000000001F
:1001E000000000000000000000000000000000000F
:1001F00000000000000000000000000000000000FF
:00000001FF
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.hex
0,0 → 1,1517
:100000000C94DD030C94FA030C94FA030C94FA0399
:100010000C94FA030C94FA030C94FA030C94FA036C
:100020000C94FA030C94FE0B0C94FA030C94FA0350
:100030000C94F6180C94FA030C94FA030C94FA033B
:100040000C94FA030C94FA030C94A50C0C948614EB
:100050000C9420060C94FA030C94EA050C94FA0311
:100060000C94740D0C94FA030C944F180C94FA032E
:100070009708110911091109C908AA0811091109DC
:100080001109F508F508F508F508F508CD08110976
:100090001109BC081109C5089D0DEF0D480EA30EEE
:1000A000C00EE30E090FD70FF9102D118E11E411B8
:1000B0003212AB12051366138A13C013FC133A14E1
:1000C00068186D18891897189C18A718AF18C318C6
:1000D0000A0A0D004E65757472616C0048656164B2
:1000E000696E67486F6C64000A0D537465756572BC
:1000F000756E673A20004F4B0A0D000A0D4162678A
:100100006C65696368204C756674647275636B73A3
:10011000656E736F722E2E000A0D4B616C696272F0
:1001200069657265204E65757472616C6C61676596
:10013000000A0D4B616C69627269657265204B6FD4
:100140006D70617373000A0D42656E75747A652077
:10015000506172616D657465727361747A20256493
:10016000000A0D496E69742E20454550524F4D3A94
:100170002047656E657269657265204465666175C4
:100180006C742D506172616D657465722E2E2E0037
:100190000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3DF2
:1001A0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D7F
:1001B000000A0D466C69676874436F6E74726F6CE9
:1001C000205625642E256420002E005A5F4F666657
:1001D0007365743A202025336900595F4F66667352
:1001E00065743A202025336900585F4F6666736551
:1001F000743A2020253369004D4D33206B616C69C2
:10020000622E0052616E67653A2533692D25336988
:10021000005374656C6C756E673A20253369005322
:100220006574706F696E74202025336900536572A0
:10023000766F202000506F7469343A20202533698E
:1002400000506F7469333A202025336900506F7471
:1002500069323A202025336900506F7469313A20A1
:10026000202533690053746172743A2020202020C5
:10027000253569004D657373776572743A202025C2
:100280003569005269636874756E673A20202535B8
:1002900069004B6F6D706173732020202020202037
:1002A00000456D70662E506567656C3A25356900AE
:1002B0005370616E6E756E673A202025356900486F
:1002C0006F63682025346920282533692900526F1F
:1002D0006C6C20253469202825336929004E696318
:1002E0006B202534692028253369290041434320A8
:1002F0002D2053656E736F72004769657220253437
:100300006920282533692900526F6C6C20253469D7
:10031000202825336929004E69636B202534692024
:100320002825336929004779726F202D2053656E87
:10033000736F720050333A25346920204B616EE4AC
:100340006C65200050313A253469202050323A251E
:100350003469200047733A253469202047693A25DB
:10036000346920004E693A2534692020526F3A25BD
:10037000346920004B373A25346920204B616EE404
:100380006C6520004B353A25346920204B363A25E0
:10039000346920004B333A25346920204B343A2508
:1003A000346920004B313A25346920204B323A25FC
:1003B000346920004B6F6D706173733A20202025E3
:1003C000356900526F6C6C3A2020202020202535A2
:1003D00069004E69636B3A20202020202025356972
:1003E00000616B742E204C6167650048F668656E8D
:1003F000726567656C756E67004B65696E65200098
:100400004F66662020202020203A20253569004CA8
:10041000756674647275636B3A2025356900536F95
:100420006C6C486F6568653A2025356900486F65D2
:1004300068653A202020202025356900286329207E
:10044000486F6C67657220427573730053657474EE
:10045000696E673A20256420005625642E256400C5
:100460002B2B204D696B726F4B6F70746572202B54
:100470002B005B25695D00000102030506070809E2
:100480000A0B0C0D0F101112131415161718191A48
:100490001B1B1C1D1E1F202121222324252526274E
:1004A000272829292A2B2B2C2C2D2E2E2F2F30308C
:1004B00031313232333334343435353636363737FA
:1004C0003838383939393A3A3A3B3B3B3C3C3C3C8A
:1004D0003D3D3D3D3E3E3E3E3F3F3F3F4040404034
:1004E00041414141414242424242434343434343EB
:1004F00044444444444445454545454545464646AF
:10050000464646464647474747474747474848487D
:100510004848484848484949494949494949494951
:100520004A4A4A4A4A4A4A4A4A4A4A4A4B4B4B4B27
:100530004B4B4B4B4B4B4B4B4B4C4C4C4C4C4C4C04
:100540004C4C4C4C4C4C4C4C4D4D4D4D4D4D4D4DE3
:100550004D4D4D4D4D4D4D4D4D4E4E4E4E4E4E4EC4
:100560004E4E4E4E4E4E4E4E4E4E4E4E4E4F4F4FA8
:100570004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F8B
:100580004F4F4F4F4F0000000096438B3C295C0FAC
:100590003DF4FD543D295C8F3D0E2DB23D3D0AD703
:1005A0003D23DBF93D04560E3E77BE1F3E0E2D3235
:1005B0003E8195433EF4FD543E6666663ED9CE7755
:1005C0003EA69B843EDF4F8D3E0681953E3F359E85
:1005D0003E79E9A63EA01AAF3EC74BB73E0000C029
:1005E0003E2731C83E4E62D03E7593D83E8941E0E9
:1005F0003EB072E83EC520F03EEC51F83E000000EF
:100600003F0AD7033F14AE073F1F850B3FA01A0FC9
:100610003FAAF1123F2B87163FAC1C1A3F2DB21D8B
:100620003F2506213FA69B243F9EEF273F96432B65
:100630003F8D972E3F85EB313FF4FD343F621038FC
:100640003FD1223B3F3F353E3FAE47413F931844A9
:100650003F79E9463F5EBA493F448B4C3FA01A4F71
:100660003FFCA9513F5839543FB4C8563F871659EB
:100670003F5A645B3F2DB25D3F0000603F4A0C6211
:100680003F9318643FDD24663F9EEF673FE7FB69B9
:100690003FA8C66B3FDF4F6D3FA01A6F3FD7A370D7
:1006A0003F0E2D723FBC74733F6ABC743F190476D1
:1006B0003FC74B773FEC51783F1058793F355E7A12
:1006C0003F5A647B3FF6287C3F91ED7C3FA4707DD0
:1006D0003F3F357E3F52B87E3FDBF97E3FEE7C7F69
:1006E0003F77BE7F3F77BE7F3F0000803F000080A6
:1006F0003F0000010101010202020303030304049D
:100700000405050505060606070707070808080982
:100710000909090A0A0A0B0B0B0C0C0C0C0D0D0D28
:100720000E0E0E0E0F0F0F101010111111111212CC
:10073000121313131414141415151516161617176F
:1007400017181818191919191A1A1A1B1B1B1C1C0F
:100750001C1D1D1D1E1E1E1F1F1F202020212121AC
:100760002222222323232424252525262626272743
:100770002728282929292A2A2A2B2B2C2C2C2D2DD5
:100780002E2E2E2F2F30303131313232333334345C
:10079000353536363737383839393A3A3B3B3C3CD1
:1007A0003D3E3E3F40404142424344444546474827
:1007B000494A4B4C4D4F5052545A11241FBECFEF53
:1007C000D0E1DEBFCDBF11E0A0E0B1E0EEE2FEE59A
:1007D00002C005900D92AC38B107D9F715E0ACE82E
:1007E000B1E001C01D92A433B107E1F70E943104CA
:1007F0000C94162F0C940000A2E0B0E00E94F82E9A
:10080000802D99270895FB01282F863008F025E0D8
:10081000842F9927429FD0011124AC59BF4F0197D3
:1008200024F001900E94052FFACFA2E0B0E0022E42
:100830000E94052F0895CF93DF93FB01C42FDD277E
:10084000863008F085E0489FD0011124AC59BF4F95
:10085000219724F00E94F82E0192FACFDF91CF91D8
:1008600008950F931F93CF93DF9381E087B98FEFA4
:1008700088B98BE184B9289A8EE38AB9579A87EFB1
:100880008BB984B7877F84BF809160008861809333
:1008900060001092600088EE93E09093A70180932F
:1008A000A6011092200210921F021092B50410921D
:1008B000B40410921E0210921D0210921C0210929B
:1008C0001B0228980E94360D0E94F0070E94E11832
:1008D0000E946E0D0E9435180E94E61678941092C0
:1008E000AC038CE38093AD0384E08093AE038CE390
:1008F00090E09F938F931F921F9281EB91E09F93C3
:100900008F931F920E94700980E991E09F938F93CB
:100910001F920E947009299AA1E0B0E00E94F82E6F
:10092000802D2DB73EB7265F3F4F2DBF8B33A9F1EA
:1009300081E691E09F938F931F920E9470090E941D
:10094000AC204AE36CED74E080E00E94030401E017
:100950000F900F900F90023049F40E943F204AE31D
:100960006CED74E082E00E94030403E04AE36CED66
:1009700074E0802F0E9403040F5F063060F381E073
:1009800022E030E0D901082E0E94052F8BE3215090
:100990003040D901082E0E94052F02E010E0D80156
:1009A0000E94F82E802D4AE36CED74E00E941B0437
:1009B000D8010E94F82E802D99279F938F9386E46B
:1009C00091E09F938F931F920E94700984EF91E0B2
:1009D0000E94E90BEC010F900F900F900F900F9079
:1009E000CE010E94F20B8823D9F3E091DE04FF27A9
:1009F000EE0FFF1FE055FB4F8081918185369105F9
:100A0000E4F0E091DF04FF27EE0FFF1FE055FB4FFE
:100A1000808191818536910584F081E391E09F93F7
:100A20008F931F920E9470098091E4040F900F90A1
:100A30000F9083FF02C00E945D16E091DE04FF2745
:100A4000EE0FFF1FE055FB4F8081918185369105A8
:100A5000C4F0E091DF04FF27EE0FFF1FE055FB4FCE
:100A6000808191818C599F4F64F488E191E09F933C
:100A70008F931F920E9470090E9435220F900F9051
:100A80000F908091E40480FF20C08BEF90E09F9353
:100A90008F931F920E94700984EC99E00E94E90BE9
:100AA000EC010E9471100F900F900F90CE010E94E8
:100AB000F20B8823D9F386EF90E09F938F931F92D8
:100AC0000E9470090F900F900F900E946321289848
:100AD00080ED97E09093A7018093A60188EE93E0C4
:100AE0009093A7038093A60385E58093A10388EEE6
:100AF00090E09F938F931F920E9470098091E4046D
:100B00000F900F900F9082FF03C08CED90E002C019
:100B100084ED90E09F938F931F920E9470090F9035
:100B20000F900F9080ED90E09F938F931F920E9403
:100B300070090E9498100F900F900F908091A5015E
:100B4000882379F11092A5010E949A220E941C210B
:100B5000289880910101882319F081508093010128
:100B600080911A02882329F080911A028150809383
:100B70001A0220910601309107018091F40499270F
:100B80002817390734F480ED97E09093A7018093FC
:100B9000A6018091D101882319F40E94351801C063
:100BA00028980E940B080E94790880E090E00E943B
:100BB000F20B882319F280912102882329F088B151
:100BC00090E1892788B901C0449884EF91E00E94A0
:100BD000E90BB4CF1F920F920FB60F9211248F938F
:100BE0009F93EF93FF93809100018823E1F480911C
:100BF000A1019091A20101969093A2018093A1017D
:100C0000FC01ED58FD4FE081ED3019F0863991057A
:100C100039F41092A2011092A10181E080930001A9
:100C2000E093C60004C01092A2011092A101FF91AE
:100C3000EF919F918F910F900FBE0F901F9018957D
:100C40001F920F920FB60F9211242F933F934F9341
:100C50008F939F93AF93BF93CF93DF93EF93FF93C4
:100C60008091C6008093900140919C01463910F01C
:100C700010929B01809190018D3009F05CC08091B1
:100C80009B01823009F057C010929B01A42FBB2713
:100C9000FD01EC54FC4F3081ED01CB54DC4F288139
:100CA00080919F019091A001831B9109821B910962
:100CB0009F709093A00180939F019C0196E03695D0
:100CC00027959A95E1F7235C20939E01982F9F73B7
:100CD000935C90939D018081281729F4888198174F
:100CE00011F491E006C0809193018F5F809393018E
:100CF00090E080919101882309F064C0992309F460
:100D000061C081E08093910140939401AA54BC4F4B
:100D10008DE08C938091B803823509F053C088E14F
:100D200090E02CE00FB6F894A895809360000FBE79
:100D30002093600047C080919B018130D9F08130C1
:100D400018F08230E9F530C080919001833239F497
:100D500080919101882319F481E080939B01809117
:100D600090018093B60381E080939C018091900173
:100D7000992715C082E080939B01E42FFF27809183
:100D80009001EA54FC4F80834F5F40939C01209177
:100D9000900180919F019091A001820F911D9093ED
:100DA000A00180939F010EC0E42FFF278091900146
:100DB000EA54FC4F8083463938F310929B01E7CF09
:100DC00010929B01FF91EF91DF91CF91BF91AF9175
:100DD0009F918F914F913F912F910F900FBE0F9048
:100DE0001F901895DC0120E030E040E050E0E3E7A0
:100DF000F2E005C08191280F311D4F5F5F4F4A1708
:100E00005B07C1F73F70C90136E0969587953A9523
:100E1000E1F7835CFD01ED58FD4F808311962F7340
:100E2000235CFD01ED58FD4F2083AC58BD4F8DE094
:100E30008C9310920001809173028093C6000895F4
:100E4000EF92FF920F931F93CF93DF937A01722F4C
:100E500093E290937302609374028093750203E0AF
:100E600010E060E0A6E7B2E046C0F701E60FF11D32
:100E700090816F5F715019F4E0E040E00FC0F7011E
:100E8000E60FF11D40816F5F715011F4E0E006C084
:100E9000F701E60FF11DE0816F5F7150892F869594
:100EA0008695835C8C935527892F99278370907042
:100EB00024E0880F991F2A95E1F79A0194E036956E
:100EC00027959A95E1F7822B835CED0189834F701A
:100ED0005070440F551F440F551F8E2F82958695D5
:100EE00086958370842B835C8A83EF73E35CEB834A
:100EF0000C5F1F4F1496772309F0B7CFC8010E94EB
:100F0000F206E6E0CDB7DEB70C94E32E1F93CF9345
:100F1000DF93EC0170E0A22FBB27129748C0E42FAB
:100F2000FF27EA54FC4F30814F5FE42FFF27EA543C
:100F3000FC4F50814F5FE42FFF27EA54FC4F108194
:100F40004F5FE42FFF27EA54FC4F20814F5F842F2F
:100F50009927A817B90774F15D53FE01E70FF11D3A
:100F60003D53330F330F852F82958F70382B30838D
:100F7000613001F1912F9D537F5FFE01E70FF11D5D
:100F800071505295507F892F86958695582B5083A6
:100F900063506F3F79F07E5FFE01E70FF11D929580
:100FA000990F990F907C2D53922B90837F5F66232E
:100FB00009F0B5CFDF91CF911F9108951F93182F9E
:100FC0008A3019F48DE00E94DE078091C00085FF11
:100FD000FCCF1093C60080E090E01F910895089523
:100FE000E1ECF0E088E18083A0ECB0E08C918260DD
:100FF0008C938081806880838081806480838AE292
:101000008093C40088EC90E00E94E90B9093A003C9
:1010100080939F03089580910001882309F468C09C
:1010200080918C01882371F080910001882351F018
:101030002BE041EA53E06091720287E40E942007AE
:1010400010928C0180919F039091A0030E94F20B5B
:10105000882321F480918E018823B1F080910001D2
:10106000882391F022E34CE454E06091720284E41E
:101070000E94200710928E018AEF90E00E94E90BF7
:101080009093A00380939F0380918D018823F1F0BA
:10109000809100018823D1F00E94A11010928D014F
:1010A00080919A018F5F80939A01843011F410929D
:1010B0009A0180919A0144E1849FA0011124485E25
:1010C0005E4F24E160E0805D0E94200780918F01E7
:1010D000882371F080910001882351F02AE04CEAC6
:1010E00053E06091720286E50E94200710928F0102
:1010F0000895A2E0B0E0EFE7F8E00C94CA2E8091EA
:101100009101882309F48FC08FEF809301018091B2
:10111000B8039927AA27BB27FC01E356F040E43126
:10112000F10508F07EC0E85CFF4F0C94F22E209190
:10113000940143E06BE081EA93E00E94860780918E
:10114000C8019091A303892B8093C80181E080930B
:101150008E0167C02091940143E062E0CE010196C8
:101160000E9486078091C8019981892B8093C801CC
:1011700081E080938D0155C02091940143E064E0AB
:1011800086E991E00E9486074CC081E080938F0140
:1011900048C081E080938C0144C02091940143E0D9
:1011A00062E0CE0101960E94860789818F3F89F017
:1011B000863010F085E089834AE36CED74E0898124
:1011C0000E941B0489812AE34CED54E06091720275
:1011D00008C0109172020E94FC032AE34CED54E017
:1011E000612F855B0E9420071CC02091940143E081
:1011F0006AE38CED94E00E9486078091B8034AE38D
:101200006CED74E08B560E9403048091B8038B56FA
:10121000A2E0B0E0082E0E94052F0E94FC030E946D
:10122000852210929101E3E0CE5F0C94E62E982F78
:1012300080917E04813069F48091C701E82FFF27F7
:10124000E85EFE4F90838F5F8093C70121E030E01E
:1012500005C0892F0E94DE07282F3327C901089572
:101260001F93182F04C080E30E9417091150111614
:10127000D4F31F9108951F93182F04C080E20E9499
:10128000170911501116D4F31F9108950F931F934E
:10129000CF93DF938C01EB0108C0F8010F5F1F4F64
:1012A000E4918E2F0E94170921972097B1F7DF91C3
:1012B000CF911F910F9108950F931F93CF93DF93B9
:1012C0008C01EB0106C0F80181918F010E94170982
:1012D00021972097C1F7DF91CF911F910F9108952A
:1012E000A3E3B0E0E6E7F9E00C94BB2E29968FADBE
:1012F000299780937E04CE01855B9F4F9D838C83CD
:101300002B968EAD9FAD2B979FA78EA722243324BB
:10131000210102C0130124010EA51FA502C00F5F09
:101320001F4FF801F490FF2019F0F5E2FF16B9F70E
:10133000B8018EA59FA5681B790B11F00E94460984
:10134000FF2009F442C20F5F1F4F1FA70EA719828B
:10135000AC81BD811BAA1AAA9FEF99ABEEA5FFA590
:10136000CF0101969FA78EA7B49095E7B91621F0FB
:101370008B2D8062883789F4EBA9E0FF07C02D90A0
:101380003D904D905C901397149607C08D919C9161
:1013900011971C01442455241296F0E2BF1621F443
:1013A00089818823D9F685C083E2B81609F483C001
:1013B0009AE2B91621F0EDE2BE1669F408C0FD010B
:1013C0001296E081EAABE7FFC9CFE195EAABFBA952
:1013D000F061FF7D72C08BE2B81609F46AC09EE22C
:1013E000B916B1F52EA53FA52F5F3F4FEEA5FFA57E
:1013F00084918A3221F0B82E20E030E01BC0FD013C
:1014000012964081518157FF02C04FEF5FEF49AB09
:101410003FA72EA7A3CFC90103E0880F991F0A9504
:10142000E1F7220F331F280F391F2B0D311D2053D9
:101430003040B49031968B2D80538A3060F3FFA7F3
:10144000EEA7A90137FF02C04FEF5FEF49AB8DCF89
:10145000F0E3BF1631F48BA984FD80CF80628BABA3
:101460007DCF8B2D81538930E8F420E030E0C90135
:10147000F3E0880F991FFA95E1F7220F331F280F29
:10148000391F2B0D311D20533040EEA5FFA5CF0194
:1014900001969FA78EA7B4908B2D80538A3038F386
:1014A0002AAB63CF98E6B91651F4EBA9E460EBAB35
:1014B00055CFB98253CFFBA9F860FBAB4FCF8CE679
:1014C000B81621F49BA991609BAB48CFBD83AC8338
:1014D000E3E6BE1639F41296BD83AC8312978C9165
:1014E0008E8318C1F4E4BF1639F084E6B81639F0DB
:1014F00099E6B91659F503C0EBA9E160EBABFBA97E
:10150000F0FF08C01496BD83AC835E904E903E9071
:101510002E900AC01296BD83AC839E918E911C01C1
:10152000442437FC4094542C57FC03C08AE088AB19
:1015300092C05094409430942094211C311C411C42
:10154000511C8DE289839AE098AB85C0EFE4BE160A
:1015500029F0FFE6BF1639F488E061C09BA99160CD
:101560009BABE8E056C0F0E7BF1671F41296BD835E
:10157000AC839E918E911C01442455248BA98064D8
:101580008BAB78E7B72E5EC0E3E7BE16D9F51296AF
:10159000BD83AC83DE90CE90C114D10489F488E27F
:1015A0008E838EE68F8385E788878CE689878A8796
:1015B00089E28B871C8666E0C62ED12CCC0EDD1E00
:1015C000F9A9F7FD13C04F2F552747FD509560E04F
:1015D00070E0C6010E94C32C009711F419A90DC038
:1015E0008C1919A981174CF4182F07C0F601019026
:1015F0000020E9F731971E2F1C1919824201310191
:1016000040E094C085E5B81631F095E7B91649F485
:10161000EAE0E8AB1FC0FBA9F160FBAB8AE088AB56
:1016200019C098E5B91621F0E8E7BE1609F06EC0BA
:10163000FBA9F3FD02C080E1F2CF21143104410483
:10164000510419F490E198AB05C0EBA9E064EBAB51
:10165000F0E1F8AB198289A987FD03C09BA99F7DA2
:101660009BAB211431044104510461F4E9A9EE2338
:1016700049F46624772443015EE2C52ED12CCC0EBA
:10168000DD1E3EC04EE2C42ED12CCC0EDD1EF8A9CC
:10169000EF2EFF2400271127C201B101A8019701F5
:1016A0000E947E2E6A3020F430E3A32EA60E08C0DE
:1016B00027E5A22EA60E88E5B81611F49FEDA92203
:1016C000F601A2926F01C201B101A80197010E9427
:1016D0007E2E39014A012E143F044006510618F0AF
:1016E00019012A01D9CFF8A9F83051F48BA983FF49
:1016F00007C090E3A91621F080E3F60182936F0101
:10170000CE018C19182F125D49A910C0BB2009F415
:101710005CC0BE8219824201310100E096E0C92E10
:10172000D12CCC0EDD1E11E021E005C0212F042FAD
:10173000011B07FD00E08981882319F0812F8F5F4D
:1017400007C09BA996FD02C0812F02C0822F8E5F29
:10175000A82EA00EEBA9EE2EFF2480E3482E512CDC
:101760004E205F204114510421F48AA98A190E9455
:101770003B098981882329F061E070E0CE01019660
:1017800009C0E6FE09C080E38A83BB8262E070E0A4
:10179000CE0102960E945C09F0E24F16510421F43A
:1017A0008AA98A190E943009802F0E943009612F6E
:1017B000772767FD7095C6010E945C09E4FEAACDFB
:1017C0008AA98A190E943B09A5CDE2E1CD5C0C945F
:1017D000D72E2091A3013091A4012F5F3F4F820F9C
:1017E000931F08952091A3013091A401821B930BB4
:1017F000892F992786958074992708951F920F92B3
:101800000FB60F921124EF92FF920F931F932F9315
:101810003F934F935F936F937F938F939F93AF9378
:10182000BF93CF93DF93EF93FF9380910401815097
:10183000809304018F3F09F06DC083E88093B0006E
:1018400080918B01C82FDD27D093A901C093A801F7
:1018500080910205E090FE0480FF1EC06091DA01D5
:101860007091DB018091DC019091DD01FF24002764
:10187000112720E830E040E050E00E94A02EC8018F
:10188000B7010E94382E20E032E040E050E00E9494
:10189000A02EC20FD31F1DC06091DA017091DB0131
:1018A0008091DC019091DD01FF240027112720E8C1
:1018B00030E040E050E00E94A02EC801B7010E9435
:1018C000382E20E032E040E050E00E94A02EC21B03
:1018D000D30BD093A901C093A8012091A801309106
:1018E000A9018091FF0499272817390734F08091C6
:1018F000000599278217930724F49093A9018093F8
:10190000A8018091A8018093B30080910105809384
:10191000040104C083E08093B0005F98FF91EF91D1
:10192000DF91CF91BF91AF919F918F917F916F91F7
:101930005F914F913F912F911F910F91FF90EF90E9
:101940000F900FBE0F901F9018951F920F920FB619
:101950000F9211242F933F934F935F936F937F9335
:101960008F939F93AF93BF93EF93FF938091AA01BF
:1019700081508093AA018F3F01F589E08093AA01ED
:10198000809105018F5F817080930501882319F490
:1019900081E08093A5018091A3019091A40101961B
:1019A0009093A4018093A3018091D101882329F011
:1019B0008091D10181508093D1018091A6019091B5
:1019C000A701029748F08091A6019091A701019785
:1019D0009093A7018093A6015A988091E40483FF15
:1019E00034C00E9429168091020190910301019751
:1019F0009093030180930201809102019091030171
:101A00008F5F9F4F11F50E94361590930B028093C4
:101A10000A0280910A0290910B0220910C023091EF
:101A20000D02821B930B845E9D4F68E671E00E945D
:101A30006B2E845B904090930F0280930E0280E2A5
:101A400093E09093030180930201FF91EF91BF9186
:101A5000AF919F918F917F916F915F914F913F9146
:101A60002F910F900FBE0F901F9018958091A3019A
:101A70009091A4010B969093AC018093AB0182E00E
:101A800085BD83EA84BD17BC88E788BD83EC80935D
:101A9000B00086E08093B100E0E7F0E080818260F2
:101AA0008083EEE6F0E08081816080838AE080932D
:101AB000B3001092B20008952091A3013091A401C7
:101AC0002F5F3F4F280F391F8091A3019091A401F0
:101AD000A901481B590B57FFF7CF089510927C00BE
:101AE0008FEE80937A0008951F920F920FB60F9297
:101AF0001124EF92FF920F931F932F933F934F93D5
:101B00005F936F937F938F939F93AF93BF93CF9385
:101B1000DF93EF93FF9310927A008091C3018F5F60
:101B20008093C3018150E82FFF27E830F10508F0CA
:101B3000B6C2E45BFF4F0C94F22E2091D601309197
:101B4000D7018091780090917900281B390B809102
:101B5000B1019091B201820F931F9093B2018093D3
:101B6000B1018091BB018F5F8093BB018091FE0129
:101B70009091FF01A0910002B0910102442737FD2E
:101B80004095542F820F931FA41FB51F8093FE0111
:101B90009093FF01A0930002B09301028091020292
:101BA00090910302A0910402B0910502820F931F4D
:101BB000A41FB51F8093020290930302A093040216
:101BC000B093050281E08093C4018091C10190919E
:101BD000C20101969093C2018093C10164C26091D9
:101BE0007800709179008091D4019091D501681BA3
:101BF000790B8091F6019091F701A091F801B091D5
:101C0000F9019B01442737FD4095542F820F931F04
:101C1000A41FB51F8093F6019093F701A093F801DC
:101C2000B093F9018091FA019091FB01A091FC0120
:101C3000B091FD01820F931FA41FB51F8093FA017D
:101C40009093FB01A093FC01B093FD01809178007B
:101C5000909179000A9710F464E47DEF8091780008
:101C600090917900895E934010F06CEB72E0809166
:101C7000AF019091B001860F971F9093B0018093B0
:101C8000AF018091BA018F5F8093BA0182E058C0A2
:101C900060917800709179008091D2019091D30188
:101CA000681B790B8091EE019091EF01A091F001FA
:101CB000B091F1019B01442737FD4095542F820FCD
:101CC000931FA41FB51F8093EE019093EF01A09383
:101CD000F001B093F1018091F2019091F301A09194
:101CE000F401B091F501820F931FA41FB51F8093DB
:101CF000F2019093F301A093F401B093F501809168
:101D00007800909179000A9710F464E47DEF809157
:101D1000780090917900895E934010F06CEB72E04E
:101D20008091AD019091AE01860F971F9093AE0107
:101D30008093AD018091B9018F5F8093B90184E0F8
:101D40008093C401B0C14091060150910701809178
:101D50007800909179009A01220F331F240F351FCC
:101D600063E070E00E94572E260F371F36952795A7
:101D700036952795309307012093060186E0E0CF42
:101D8000209178003091790080912305909124056D
:101D9000821B930B9093800480937F048091B30106
:101DA0009091B40120917F0430918004820F931FA1
:101DB0009093B4018093B3018091BD018F5F8093B4
:101DC000BD0187E0BDCF809178009091790020918E
:101DD000210530912205821B930B90938B048093F5
:101DE0008A048091B5019091B60120918A043091C6
:101DF0008B04820F931F9093B6018093B50180915D
:101E0000BC018F5F8093BC0185E08093C40186E0B4
:101E1000CBC06091780070917900E0902505F0903A
:101E200026050091270510912805882777FD8095C4
:101E3000982F0E94762DA80197010E94D02C0E9415
:101E4000592D7093B8016093B7012091B70130917B
:101E5000B801E0917F04F091800480918A04909110
:101E60008B0497FF03C0909581959F4F64E070E0CD
:101E70000E946B2EEB01CF01F7FF03C09095819577
:101E80009F4F64E070E00E946B2E260F371F2C0FCF
:101E90003D1F3093B8012093B7018091B701909115
:101EA000B80102979CF020E030E048E454E4C80117
:101EB000B7010E94802D882354F52AE037ED43EACC
:101EC0005CE3C801B7010E94D12C19C08091B70111
:101ED0009091B8018F5F9F4FD4F420E030E046E14D
:101EE00054E4C801B7010E94832D181684F42AE037
:101EF00037ED43EA5CE3C801B7010E94D02C609340
:101F0000250570932605809327059093280581E089
:101F10008093BE0180917800909179009093820423
:101F200080938104209106023091070240910802BB
:101F3000509109028091B7019091B801AA2797FDAD
:101F4000A095BA2F280F391F4A1F5B1F2093060246
:101F5000309307024093080250930902E090060272
:101F6000F0900702009108021091090260910602A8
:101F700070910702809108029091090220E034E0FC
:101F800040E050E00E94A02EE21AF30A040B150B69
:101F9000E0920602F09207020093080210930902F1
:101FA00083E08093C40187E08093C3017CC080916B
:101FB0008F04909190042091780030917900820FE5
:101FC000931F9093900480938F04809187048F5F78
:101FD0008093870480918704853008F460C08091E5
:101FE00078009091790090930D0180930C011092EC
:101FF0008704809183049091840420918F04309110
:102000009004821B930B2091220230912302821BA9
:10201000930B9093C0018093BF0160918F047091E6
:102020009004E0900801F090090100910A011091DC
:102030000B01882777FD8095982FA8019701220F23
:10204000331F441F551F2E0D3F1D401F511F620F90
:10205000731F841F951F24E030E040E050E00E9491
:10206000A02E209308013093090140930A01509358
:102070000B01209183043091840480910801909198
:102080000901A0910A01B0910B01281B390B309373
:102090002302209322021092900410928F04109237
:1020A000C4011092C3018091C40180937C008FEE23
:1020B00080937A00FF91EF91DF91CF91BF91AF9123
:1020C0009F918F917F916F915F914F913F912F9150
:1020D0001F910F91FF90EF900F900FBE0F901F90E8
:1020E0001895CF93DF93C0E0D0E0C7BD82E390E0C6
:1020F0000E945C0D89EC91E09F938F931F920E9448
:10210000700980910C0190910D010F900F900F902C
:102110008458934020F02196CA3FD10531F7C093EF
:102120008C0488EC90E00E945C0DDF91CF910895C3
:10213000E8E1F1E080E2819391E0E836F907D9F730
:102140000895FF920F931F938091C801282F332782
:10215000C90181709070682F882391F08091C90126
:10216000882311F0815002C0809168018093C901D9
:10217000E8E1F1E080E2819391E0E836F907D9F7F0
:10218000A9014270507021FF0DC08091C9018F5F7D
:102190008093C901E8E1F1E080E2819391E0E836C3
:1021A000F907D9F7662321F0452B11F01092C901E8
:1021B00081E18093C7018091C90199279F938F93F3
:1021C00082E794E09F938F9381E08F930E94700940
:1021D0008091C9010F900F900F900F900F90E82FF2
:1021E000FF27EC30F10508F086C3EC5AFF4F0C9442
:1021F000F22E1092C70180E694E09F938F9311E036
:102200001F930E94700984E18093C7018CE390E0E2
:102210009F938F931F921F9289E594E09F938F93D2
:102220001F930E94700988E28093C7010E94FC03FB
:1022300099279F938F938CE494E09F938F931F93A0
:102240000E9470098CE38093C7018CE394E09F9314
:102250008F931F930E9470094AC38091E40480FF0A
:1022600044C01092C70180912202909123029F9353
:102270008F938DE294E09F938F9311E01F930E94C0
:10228000700984E18093C701809124029091250216
:102290009F938F938EE194E09F938F931F930E945F
:1022A000700988E28093C70180910C0190910D0123
:1022B0009F938F938FE094E09F938F931F930E943F
:1022C00070098CE38093C70180918C0499279F93B8
:1022D0008F9380E094E09F938F931F930E947009E7
:1022E0008DB79EB744968DBF0BC384E18093C70121
:1022F00089EF93E09F938F9311E01F930E947009E1
:1023000088E28093C7018BEE93E09F938F931F9396
:102310000E9470098DB79EB70696E5CF1092C7014F
:1023200081EE93E09F938F9311E01F930E947009B9
:1023300084E18093C7016091DA017091DB018091A3
:10234000DC019091DD0120E034E040E050E00E94AB
:10235000A02E5F934F933F932F9382ED93E09F9333
:102360008F931F930E94700988E28093C701609148
:10237000E2017091E3018091E4019091E50120E098
:1023800034E040E050E00E94A02E5F934F933F93D3
:102390002F9383EC93E09F938F931F930E94700978
:1023A0008CE38093C70180910A0290910B029F9366
:1023B0008F9384EB93E09F938F931F930E947009F8
:1023C0008DB79EB746968FCF1092C7018091B40407
:1023D0009091B5042091B2043091B3049F938F93F0
:1023E0003F932F9384EA93E09F938F9311E01F9381
:1023F0000E94700984E18093C7018091B804909194
:10240000B9042091B6043091B7049F938F933F9302
:102410002F9384E993E09F938F931F930E947009F9
:1024200088E28093C7018091BC049091BD04209103
:10243000BA043091BB049F938F933F932F9384E80A
:1024400093E09F938F931F930E9470098CE3809376
:10245000C7018091BE049091BF049F938F9384E73E
:1024600093E070C01092C701E091DD04FF27EE0FEA
:10247000FF1FE055FB4F20813181E091DC04FF27F5
:10248000EE0FFF1FE055FB4F808191813F932F930B
:102490009F938F9384E693E09F938F9311E01F9314
:1024A0000E94700984E18093C701E091DF04FF2757
:1024B000EE0FFF1FE055FB4F20813181E091DE04DC
:1024C000FF27EE0FFF1FE055FB4F808191813F9367
:1024D0002F939F938F9384E593E09F938F931F9304
:1024E0000E94700988E28093C701E091E104FF2710
:1024F000EE0FFF1FE055FB4F20813181E091E0049A
:10250000FF27EE0FFF1FE055FB4F808191813F9326
:102510002F939F938F9384E493E09F938F931F93C4
:102520000E9470098CE38093C701E091E204FF27C9
:10253000EE0FFF1FE055FB4F808191819F938F939A
:1025400084E393E09F938F931F930E9470098DB74C
:102550009EB74A96C8CE1092C70186E293E09F9339
:102560008F9311E01F930E94700984E18093C7014B
:102570002091D2013091D3018091AD019091AE01B3
:102580006091B9013F932F9377270E946B2E7F9321
:102590006F9387E193E09F938F931F930E9470093D
:1025A00088E28093C7012091D4013091D5018091B8
:1025B000AF019091B0016091BA013F932F937727BB
:1025C0000E946B2E7F936F9388E093E09F938F938D
:1025D0001F930E9470098CE38093C7012091D6015C
:1025E0003091D7018091B1019091B2016091BB010E
:1025F0003F932F9377270E946B2E7F936F9389EFE2
:1026000092E09F938F931F935BC01092C7018CEE53
:1026100092E09F938F9381E0F82EFF920E947009C1
:1026200084E18093C7018091B5019091B6016091DA
:10263000BC0120912105309122053F932F937727EC
:102640000E946B2E7F936F938DED92E09F938F93FB
:10265000FF920E94700988E28093C7018091B301C4
:102660009091B4016091BD01209123053091240522
:102670003F932F9377270E946B2E7F936F938EEC5F
:1026800092E09F938F93FF920E9470098CE3809356
:10269000C701009181041091820460912505709119
:1026A000260580912705909128050E94592D7F933A
:1026B0006F931F930F938FEB92E09F938F93FF92F3
:1026C0000E9470098DB79EB748960DCE84E1809325
:1026D000C70180910601909107019F938F9380EB32
:1026E00092E09F938F9311E01F930E94700988E2FC
:1026F0008093C70180911A0299279F938F9381EA53
:1027000092E09F938F931F930E9470098DB79EB79D
:102710000A96E9CD1092C70182E992E09F938F93C8
:1027200011E01F930E94700984E18093C70180919A
:102730000E0290910F029F938F9383E892E09F93F4
:102740008F931F930E94700988E28093C701809144
:102750000A0290910B029F938F9384E792E09F93DC
:102760008F931F930E9470098CE38093C70180911F
:102770000C0290910D029F938F9385E692E0B2C078
:102780001092C70180911202909113029F938F9330
:1027900089E592E09F938F9311E01F930E94700947
:1027A00084E18093C70180911402909115029F9358
:1027B0008F938DE492E09F938F931F930E947009F3
:1027C00088E28093C70180911602909117029F932F
:1027D0008F9381E492E09F938F931F930E947009DF
:1027E0008CE38093C70180911802909119029F9306
:1027F0008F9385E392E06FCD1092C7018DE292E056
:102800009F938F9311E01F930E94700984E180933E
:10281000C70180918B0199279F938F938FE192E05D
:102820009F938F931F930E94700988E28093C70142
:102830008091A8019091A9019F938F9381E192E0EB
:102840009F938F931F930E9470098CE38093C7011D
:102850008091000599279F938F938091FF0499277A
:102860009F938F9383E092E09F938F931F930E9497
:10287000700936CD1092C70188EF91E09F938F9336
:1028800011E01F930E94700984E18093C701809139
:102890009104992787FD90959F938F9389EE91E0FE
:1028A0009F938F931F930E94700988E28093C701C2
:1028B00080919204992787FD90959F938F938AED3D
:1028C00091E09F938F931F930E9470098CE38093F4
:1028D000C70180919304992787FD90959F938F93CB
:1028E0008BEC91E09F938F931F930E9470098DB79B
:1028F0009EB74296F8CC8150809368011092C9012E
:102900001092C8011F910F91FF9008951F920F928E
:102910000FB60F9211242F933F934F938F939F9352
:1029200080919404843021F0883009F095C025C04E
:1029300080919704803149F48EB59927982F882784
:10294000909399048093980413C0803249F48EB513
:102950009927982F882790939D0480939C0408C002
:102960008EB59927982F88279093A1048093A0046F
:102970001EBC88E0809394046FC0809197048031DE
:1029800011F58EB5282F33278091980490919904E2
:10299000282B392B3093990420939804C9018D502A
:1029A0009E4F875E934028F430939B0420939A04B3
:1029B00008C080919A0490919B049093990480930D
:1029C000980480E245C0803211F58EB5282F332758
:1029D00080919C0490919D04282B392B30939D0469
:1029E00020939C04C9018D509E4F875E934028F42C
:1029F00030939F0420939E0408C080919E04909180
:102A00009F0490939D0480939C0480E421C08EB524
:102A1000282F33278091A0049091A104282B392BD3
:102A20003093A1042093A004C9018D509E4F875E6E
:102A3000934028F43093A3042093A20408C080910B
:102A4000A2049091A3049093A1048093A00480E138
:102A500080939704109294049F918F914F913F918E
:102A60002F910F900FBE0F901F901895A0E1B0E02E
:102A7000ECE3F5E10C94BB2E6091DA017091DB017F
:102A80008091DC019091DD012091F9043327E3E08E
:102A9000220F331FEA95E1F7442737FD4095542F65
:102AA0000E94A02E79018A01F094E194F108F39438
:102AB000F092A504E092A4046091E2017091E30118
:102AC0008091E4019091E5012091FA04332753E0CD
:102AD000220F331F5A95E1F7442737FD4095542FB5
:102AE0000E94A02E309521953F4F3093A70420934C
:102AF000A604C7010E94B61769877A878B879C87CF
:102B00008091A4049091A5040E941A185B016C01A5
:102B10008091A6049091A7040E94B6176D837E83CE
:102B20008F8398878091A6049091A7040E941A1819
:102B300069837A838B839C8320919204332727FDBA
:102B4000309560919C0470919D04621B730B8827E3
:102B500077FD8095982F0E94762D1B012C012091E6
:102B60009304332727FD30956091A0047091A10450
:102B7000621B730B882777FD8095982F0E94762D16
:102B80003B014C01A201910169817A818B819C8179
:102B90000E94F02D7B018C01A40193016D817E8147
:102BA0008F8198850E94F02D9B01AC01C801B7016F
:102BB0000E94D12C0E94592D6D877E878F87988B1C
:102BC00020919104332727FD3095609198047091EE
:102BD0009904621B730B882777FD8095982F0E94BC
:102BE000762D9B01AC01C601B5010E94F02D5B0161
:102BF0006C01A20191016D817E818F8198850E9477
:102C0000F02D7B018C01A401930169817A818B8174
:102C10009C810E94F02D9B01AC01C801B7010E946C
:102C2000D02C29853A854B855C850E94F02D9B012F
:102C3000AC01C601B5010E94D12C0E94592DDC01C6
:102C4000CB016D857E850E94FA16E2E1C05F0C948F
:102C5000D72E80919404813041F0813018F0823079
:102C600059F51EC02A9A81E018C02A9880919704CD
:102C7000803111F481E307C0803211F482E303C094
:102C8000803411F483E38EBD88E090E00E94E90B6C
:102C9000909396048093950482E080939404089521
:102CA00080919504909196040E94F20B882321F064
:102CB0001EBC84E0809394040895A0E0B0E0E3E6B5
:102CC000F6E10C94BD2EEE24FF2400E010E0AA24CF
:102CD000BB24CC24DD24662477248824992482E331
:102CE000482E55248091980490919904081719074B
:102CF00014F48C0104C08E159F050CF47C018091A6
:102D00009C0490919D04C816D90614F46C0104C06B
:102D10008A159B050CF45C018091A0049091A1049C
:102D20008816990614F44C0104C0861597050CF416
:102D30003C01552041F482E390E09093A7018093F9
:102D4000A601B2E35B2E8AE090E00E94E90BEC0161
:102D5000CE010E94F20B8823D9F3E091DE04FF2715
:102D6000EE0FFF1FE055FB4F808191818436910566
:102D70000CF44A94442011F05A94B4CFE1E9F4E001
:102D8000C8018E0D9F1D62E070E00E946B2E609363
:102D90009104C6018A0D9B1D62E070E00E946B2EBB
:102DA00060939204C401860D971D62E070E00E945A
:102DB0006B2E6093930483E0A5EFB1E0182E0E9480
:102DC000112FE0E1CDB7DEB70C94D92E83ED8CBD89
:102DD00084B1846A84B95B9880E1809397041092EF
:102DE000940483E0E1E9F4E0A5EFB1E0182E0E943D
:102DF000002F0895A0E0B0E0E0E0F7E10C94C42ECD
:102E0000EC016B01892B29F4672B19F480E090E029
:102E10009EC0D7FC03C091E0B92E02C08FEFB82E40
:102E2000209731F48AE52B2D2802C00111248FC090
:102E3000B601882777FD8095982F0E94762D7B011B
:102E40008C01BE01882777FD8095982F0E94762DF2
:102E50009B01AC01C801B7010E94132D20E030E0B6
:102E600048E452E40E94F02D0E94592DFB0177FFA7
:102E700003C0F095E195FF4F31E0EE30F30734F4F5
:102E8000E958FB4F8491682F772747C086E1E737E1
:102E9000F8071CF06AE570E040C027E0E637F2076B
:102EA0001CF069E570E039C034E0EE37F3071CF040
:102EB00068E570E032C083E0E433F8071CF067E5B2
:102EC00070E02BC022E0E038F2071CF066E570E00D
:102ED00024C032E0E830F3071CF065E570E01DC067
:102EE00081E0E83BF8071CF064E570E016C021E0E3
:102EF000EC37F2071CF063E570E00FC031E0EF340F
:102F0000F3071CF062E570E008C0EB52F1401CF0E2
:102F100061E570E002C060E570E01C161D066CF40F
:102F20008B2D992787FD90959C01629FC001639F1F
:102F3000900D729F900D11240AC0D7FC05C084EB40
:102F400090E0861B970B03C0CB01845B9040E9E0C7
:102F5000CDB7DEB70C94E02EFC0125913491FC0135
:102F6000329645915491CA01B9010895A0E0B0E0AC
:102F7000ECEBF7E10C94C52E9C0197FD04C061E0D9
:102F8000C62ED12C06C0309521953F4F5FEFC52E40
:102F9000D52EC9018B5590408A35910530F484EBCC
:102FA00090E0821B930B9C010FC0C901855B904090
:102FB0008A35910518F4245B30400EC0C9018F504A
:102FC00091408A35910518F0C1E0D0E007C088E64D
:102FD00091E0821B930B9C01CFEFDFEF220F331F99
:102FE000220F331FC9018B579A4F0E94AC177B01E8
:102FF0008C01B601882777FD8095982F0E94762D49
:103000009B01AC01C801B7010E94F02D7B018C012E
:10301000BE01882777FD8095982F0E94762D9B0111
:10302000AC01C801B7010E94F02DE8E0CDB7DEB7D2
:103030000C94E12E2AE530E0281B390BC9010E94CF
:10304000B6170895FC0197FD02C091E004C0F09509
:10305000E195FF4F9FEFEF50F94F8491989F802D9E
:103060001124992787FD909508951092B9008AE25E
:103070008093B800089585EA8093BC0080E090E0DA
:10308000089584E98093BC0008951092B90080935C
:10309000BB0085E88093BC0080E090E008951F921B
:1030A0000F920FB60F9211248F939F93EF93FF937C
:1030B0008091CA018F5F8093CA018150E82FFF275A
:1030C000E830F10508F074C0E05AFF4F0C94F22E7E
:1030D0008091CB01880F8E5A14C08091CB018F5FF5
:1030E0008093CB018150813009F444C0813038F0A5
:1030F000823009F442C0833009F05AC041C0809147
:1031000063021092B9008093BB0085E88093BC00F5
:103110004FC084E98093BC008091CB01843018F4C7
:103120001092CA0102C01092CB0185EAEFCF8091C4
:10313000CC01880F8D5AE5CF8091CC018130D1F040
:103140008130E8F28230C9F0833091F519C0809166
:10315000BB00E091CC01FF27E855FB4F80838091B5
:10316000CC01813039F0813050F2823031F083303F
:10317000F9F406C080916402C4CF80916702C1CF88
:1031800080916902BECF8091CC019091BB00E82F65
:10319000FF27E855FB4F94838F5F8093CC018430E9
:1031A00010F01092CC0184E98093BC001092CA0107
:1031B000FF91EF919F918F910F900FBE0F901F90F5
:1031C000189583EC80938100EFE6F0E080818062C7
:1031D00080831092D7011092D6011092D5011092DF
:1031E000D4011092D3011092D20108951F920F9230
:1031F0000FB60F9211240F931F932F933F934F936A
:103200005F936F937F938F939F93AF93BF93CF936E
:10321000DF93EF93FF932091860030918700809198
:10322000CF019091D001281B390B8091860090919D
:1032300087009093D0018093CF01C9018D5D9540A7
:103240008356994148F481E090E09093CE018093B9
:10325000CD011092690154C0C091CD01D091CE0131
:10326000CA30D1050CF04CC0C9018B5F9040845B23
:10327000914008F040C0A901425D5140FE01EE0FAF
:10328000FF1FE055FB4F80819181FA01E81BF90B8C
:10329000CF01F7FF03C0909581959F4F06974CF49F
:1032A00080911A02883C28F480911A02865F8093EC
:1032B0001A02FE01EE0FFF1F8F0100551B4FD801B0
:1032C0002D913C91C901880F991F820F931F840F84
:1032D000951F64E070E00E946B2ED8018D919C9147
:1032E00011979B01281B390BEA53FB4F3183208335
:1032F00011967C936E932196D093CE01C093CD010D
:10330000FF91EF91DF91CF91BF91AF919F918F91FD
:103310007F916F915F914F913F912F911F910F91ED
:103320000F900FBE0F901F901895AF92BF92CF9243
:10333000DF92EF92FF920F931F9310927A00809189
:10334000B901882369F08091AD019091AE0160913F
:10335000B90177270E946B2E7093190560931805A9
:103360008091BA01882369F08091AF019091B001FA
:103370006091BA0177270E946B2E709317056093B6
:1033800016058091BB01882369F08091B10190916D
:10339000B2016091BB0177270E946B2E70932D05BF
:1033A00060932C058091BC018823D9F1E090290518
:1033B000F0902A056091B5017091B6012091BC0191
:1033C0000027F7FC0095102F5701680143E0AA0C75
:1033D000BB1CCC1CDD1C4A95D1F7AE18BF08C00A37
:1033E000D10A882777FD8095982F34E0660F771FE4
:1033F000881F991F3A95D1F73327442755270E94F4
:10340000A02EA20EB31EC41ED51EC601B50128E013
:1034100030E040E050E00E94A02E30932A05209337
:1034200029058091BD018823D9F1E0903205F09003
:1034300033056091B3017091B4012091BD01002763
:10344000F7FC0095102F5701680183E0AA0CBB1C04
:10345000CC1CDD1C8A95D1F7AE18BF08C00AD10A72
:10346000882777FD8095982FB4E0660F771F881F17
:10347000991FBA95D1F73327442755270E94A02ECC
:10348000A20EB31EC41ED51EC601B50128E030E051
:1034900040E050E00E94A02E309333052093320587
:1034A0008091BE018823A1F1E0901B05F0901C05DE
:1034B0006091B7017091B8012091BE010027F7FC1F
:1034C0000095102F57016801A3E0AA0CBB1CCC1C6F
:1034D000DD1CAA95D1F7AE18BF08C00AD10A88270B
:1034E00077FD8095982F3327442755270E94A02EDB
:1034F000A20EB31EC41ED51EC601B50128E030E0E1
:1035000040E050E00E94A02E30931C0520931B0544
:103510001092AE011092AD011092B9011092B0015B
:103520001092AF011092BA011092B2011092B10143
:103530001092BB011092B4011092B3011092BD0120
:103540001092B6011092B5011092BC011092B80110
:103550001092B7011092BE018091FE019091FF017F
:10356000A0910002B09101028093EA019093EB01D7
:10357000A093EC01B093ED018091EE019091EF01E9
:10358000A091F001B091F1018093DA019093DB01F9
:10359000A093DC01B093DD018091F6019091F701D9
:1035A000A091F801B091F9018093E2019093E301B9
:1035B000A093E401B093E5018091F2019091F301B1
:1035C000A091F401B091F5018093DE019093DF01A9
:1035D000A093E001B093E1018091FA019091FB0189
:1035E000A091FC01B091FD018093E6019093E70169
:1035F000A093E801B093E9018FEE80937A00809167
:10360000180590911905893C91057CF020911805C9
:10361000309119058091180590911905880F991F0F
:10362000880F991F2052334015C080911805909142
:10363000190588539F4FA4F420911805309119055E
:103640008091180590911905880F991F880F991F6F
:10365000205E3C4F820F931F9093190580931805AD
:103660008091160590911705893C91057CF0209179
:103670001605309117058091160590911705880F52
:10368000991F880F991F2052334015C0809116054D
:103690009091170588539F4FA4F4209116053091FF
:1036A00017058091160590911705880F991F880FAF
:1036B000991F205E3C4F820F931F909317058093B4
:1036C000160520911202309113028091E004E82F38
:1036D000FF27EE0FFF1FE055FB4F8081918182593C
:1036E0009F4F281739071CF42F5F3F4F0CC0808174
:1036F000918182599F4F821793074CF42115310510
:1037000031F0215030403093130220931202209167
:103710001402309115028091E104E82FFF27EE0F8B
:10372000FF1FE055FB4F8081918182599F4F2817E1
:1037300039071CF42F5F3F4F0CC080819181825963
:103740009F4F821793074CF42115310531F021501A
:1037500030403093150220931402209116023091CC
:1037600017028091E204E82FFF27EE0FFF1FE055BC
:10377000FB4F8081918182599F4F281739071CF494
:103780002F5F3F4F0CC08081918182599F4F8217DC
:1037900093074CF42115310531F02150304030931E
:1037A000170220931602209118023091190280917D
:1037B000E304E82FFF27EE0FFF1FE055FB4F80814A
:1037C000918182599F4F281739071CF42F5F3F4F73
:1037D0000CC08081918182599F4F821793074CF4CE
:1037E0002115310531F021503040309319022093DA
:1037F0001802809112029091130297FF05C0109257
:103800001302109212020AC08F3F910539F034F072
:103810008FEF90E090931302809312028091140234
:103820009091150297FF05C0109215021092140294
:103830000AC08F3F910539F034F08FEF90E09093FC
:10384000150280931402809116029091170297FF3F
:1038500005C010921702109216020AC08F3F910500
:1038600039F034F08FEF90E09093170280931602B6
:10387000809118029091190297FF05C010921902C9
:10388000109218020AC08F3F910539F034F08FEF83
:1038900090E090931902809318021F910F91FF906E
:1038A000EF90DF90CF90BF90AF90089510927A0084
:1038B0008091B901882369F08091AD019091AE01AA
:1038C0006091B90177270E946B2E70931905609360
:1038D00018058091BA01882369F08091AF01909119
:1038E000B0016091BA0177270E946B2E7093170583
:1038F000609316058091BB01882369F08091B10126
:103900009091B2016091BB0177270E946B2E70935A
:103910002D0560932C058091BC018823D1F0609126
:10392000B5017091B6012091BC01882777FD809583
:10393000982F34E0660F771F881F991F3A95D1F7AB
:103940003327442755270E94A02E30932A05209321
:1039500029058091BD018823D1F06091B301709158
:10396000B4012091BD01882777FD8095982FB4E0A0
:10397000660F771F881F991FBA95D1F73327442701
:1039800055270E94A02E3093330520933205809155
:10399000BE01882399F06091B7017091B801209120
:1039A000BE01882777FD8095982F33274427552718
:1039B0000E94A02E30931C0520931B051092AE018F
:1039C0001092AD011092B9011092B0011092AF01A6
:1039D0001092BA011092B2011092B1011092BB0183
:1039E0001092B4011092B3011092BD011092B60171
:1039F0001092B5011092BC011092B8011092B7015B
:103A00001092BE018FEE80937A00209112023091C5
:103A100013028091E004E82FFF27EE0FFF1FE0550F
:103A2000FB4F8081918182599F4F281739071CF4E1
:103A30002F5F3F4F0CC08081918182599F4F821729
:103A400093074CF42115310531F02150304030936B
:103A500013022093120220911402309115028091DA
:103A6000E104E82FFF27EE0FFF1FE055FB4F808199
:103A7000918182599F4F281739071CF42F5F3F4FC0
:103A80000CC08081918182599F4F821793074CF41B
:103A90002115310531F0215030403093150220932B
:103AA000140220911602309117028091E204E82F4F
:103AB000FF27EE0FFF1FE055FB4F80819181825958
:103AC0009F4F281739071CF42F5F3F4F0CC0808190
:103AD000918182599F4F821793074CF4211531052C
:103AE00031F021503040309317022093160220917C
:103AF0001802309119028091E304E82FFF27EE0F9E
:103B0000FF1FE055FB4F8081918182599F4F2817FD
:103B100039071CF42F5F3F4F0CC08081918182597F
:103B20009F4F821793074CF42115310531F0215036
:103B30003040309319022093180280911202909124
:103B4000130297FF05C010921302109212020AC0CE
:103B50008F3F910539F034F08FEF90E0909313028E
:103B600080931202809114029091150297FF05C074
:103B700010921502109214020AC08F3F910539F07D
:103B800034F08FEF90E090931502809314028091AF
:103B900016029091170297FF05C01092170210921B
:103BA00016020AC08F3F910539F034F08FEF90E094
:103BB0009093170280931602809118029091190237
:103BC00097FF05C0109219021092180208958F3FB6
:103BD000910539F034F08FEF90E0909319028093C3
:103BE000180208951F938091E7048B3F98F08B3F54
:103BF00019F4809112020EC08C3F19F480911402C6
:103C000009C08D3F19F48091160204C08E3F21F443
:103C1000809118028093830180918301882319F495
:103C20001092830104C08F3F11F48093830180912F
:103C3000E6048B3F98F08B3F19F4809112020EC07E
:103C40008C3F19F48091140209C08D3F19F48091C2
:103C5000160204C08E3F21F48091180280938201E5
:103C600080918201882319F41092820105C0843664
:103C700018F084E6809382018091E8048B3F98F0ED
:103C80008B3F19F4809112020EC08C3F19F4809181
:103C9000140209C08D3F19F48091160204C08E3FB2
:103CA00021F48091180280938401809184018823FB
:103CB00019F41092840105C0843618F084E68093CC
:103CC00084018091EA048B3F98F08B3F19F4809136
:103CD00012020EC08C3F19F48091140209C08D3F6E
:103CE00019F48091160204C08E3F21F480911802CD
:103CF0008093850180918501882319F410928501B4
:103D000004C08F3F11F4809385018091F1048B3FB3
:103D100098F08B3F19F4809112020EC08C3F19F479
:103D20008091140209C08D3F19F48091160204C0DD
:103D30008E3F21F480911802809386018091860144
:103D4000882319F41092860104C08F3F11F48093E8
:103D500086018091F2048B3F98F08B3F19F480919B
:103D600012020EC08C3F19F48091140209C08D3FDD
:103D700019F48091160204C08E3F21F4809118023C
:103D800080938701809187018B3010F48AE002C014
:103D90008F3F11F4809387018091F3048B3F98F05B
:103DA0008B3F19F4809112020EC08C3F19F4809160
:103DB000140209C08D3F19F48091160204C08E3F91
:103DC00021F48091180280938801809188018823D2
:103DD00019F41092880104C08F3F11F48093880178
:103DE0008091F8048B3F98F08B3F19F48091120278
:103DF0000EC08C3F19F48091140209C08D3F19F454
:103E00008091160204C08E3F21F4809118028093A5
:103E10008A0180918A01882319F410928A0104C0D2
:103E20008F3F11F480938A018091F9048B3F98F0C1
:103E30008B3F19F4809112020EC08C3F19F48091CF
:103E4000140209C08D3F19F48091160204C08E3F00
:103E500021F4809118028093260280912602882303
:103E600019F41092260204C08F3F11F480932602A9
:103E70008091FA048B3F98F08B3F19F480911202E5
:103E80000EC08C3F19F48091140209C08D3F19F4C3
:103E90008091160204C08E3F21F480911802809315
:103EA000270280912702882319F41092270204C068
:103EB0008F3F11F4809327028091FB048B3F98F091
:103EC0008B3F19F4809112020EC08C3F19F480913F
:103ED000140209C08D3F19F48091160204C08E3F70
:103EE00021F480911802809328028091280288236F
:103EF00019F41092280204C08F3F11F48093280215
:103F00008091FC048B3F98F08B3F19F48091120252
:103F10000EC08C3F19F48091140209C08D3F19F432
:103F20008091160204C08E3F21F480911802809384
:103F3000290280912902882319F41092290204C0D1
:103F40008F3F11F4809329029091FD049B3FB0F0C4
:103F50009B3F19F48091120204C09C3F29F4809188
:103F6000140280938B010CC09D3F19F480911602BE
:103F7000F8CF9E3F29F480911802F3CF90938B01E4
:103F800080918B01882319F410928B0104C08F3F1C
:103F900011F480938B019B3FB0F09B3F19F480910B
:103FA000120204C09C3F29F48091140280938B017B
:103FB0000CC09D3F19F480911602F8CF9E3F29F462
:103FC00080911802F3CF90938B0180918B0188230D
:103FD00019F410928B0104C08F3F11F480938B0170
:103FE0009B3FB0F09B3F19F48091120204C09C3FAC
:103FF00029F48091140280938B010CC09D3F19F429
:1040000080911602F8CF9E3F29F480911802F3CFD9
:1040100090938B0180918B01882319F410928B016E
:1040200004C08F3F11F480938B0110918A01612F9E
:10403000772767FD7095872F972F0E94762D17FFA2
:1040400006C020E030E040E853E40E94D12C27E194
:1040500037EB41ED58E30E94F02D60937E017093A1
:104060007F0180938001909381018091EF04809380
:104070002B058091EE0480931A051F91089581E02D
:104080008093DC0442E04093DD0483E08093DE040F
:1040900094E09093DF0435E03093E00486E0809371
:1040A000E10487E08093E2041092E4048EE18093BF
:1040B000E5048BEF8093E7048AE08093E80422E331
:1040C0002093E6042093EA044093E9049093EB04E0
:1040D0001092EC0490E19093ED048FE08093EE0455
:1040E0008AEF8093EF048AE18093F0049093F104C7
:1040F0008FEA8093F2048093F3048AE58093F404BA
:1041000083E28093F50484E18093F6041092F7042F
:104110003093F80488E78093F9048093FA041092AE
:10412000FB041092FC0484E68093FD0488E28093F3
:10413000FE04109202052093FF0486E98093000597
:1041400030930105AAE0B5E0EAE6F1E08CE00190E9
:104150000D928150E1F7089581E08093DC0452E0F4
:104160005093DD0483E08093DE0444E04093DF0459
:1041700035E03093E00486E08093E10487E08093AB
:10418000E20428E02093E3041092E4049EE190937B
:10419000E5048BEF8093E7048AE08093E80486E4EB
:1041A0008093E6049093EA045093E9044093EB046F
:1041B0002093EC0490E19093ED048FE08093EE0463
:1041C0008AEF8093EF048AE18093F0049093F104E6
:1041D00098E79093F20426E92093F3048AE580930C
:1041E000F40483E28093F50484E18093F604109252
:1041F000F7043093F8049093F9049093FA04109222
:10420000FB041092FC0484E68093FD0488E2809312
:10421000FE041092020582E38093FF0420930005C0
:1042200030930105AAE0B5E0E2E7F1E08CE001900F
:104230000D928150E1F7089580912102882301F5C4
:104240001092640210926302109267021092690247
:1042500080919601882311F08093630280919701E9
:10426000882311F08093640280919801882311F0D3
:104270008093690280919901882311F080936702ED
:1042800080916302992790937704809376048091BC
:10429000640299279093790480937804809169024D
:1042A000992790937B0480937A04809167029927E1
:1042B00090937D0480937C041092CA011092CB01EC
:1042C0000E943B180895CF93DF931092220510921D
:1042D0002105109224051092230580E090E0A0E0D3
:1042E000B0E08093250590932605A0932705B09311
:1042F00028051092D3011092D2011092D50110928C
:10430000D4011092D7011092D6010E94561C85E06C
:1043100090E00E94E90BEC01CE010E94F20B882391
:10432000D9F30E94561C8091E40480FF10C0809154
:104330000C0190910D01875B934038F480910C0142
:1043400090910D018E5E924010F40E947110809148
:1043500018059091190597FF03C0909581959F4F7F
:104360009093D3018093D201809116059091170507
:1043700097FF03C0909581959F4F9093D5018093AF
:10438000D40180912C0590912D0597FF03C0909545
:1043900081959F4F9093D7018093D60188E0E1E209
:1043A000F5E0A8EFB1E0182E0E94002F1092EE0168
:1043B0001092EF011092F0011092F1011092F201AF
:1043C0001092F3011092F4011092F5011092F6018F
:1043D0001092F7011092F8011092F9011092FA016F
:1043E0001092FB011092FC011092FD011092FE014F
:1043F0001092FF0110920002109201021092190512
:1044000010921805109217051092160510922D059E
:1044100010922C058091080190910901A0910A0148
:10442000B0910B0190938404809383041092C00197
:104430001092BF0110920602109207021092080219
:104440001092090280910A0290910B0290930D0242
:1044500080930C020E94992C82E390E09093A70134
:104460008093A601DF91CF910895CF93DF930E94AF
:10447000561C85E090E00E94E90BEC01CE010E9401
:10448000F20B8823D9F30E94561C80912905909144
:104490002A05C1E2D5E097FF03C0909581959F4F13
:1044A00060E170E00E946B2E7093220560932105FD
:1044B000809132059091330597FF03C090958195C7
:1044C0009F4F60E170E00E946B2E70932405609313
:1044D00023056091810470918204882777FD80957F
:1044E000982F0E94762D6093250570932605809362
:1044F00027059093280588E0A8EFB1E0FE01182E6B
:104500000E94112FDF91CF9108951F93182F0EC095
:1045100080912102882361F484E690E09093A701C2
:104520008093A6018AEF90E00E945C0D115080F705
:104530001F910895A8E0B0E0E0EAF2E20C94BB2EEF
:104540000E949519299AE091DE04AE2FBB27AA0F8D
:10455000BB1FA055BB4F0D90BC91A02D9D012858AD
:104560003F4F3A83298337FF02C01A821982809114
:104570001A02843608F04AC080910101882331F480
:1045800084EF91E09093A7018093A601809133027C
:1045900090913402009731F0019790933402809308
:1045A000330204C01092210210921002289A8091C6
:1045B0002E0290912F02815D974028F18091F504A1
:1045C000482F55275A83498381E080931002E09158
:1045D000DC04FF27EE0FFF1FE055FB4F1182108216
:1045E000E091DD04FF27EE0FFF1FE055FB4F118226
:1045F0001082E091DF04FF27EE0FFF1FE055FB4F15
:1046000011821082CEC110922102CBC180911A0278
:104610008D3808F4C6C1109210028091F60422E38E
:10462000829FC001112490933402809333026981E8
:104630007A81693271056CF080912E0290912F027F
:104640007FEF8F3F970781F1019690932F02809320
:104650002E0280912E0290912F02883C910520F02D
:1046600089819A81889704F51092490210924A0232
:1046700010924B0210924C02109245021092460288
:1046800010924702109248021092FE011092FF0110
:104690001092000210920102109202021092030284
:1046A0001092040210920502E981FA81E93CF105B9
:1046B0000CF4D6C080912102882309F072C1E091E8
:1046C000DF04FF27EE0FFF1FE055FB4F8081918134
:1046D0008C3491050CF4C1C0809132028F5F8093BD
:1046E0003202893C08F45DC129980E94632110922E
:1046F00021021092320210922F0210922E0280910B
:10470000DC04282F3327F901EE0FFF1FE055FB4F84
:1047100080819181873491059CF4E091DD04FF272D
:10472000EE0FFF1FE055FB4F0190F081E02DF7FFEA
:1047300003C0F095E195FF4FE734F1050CF46CC030
:104740008091DD04682F7727DB01AA0FBB1FA055DE
:10475000BB4F8D919C911197873491053CF0F901E5
:10476000EE0FFF1FE055FB4F808191818D919C9151
:104770008734910564F0F901EE0FFF1FE055FB4F00
:10478000808191818734910514F042E001C041E0BD
:10479000FB01EE0FFF1FE055FB4F808191818634B6
:1047A00091055CF4F901EE0FFF1FE055FB4F80818E
:1047B0009181873491050CF043E0FB01EE0FFF1F60
:1047C000E055FB4F808191818A5B9F4F5CF4F9013A
:1047D000EE0FFF1FE055FB4F8081918187349105DB
:1047E0000CF044E0660F771F60557B4FFB01808122
:1047F00091818A5B9F4F5CF4220F331F20553B4F02
:10480000F90180819181863491050CF445E0A2E0A4
:10481000B0E0042E0E94052F0E94FC034AE36CEDD9
:1048200074E00E941B040E94FC030E948522809178
:10483000E40480FFB6C080910C0190910D01875B6C
:10484000934040F480910C0190910D018E5E924056
:1048500008F0A7C00E947110A4C010923202A1C03B
:1048600049815A81433251050CF09BC08091DF048D
:10487000482F5527FA01EE0FFF1FE055FB4F8081AF
:104880009181855B9F4F0CF06DC0809131028F5FED
:1048900080933102893C08F467C088EC8093310230
:1048A00081E090E090932F0280932E0281E080932C
:1048B0002102109241021092420210924302109281
:1048C00044021092FE011092FF0110920002109219
:1048D000010210920202109203021092040210923E
:1048E00005021092EE011092EF011092F001109269
:1048F000F1011092F6011092F7011092F801109256
:10490000F9018091DA019091DB01A091DC01B09175
:10491000DD018093F2019093F301A093F401B09331
:10492000F5018091E2019091E301A091E401B09141
:10493000E5018093FA019093FB01A093FC01B093F1
:10494000FD011092490210924A0210924B021092FD
:104950004C021092450210924602109247021092A9
:10496000480202C010923102440F551F40555B4F60
:10497000FA01808191818C3491058CF08091300214
:104980008F5F80933002893C60F01092210288ECA6
:104990008093300210922F0210922E0202C01092C9
:1049A0003002809169018150809369018091690191
:1049B0008F3F29F080911002882309F412C10E94D0
:1049C000F21DE091DC04FF27EE0FFF1FDF01A05571
:1049D000BB4F8D919C916091EB047727EA53FB4F7D
:1049E000208131814091EC045527FC01E69FC001F4
:1049F000E79F900DF69F900D1124F901E49F90011F
:104A0000E59F300DF49F300D1124820F931F90937A
:104A10001C0280931B02E091DD04FF27EE0FFF1FB5
:104A2000DF01A055BB4F8D919C91EA53FB4F208134
:104A30003181FC01E69FC001E79F900DF69F900D2C
:104A40001124B901649F9001659F300D749F300D52
:104A50001124820F931F90931E0280931D02E091F8
:104A6000DF04FF27EE0FFF1FE055FB4F8081918190
:104A7000909581959F4F9093200280931F021091F3
:104A80008701612F772767FD7095872F972F0E94E9
:104A9000762D17FF06C020E030E040E853E40E9486
:104AA000D12C20E030E040E251E40E94D12C20E003
:104AB00030E040E85BE30E94F02D3B014C01609345
:104AC0002E0570932F05809330059093310510913A
:104AD0008801612F772767FD7095872F972F0E9498
:104AE000762D17FF06C020E030E040E853E40E9436
:104AF000D12C20E030EE4BE257E40E94132D60935E
:104B00001D0570931E0580931F05909320058091CD
:104B1000E40482FF0CC080E090E0A0E0B0E080936D
:104B20001D0590931E05A0931F05B093200520E05E
:104B300030E040E050E0C401B3010E94802D8823A2
:104B400064F480E090E0A0E0B0E080932E059093C4
:104B50002F05A0933005B093310520E030E040E010
:104B600050E060911D0570911E0580911F05909188
:104B700020050E94802D882364F480E090E0A0E06E
:104B8000B0E080931D0590931E05A0931F05B09380
:104B9000200580911002882321F1109220021092AA
:104BA0001F0210921C0210921B0210921E02109201
:104BB0001D028DEC9CECACECBDE380932E05909334
:104BC0002F05A0933005B09331058AE097EDA3EA55
:104BD000BBE380931D0590931E05A0931F05B09322
:104BE00020058091C1019091C2018D54914008F43B
:104BF00090C02091DE013091DF014091E0015091A1
:104C0000E1018091DA019091DB01A091DC01B0918A
:104C1000DD01B901681B790B70933802609337028C
:104C20002091E6013091E7014091E8015091E901BE
:104C30008091E2019091E301A091E401B091E5013E
:104C4000281B390B30933602209335021092C20193
:104C50001092C101673A710534F08091D2019091B0
:104C6000D301019608C06A557F4F4CF48091D20160
:104C70009091D30101979093D3018093D201273A69
:104C8000310534F08091D4019091D501019608C08E
:104C90002A553F4F4CF48091D4019091D501019752
:104CA0009093D5018093D40110927A008091DA011B
:104CB0009091DB01A091DC01B091DD018093F201C4
:104CC0009093F301A093F401B093F5018091E20178
:104CD0009091E301A091E401B091E5018093FA0184
:104CE0009093FB01A093FC01B093FD018091EA0138
:104CF0009091EB01A091EC01B091ED018093020243
:104D000090930302A0930402B09305028FEE809368
:104D10007A006091DA017091DB018091DC01909161
:104D2000DD01A090F004BB24CC24DD24E090290513
:104D3000F0902A05A60195010E94A02E0027F7FCFD
:104D40000095102F2E193F09400B510BCA01B901D4
:104D500020E130E040E050E00E94A02E39014A01FD
:104D600020933D0230933E0240933F025093400215
:104D70006091E2017091E3018091E4019091E5017D
:104D8000E0903205F0903305A60195010E94A02E17
:104D90000027F7FC0095102F2E193F09400B510BEF
:104DA000CA01B90120E130E040E050E00E94A02EAD
:104DB0002093390230933A0240933B0250933C02D5
:104DC000E5EF6E16E1E07E06E0E08E06E0E09E068E
:104DD0002CF084EF91E0A0E0B0E00DC0FCE06F1695
:104DE000FEEF7F06FFEF8F06FFEF9F0664F48CE077
:104DF0009EEFAFEFBFEF80933D0290933E02A093F2
:104E00003F02B0934002253F61E0360760E046076D
:104E100060E056072CF084EF91E0A0E0B0E009C01C
:104E20002C503E4F4F4F5F4F64F48CE09EEFAFEF3E
:104E3000BFEF8093390290933A02A0933B02B09364
:104E40003C0210927A008091EE019091EF01A091C6
:104E5000F001B091F10120913D0230913E0240916C
:104E60003F0250914002821B930BA40BB50B809321
:104E7000EE019093EF01A093F001B093F1018091C6
:104E8000F6019091F701A091F801B091F9012091FC
:104E9000390230913A0240913B0250913C02821B10
:104EA000930BA40BB50B8093F6019093F701A0939D
:104EB000F801B093F90180911F02909120029C01AA
:104EC000442737FD4095542F2B833C834D835E83CD
:104ED0002093410230934202409343025093440294
:104EE00097FF03C0909581959F4F84973CF08091E8
:104EF000E40484FD03C081E080932A026090FE01F7
:104F00007090FF0180900002909001028B819C8143
:104F100097FF03C0909581959F4F7C010027F7FC78
:104F20000095102F2091ED043327442755276B81DE
:104F30007C818D819E810E94382E9B01AC01C8012D
:104F4000B7010E94382E20E031E040E050E00E949E
:104F5000A02E442737FD4095542F621A730A840A05
:104F6000950A6092FE017092FF0180920002909279
:104F700001028091FE019091FF01A0910002B09189
:104F8000010281539547A040B04064F080E395E76B
:104F9000A0E0B0E08093FE019093FF01A093000297
:104FA000B09301028091FE019091FF01A091000257
:104FB000B0910102805D9A48AF4FBF4F64F480ED1D
:104FC0009AE8AFEFBFEF8093FE019093FF01A093AB
:104FD0000002B0930102EFEEE0937A0080910A02A2
:104FE00090910B02892B09F441C08091E40483FF66
:104FF0003DC080912A02882351F080910A0290914D
:105000000B0290930D0280930C0210922A021092D0
:105010007A000091FE011091FF0120910002309171
:10502000010240910E0250910F0280918601992752
:10503000BC01469FC001479F900D569F900D1124C3
:1050400060E270E00E946B2E882777FD8095982F94
:10505000061B170B280B390B0093FE011093FF0161
:105060002093000230930102E0937A0080915D0466
:105070008F5F80935D0480912B02815080932B027F
:105080008F3F09F06BC081E380932B028091A404D1
:105090009091A50490935F0480935E048091A60490
:1050A0009091A704909361048093600480912905F6
:1050B00090912A0590936304809362048091320555
:1050C00090913305909365048093640480912C053E
:1050D00090912D059093670480936604809122023D
:1050E0009091230290936904809368046091060272
:1050F00070910702809108029091090220E032E04D
:1051000040E050E00E94A02E30936B0420936A048C
:1051100089819A8190936D0480936C0480910A0236
:1051200090910B0290936F0480936E048091980489
:1051300090919904909371048093700480919C04E1
:1051400090919D0490937304809372048091A004C5
:105150009091A10490937504809374046091DA0196
:105160007091DB018091DC019091DD0120901D05A3
:1051700030901E0540901F0550902005E0901805C6
:10518000F090190560902E0570902F0580903005E5
:10519000909031050E94762DA20191010E94F02D80
:1051A0005B016C010027F7FC0095102FC801B701C7
:1051B0000E94762DA40193010E94F02D9B01AC0169
:1051C000C601B5010E94D12C0E94592D709319057A
:1051D000609318056091E2017091E3018091E40110
:1051E0009091E501E0901605F09017050E94762D4C
:1051F000A20191010E94F02D5B016C010027F7FCD8
:105200000095102FC801B7010E94762DA4019301CB
:105210000E94F02D9B01AC01C601B5010E94D12C6A
:105220000E94592D709317056093160560912C0507
:1052300070912D05A090EA01B090EB01C090EC01B7
:10524000D090ED01882777FD8095982F0E94762DCC
:105250007B018C0120E030E040E05FE3C401B3015A
:105260000E94F02D9B01AC01C801B7010E94F02DF6
:105270007B018C01C601B5010E94762DA20191012E
:105280000E94F02D9B01AC01C801B7010E94D12CF6
:105290000E94592D70932D0560932C05809118055F
:1052A000909119058150984034F080E098E09093F7
:1052B0001905809318058091180590911905805063
:1052C000984F34F480E098EF909319058093180577
:1052D00080911605909117058150984034F080E038
:1052E00098E090931705809316058091160590918C
:1052F00017058050984F34F480E098EF909317058D
:105300008093160580912C0590912D058150984031
:1053100034F080E098E090932D0580932C058091E7
:105320002C0590912D058050984F34F480E098EF33
:1053300090932D0580932C058091E404992780FF9C
:10534000CDC02091830181FF0EC02233B0F4809143
:105350002202909123024497909325028093240285
:10536000109211020DC08091E904289FC001112400
:105370004497909325028093240281E08093110248
:1053800080911002882321F01092250210922402AD
:105390002091220230912302409124025091250253
:1053A000421753070CF09AC080911102882309F428
:1053B00095C0241B350B809184019927BC01269F41
:1053C000C001279F900D369F900D112460E170E081
:1053D0000E946B2E09811A81061B170B2091BF01B9
:1053E0003091C001809182019927FC012E9FC0015C
:1053F0002F9F900D3E9F900D112468E070E00E9459
:105400006B2E061B170B60910602709107028091AC
:1054100008029091090220E032E040E050E00E9452
:10542000A02ECA01B90120918501332744275527B1
:105430000E94382E20E230E040E050E00E94A02E92
:10544000FFEF2E3C3F0714F42EEC3FEF80912C022F
:1054500090912D02AC0174E0440F551F7A95E1F74D
:10546000481B590B2333310514F022E330E0021BB3
:10547000130BCA01800F911F60E170E00E946B2E38
:1054800070932D0260932C028091E5049927681790
:1054900079078CF429813A81281739072CF09093E9
:1054A0002D0280932C0207C049815A8150932D020E
:1054B00040932C020DC080912C0290912D026981A5
:1054C0007A816817790724F470932D0260932C0277
:1054D00080912C0290912D029A83898380902C05D3
:1054E00090902D05EB81FC818E1A9F0AF5E68F16B0
:1054F000910424F064E6862E912C09C02CE98216D2
:105500002FEF920624F45CE9852E5FEF952E4090F4
:105510007A0150907B0160907C0170907D016091D8
:1055200018057091190520911B0230911C024091C1
:105530004D0250914E02241B350B621B730B8827C2
:1055400077FD8095982F0E94762D9B01AC01C301B9
:10555000B2010E94F02D0E94592D70936602609353
:10556000650280916502909166028C01222717FDE9
:105570002095322F8091490290914A02A0914B02CE
:10558000B0914C02080F191F2A1F3B1F00934902BC
:1055900010934A0220934B0230934C0210161106CE
:1055A00012061306ACF4C80117FF03C0909581954D
:1055B0009F4F60E071E00E946B2E6F5F7F4F8827E6
:1055C00077FD8095982F061B170B280B390B14C0FD
:1055D000C80117FF03C0909581959F4F60E071E06F
:1055E0000E946B2E6F5F7F4F882777FD8095982FE5
:1055F000060F171F281F391F0093490210934A02F4
:1056000020934B0230934C028091490290914A02C0
:10561000A0914B02B0914C0281383EE3930730E0F9
:10562000A30730E0B3072CF080E89EE3A0E0B0E0F1
:1056300009C08058914CAF4FBF4F64F480E891ECA3
:10564000AFEFBFEF8093490290934A02A0934B02C1
:10565000B0934C026091650270916602A0907E0149
:10566000B0907F01C0908001D0908101882777FDA4
:105670008095982F0E94762D7B018C0160914902C4
:1056800070914A0280914B0290914C020E94762DBB
:105690009B01AC01C601B5010E94F02D9B01AC013C
:1056A000C801B7010E94D12C0E94592D9401260FE8
:1056B000371F89819A81280F391F22240A9714F4F1
:1056C00041E0242E37FD02C0222019F040E050E0D6
:1056D00008C080912B05482F5527241735070CF457
:1056E000A90180911A05E82FFF27F887EF839F0112
:1056F000E417F5070CF49A012093630229813A819B
:10570000261B370BB901680D791D77FD02C02220D9
:1057100019F080E090E007C080912B059927681769
:1057200079070CF4CB012F813885281739070CF441
:105730009C012093640260911605709117052091D9
:105740001D0230911E0240914F0250915002241BC5
:10575000350B621B730B882777FD8095982F0E946D
:10576000762D9B01AC01C301B2010E94F02D0E9475
:10577000592D709362026093610280916102909151
:1057800062028C01222717FD2095322F809145025D
:1057900090914602A0914702B0914802080F191F4C
:1057A0002A1F3B1F00934502109346022093470295
:1057B000309348021016110612061306ACF4C80105
:1057C00017FF03C0909581959F4F60E071E00E94A4
:1057D0006B2E6F5F7F4F882777FD8095982F061B74
:1057E000170B280B390B14C0C80117FF03C0909585
:1057F00081959F4F60E071E00E946B2E6F5F7F4F3D
:10580000882777FD8095982F060F171F281F391FAF
:1058100000934502109346022093470230934802BA
:105820008091450290914602A0914702B0914802B2
:1058300081383EE3930730E0A30730E0B3072CF054
:1058400080E89EE3A0E0B0E009C08058914CAF4FE3
:10585000BF4F64F480E891ECAFEFBFEF8093450257
:1058600090934602A0934702B09348026091610270
:1058700070916202882777FD8095982F0E94762D7F
:105880007B018C0160914502709146028091470234
:10589000909148020E94762D9B01AC01C601B50192
:1058A0000E94F02D9B01AC01C801B7010E94D12CD0
:1058B0000E94592D29813A81260F371F281939094D
:1058C00037FD02C0222019F040E050E008C080916E
:1058D0002B05482F5527241735070CF4A9012F81D4
:1058E0003885241735070CF49A01209369028981C1
:1058F0009A81861B970BBC016819790977FD02C054
:10590000222019F020E030E008C080912B05282FDC
:105910003327621773070CF49B018F8198858217D8
:1059200093070CF4C90180936702E2E1C85F0C940D
:10593000D72E8091510290915202A0915302B091C2
:1059400054028093590290935A02A0935B02B09341
:105950005C028091550290915602A0915702B0913D
:10596000580280935D0290935E02A0935F02B09311
:105970006002089510924E0210924D021092500251
:1059800010924F020895FC014150504030F00190B8
:105990000616D1F73197CF010895882799270895E2
:1059A0005058192EEFD001D0D2C0BA176207730732
:1059B00084079507B1F188F40EF410940B2EBA2FDA
:1059C000A02D062E622F202D072E732F302D082E8E
:1059D000842F402D092E952F502DFF275523B9F0E8
:1059E000591B49F0573E98F0469537952795A7954E
:1059F000F0405395C9F776F0BA0F621F731F841FEA
:105A000030F4879577956795B795F040939517FA99
:105A10000F2E0895BF1BBB27BA0B620B730B840BB1
:105A2000F6CFDEF6DBC0AED001D091C0552359F0E1
:105A3000992369F09F575F57951B33F442F49038D0
:105A400011F4915805C09BC091589F3F09F4C6C0FE
:105A5000BB27112462177307840730F4660F771F82
:105A6000881FBB1F915098F311D00F920FD00F9247
:105A70000DD0A0E82617370748071B0609F0A048F5
:105A8000BA2F602D7F918F9100240895A0E8002403
:105A9000621773078407B10528F0621B730B840B30
:105AA000B1090A2A660F771F881FBB1FA69581F7C9
:105AB000089597FB73D09F3738F0FEE9F91B982FB4
:105AC000872F762F6B2F05C086C096958795779583
:105AD0006795F150D0F73EF490958095709561955B
:105AE0007F4F8F4F9F4F0895E89403C097FB0EF4AC
:105AF000F3DFB62F672F782F892F9EE9002427C068
:105B00000ED05EF004C00BD026F001C008D019F012
:105B100020F48FEF089580E0089581E0089597FBC9
:105B2000092E052600F8689430D0E89407FC07C0D9
:105B3000621773078407950721F008F4009407940F
:105B4000989408959A95BB0F661F771F881F11249C
:105B50009923A1F08823B2F79F3F59F0BB0F48F477
:105B600021F4002011F460FF04C06F5F7F4F8F4F5E
:105B70009F4F881F9795879597F908952CC09FEFA1
:105B800080EC0895052E092607FA440F551F5F3F44
:105B900079F0AA27A51708F051E04795880F991FBB
:105BA0009F3F31F0BB27B91708F091E08795089522
:105BB0009F919F911124E3CF97FB880F991F9F3FDF
:105BC00031F0BB27B91708F091E0879508959F91B0
:105BD0009F911124D4CF6627772788279927089586
:105BE000D1DF01D0B4CF992339F0552329F09F5745
:105BF0005F57950F13F49AF1F1CF91589F3FE1F35E
:105C0000629FA12D0F92BB27639FA00DB11DEE27B0
:105C1000729FA00DB11DEE1FAF93AA27649FB00D18
:105C2000E11D739FB00DE11DAA1F6627829FB00D75
:105C3000E11DA61F5527749FE00DA11D551F839FD1
:105C4000E00DA11D561F849FA00D511D852F7A2F99
:105C50006E2F1F900F9088231AF4939539F48FCFED
:105C6000000C111CBB1F661F771F881F0128089599
:105C7000629FD001739FF001829FE00DF11D649F30
:105C8000E00DF11D929FF00D839FF00D749FF00DBC
:105C9000659FF00D9927729FB00DE11DF91F639F5D
:105CA000B00DE11DF91FBD01CF0111240895AA1BFC
:105CB000BB1B51E107C0AA1FBB1FA617B70710F0F7
:105CC000A61BB70B881F991F5A95A9F78095909529
:105CD000BC01CD01089597FB092E07260AD077FD58
:105CE00004D0E5DF06D000201AF4709561957F4F4F
:105CF0000895F6F7909581959F4F0895A1E21A2E89
:105D0000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F5F
:105D1000A217B307E407F50720F0A21BB30BE40BAF
:105D2000F50B661F771F881F991F1A9469F76095F6
:105D30007095809590959B01AC01BD01CF010895B0
:105D400097FB092E05260ED057FD04D0D7DF0AD0C9
:105D5000001C38F450954095309521953F4F4F4F9A
:105D60005F4F0895F6F790958095709561957F4FF8
:105D70008F4F9F4F08952F923F924F925F926F9255
:105D80007F928F929F92AF92BF92CF92DF92EF92CB
:105D9000FF920F931F93CF93DF93CDB7DEB7CA1B4C
:105DA000DB0B0FB6F894DEBF0FBECDBF09942A8877
:105DB000398848885F846E847D848C849B84AA841F
:105DC000B984C884DF80EE80FD800C811B81AA81AC
:105DD000B981CE0FD11D0FB6F894DEBF0FBECDBF77
:105DE000ED010895EE0FFF1F0590F491E02D099449
:105DF000F999FECFB2BDA1BDF89A119600B40895ED
:105E0000F7DF01921A94E1F70895F999FECFB2BD38
:105E1000A1BD00BC11960FB6F894FA9AF99A0FBE7C
:0E5E200008950190F2DF1A94E1F70895FFCF84
:105E2E00016420030A016400007D0000FF030102EB
:105E3E00030405060708090A48616C6C6F20576554
:105E4E006C74000000000000000000000000000064
:105E5E000000000000000000000000000000000034
:105E6E000000000000000000000000000000000024
:105E7E000000000000000000000000000000000014
:105E8E0000000000000000000B014B616D657261A7
:105E9E0000004E6F726D616C00000000803F17B7FE
:0C5EAE00D13830FB103A403296020A64F2
:00000001FF
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.lss
0,0 → 1,9317
 
Flight-Ctrl_MEGA644_V0_60_MM3.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000008c 00800100 00005e2e 00005ee2 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00005e2e 00000000 00000000 000000b4 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000003a8 0080018c 0080018c 00005f6e 2**0
ALLOC
3 .eeprom 00000200 00810000 00810000 00005f6e 2**0
CONTENTS, ALLOC, LOAD, DATA
4 .stab 00000378 00000000 00000000 00006170 2**2
CONTENTS, READONLY, DEBUGGING
5 .stabstr 00000071 00000000 00000000 000064e8 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 0c 94 dd 03 jmp 0x7ba ; 0x7ba <__ctors_end>
4: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
8: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
10: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
14: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
18: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
1c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
20: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
24: 0c 94 fe 0b jmp 0x17fc ; 0x17fc <__vector_9>
28: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
2c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
30: 0c 94 f6 18 jmp 0x31ec ; 0x31ec <__vector_12>
34: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
38: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
3c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
40: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
44: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
48: 0c 94 a5 0c jmp 0x194a ; 0x194a <__vector_18>
4c: 0c 94 86 14 jmp 0x290c ; 0x290c <__vector_19>
50: 0c 94 20 06 jmp 0xc40 ; 0xc40 <__vector_20>
54: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
58: 0c 94 ea 05 jmp 0xbd4 ; 0xbd4 <__vector_22>
5c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
60: 0c 94 74 0d jmp 0x1ae8 ; 0x1ae8 <__vector_24>
64: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
68: 0c 94 4f 18 jmp 0x309e ; 0x309e <__vector_26>
6c: 0c 94 fa 03 jmp 0x7f4 ; 0x7f4 <__bad_interrupt>
70: 97 08 sbc r9, r7
72: 11 09 sbc r17, r1
74: 11 09 sbc r17, r1
76: 11 09 sbc r17, r1
78: c9 08 sbc r12, r9
7a: aa 08 sbc r10, r10
7c: 11 09 sbc r17, r1
7e: 11 09 sbc r17, r1
80: 11 09 sbc r17, r1
82: f5 08 sbc r15, r5
84: f5 08 sbc r15, r5
86: f5 08 sbc r15, r5
88: f5 08 sbc r15, r5
8a: f5 08 sbc r15, r5
8c: cd 08 sbc r12, r13
8e: 11 09 sbc r17, r1
90: 11 09 sbc r17, r1
92: bc 08 sbc r11, r12
94: 11 09 sbc r17, r1
96: c5 08 sbc r12, r5
98: 9d 0d add r25, r13
9a: ef 0d add r30, r15
9c: 48 0e add r4, r24
9e: a3 0e add r10, r19
a0: c0 0e add r12, r16
a2: e3 0e add r14, r19
a4: 09 0f add r16, r25
a6: d7 0f add r29, r23
a8: f9 10 cpse r15, r9
aa: 2d 11 cpse r18, r13
ac: 8e 11 cpse r24, r14
ae: e4 11 cpse r30, r4
b0: 32 12 cpse r3, r18
b2: ab 12 cpse r10, r27
b4: 05 13 cpse r16, r21
b6: 66 13 cpse r22, r22
b8: 8a 13 cpse r24, r26
ba: c0 13 cpse r28, r16
bc: fc 13 cpse r31, r28
be: 3a 14 cp r3, r10
c0: 68 18 sub r6, r8
c2: 6d 18 sub r6, r13
c4: 89 18 sub r8, r9
c6: 97 18 sub r9, r7
c8: 9c 18 sub r9, r12
ca: a7 18 sub r10, r7
cc: af 18 sub r10, r15
ce: c3 18 sub r12, r3
 
000000d0 <__c.2054>:
d0: 0a 0a 0d 00 ....
 
000000d4 <__c.2052>:
d4: 4e 65 75 74 72 61 6c 00 Neutral.
 
000000dc <__c.2050>:
dc: 48 65 61 64 69 6e 67 48 6f 6c 64 00 HeadingHold.
 
000000e8 <__c.2048>:
e8: 0a 0d 53 74 65 75 65 72 75 6e 67 3a 20 00 ..Steuerung: .
 
000000f6 <__c.2046>:
f6: 4f 4b 0a 0d 00 OK...
 
000000fb <__c.2041>:
fb: 0a 0d 41 62 67 6c 65 69 63 68 20 4c 75 66 74 64 ..Abgleich Luftd
10b: 72 75 63 6b 73 65 6e 73 6f 72 2e 2e 00 rucksensor...
 
00000118 <__c.2039>:
118: 0a 0d 4b 61 6c 69 62 72 69 65 72 65 20 4e 65 75 ..Kalibriere Neu
128: 74 72 61 6c 6c 61 67 65 00 trallage.
 
00000131 <__c.2037>:
131: 0a 0d 4b 61 6c 69 62 72 69 65 72 65 20 4b 6f 6d ..Kalibriere Kom
141: 70 61 73 73 00 pass.
 
00000146 <__c.2032>:
146: 0a 0d 42 65 6e 75 74 7a 65 20 50 61 72 61 6d 65 ..Benutze Parame
156: 74 65 72 73 61 74 7a 20 25 64 00 tersatz %d.
 
00000161 <__c.2026>:
161: 0a 0d 49 6e 69 74 2e 20 45 45 50 52 4f 4d 3a 20 ..Init. EEPROM:
171: 47 65 6e 65 72 69 65 72 65 20 44 65 66 61 75 6c Generiere Defaul
181: 74 2d 50 61 72 61 6d 65 74 65 72 2e 2e 2e 00 t-Parameter....
 
00000190 <__c.2024>:
190: 0a 0d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..==============
1a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
...
 
000001b1 <__c.2022>:
1b1: 0a 0d 46 6c 69 67 68 74 43 6f 6e 74 72 6f 6c 20 ..FlightControl
1c1: 56 25 64 2e 25 64 20 00 V%d.%d .
 
000001c9 <__c.2021>:
1c9: 2e 00 ..
 
000001cb <__c.2112>:
1cb: 5a 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 Z_Offset: %3i.
 
000001da <__c.2110>:
1da: 59 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 Y_Offset: %3i.
 
000001e9 <__c.2108>:
1e9: 58 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 X_Offset: %3i.
 
000001f8 <__c.2106>:
1f8: 4d 4d 33 20 6b 61 6c 69 62 2e 00 MM3 kalib..
 
00000203 <__c.2103>:
203: 52 61 6e 67 65 3a 25 33 69 2d 25 33 69 00 Range:%3i-%3i.
 
00000211 <__c.2101>:
211: 53 74 65 6c 6c 75 6e 67 3a 20 25 33 69 00 Stellung: %3i.
 
0000021f <__c.2099>:
21f: 53 65 74 70 6f 69 6e 74 20 20 25 33 69 00 Setpoint %3i.
 
0000022d <__c.2097>:
22d: 53 65 72 76 6f 20 20 00 Servo .
 
00000235 <__c.2094>:
235: 50 6f 74 69 34 3a 20 20 25 33 69 00 Poti4: %3i.
 
00000241 <__c.2092>:
241: 50 6f 74 69 33 3a 20 20 25 33 69 00 Poti3: %3i.
 
0000024d <__c.2090>:
24d: 50 6f 74 69 32 3a 20 20 25 33 69 00 Poti2: %3i.
 
00000259 <__c.2088>:
259: 50 6f 74 69 31 3a 20 20 25 33 69 00 Poti1: %3i.
 
00000265 <__c.2085>:
265: 53 74 61 72 74 3a 20 20 20 20 20 25 35 69 00 Start: %5i.
 
00000274 <__c.2083>:
274: 4d 65 73 73 77 65 72 74 3a 20 20 25 35 69 00 Messwert: %5i.
 
00000283 <__c.2081>:
283: 52 69 63 68 74 75 6e 67 3a 20 20 25 35 69 00 Richtung: %5i.
 
00000292 <__c.2079>:
292: 4b 6f 6d 70 61 73 73 20 20 20 20 20 20 20 00 Kompass .
 
000002a1 <__c.2076>:
2a1: 45 6d 70 66 2e 50 65 67 65 6c 3a 25 35 69 00 Empf.Pegel:%5i.
 
000002b0 <__c.2074>:
2b0: 53 70 61 6e 6e 75 6e 67 3a 20 20 25 35 69 00 Spannung: %5i.
 
000002bf <__c.2071>:
2bf: 48 6f 63 68 20 25 34 69 20 28 25 33 69 29 00 Hoch %4i (%3i).
 
000002ce <__c.2069>:
2ce: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i).
 
000002dd <__c.2067>:
2dd: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i).
 
000002ec <__c.2065>:
2ec: 41 43 43 20 2d 20 53 65 6e 73 6f 72 00 ACC - Sensor.
 
000002f9 <__c.2062>:
2f9: 47 69 65 72 20 25 34 69 20 28 25 33 69 29 00 Gier %4i (%3i).
 
00000308 <__c.2060>:
308: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i).
 
00000317 <__c.2058>:
317: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i).
 
00000326 <__c.2056>:
326: 47 79 72 6f 20 2d 20 53 65 6e 73 6f 72 00 Gyro - Sensor.
 
00000334 <__c.2053>:
334: 50 33 3a 25 34 69 20 20 4b 61 6e e4 6c 65 20 00 P3:%4i Kan.le .
 
00000344 <__c.2051>:
344: 50 31 3a 25 34 69 20 20 50 32 3a 25 34 69 20 00 P1:%4i P2:%4i .
 
00000354 <__c.2049>:
354: 47 73 3a 25 34 69 20 20 47 69 3a 25 34 69 20 00 Gs:%4i Gi:%4i .
 
00000364 <__c.2047>:
364: 4e 69 3a 25 34 69 20 20 52 6f 3a 25 34 69 20 00 Ni:%4i Ro:%4i .
 
00000374 <__c.2044>:
374: 4b 37 3a 25 34 69 20 20 4b 61 6e e4 6c 65 20 00 K7:%4i Kan.le .
 
00000384 <__c.2042>:
384: 4b 35 3a 25 34 69 20 20 4b 36 3a 25 34 69 20 00 K5:%4i K6:%4i .
 
00000394 <__c.2040>:
394: 4b 33 3a 25 34 69 20 20 4b 34 3a 25 34 69 20 00 K3:%4i K4:%4i .
 
000003a4 <__c.2038>:
3a4: 4b 31 3a 25 34 69 20 20 4b 32 3a 25 34 69 20 00 K1:%4i K2:%4i .
 
000003b4 <__c.2035>:
3b4: 4b 6f 6d 70 61 73 73 3a 20 20 20 25 35 69 00 Kompass: %5i.
 
000003c3 <__c.2033>:
3c3: 52 6f 6c 6c 3a 20 20 20 20 20 20 25 35 69 00 Roll: %5i.
 
000003d2 <__c.2031>:
3d2: 4e 69 63 6b 3a 20 20 20 20 20 20 25 35 69 00 Nick: %5i.
 
000003e1 <__c.2029>:
3e1: 61 6b 74 2e 20 4c 61 67 65 00 akt. Lage.
 
000003eb <__c.2026>:
3eb: 48 f6 68 65 6e 72 65 67 65 6c 75 6e 67 00 H.henregelung.
 
000003f9 <__c.2024>:
3f9: 4b 65 69 6e 65 20 00 Keine .
 
00000400 <__c.2022>:
400: 4f 66 66 20 20 20 20 20 20 3a 20 25 35 69 00 Off : %5i.
 
0000040f <__c.2020>:
40f: 4c 75 66 74 64 72 75 63 6b 3a 20 25 35 69 00 Luftdruck: %5i.
 
0000041e <__c.2018>:
41e: 53 6f 6c 6c 48 6f 65 68 65 3a 20 25 35 69 00 SollHoehe: %5i.
 
0000042d <__c.2016>:
42d: 48 6f 65 68 65 3a 20 20 20 20 20 25 35 69 00 Hoehe: %5i.
 
0000043c <__c.2012>:
43c: 28 63 29 20 48 6f 6c 67 65 72 20 42 75 73 73 00 (c) Holger Buss.
 
0000044c <__c.2010>:
44c: 53 65 74 74 69 6e 67 3a 20 25 64 20 00 Setting: %d .
 
00000459 <__c.2008>:
459: 56 25 64 2e 25 64 00 V%d.%d.
 
00000460 <__c.2006>:
460: 2b 2b 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 2b ++ MikroKopter +
470: 2b 00 +.
 
00000472 <__c.2003>:
472: 5b 25 69 5d 00 [%i].
 
00000477 <pgm_atan>:
477: 00 01 02 03 05 06 07 08 09 0a 0b 0c 0d 0f 10 11 ................
487: 12 13 14 15 16 17 18 19 1a 1b 1b 1c 1d 1e 1f 20 ...............
497: 21 21 22 23 24 25 25 26 27 27 28 29 29 2a 2b 2b !!"#$%%&''())*++
4a7: 2c 2c 2d 2e 2e 2f 2f 30 30 31 31 32 32 33 33 34 ,,-..//001122334
4b7: 34 34 35 35 36 36 36 37 37 38 38 38 39 39 39 3a 445566677888999:
4c7: 3a 3a 3b 3b 3b 3c 3c 3c 3c 3d 3d 3d 3d 3e 3e 3e ::;;;<<<<====>>>
4d7: 3e 3f 3f 3f 3f 40 40 40 40 41 41 41 41 41 42 42 >????@@@@AAAAABB
4e7: 42 42 42 43 43 43 43 43 43 44 44 44 44 44 44 45 BBBCCCCCCDDDDDDE
4f7: 45 45 45 45 45 45 46 46 46 46 46 46 46 46 47 47 EEEEEEFFFFFFFFGG
507: 47 47 47 47 47 47 48 48 48 48 48 48 48 48 48 49 GGGGGGHHHHHHHHHI
517: 49 49 49 49 49 49 49 49 49 4a 4a 4a 4a 4a 4a 4a IIIIIIIIIJJJJJJJ
527: 4a 4a 4a 4a 4a 4b 4b 4b 4b 4b 4b 4b 4b 4b 4b 4b JJJJJKKKKKKKKKKK
537: 4b 4b 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c KKLLLLLLLLLLLLLL
547: 4c 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d LMMMMMMMMMMMMMMM
557: 4d 4d 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e MMNNNNNNNNNNNNNN
567: 4e 4e 4e 4e 4e 4e 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f NNNNNNOOOOOOOOOO
577: 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f OOOOOOOOOOOOOO
 
00000585 <pgm_sinus_f>:
585: 00 00 00 00 96 43 8b 3c 29 5c 0f 3d f4 fd 54 3d .....C.<)\.=..T=
595: 29 5c 8f 3d 0e 2d b2 3d 3d 0a d7 3d 23 db f9 3d )\.=.-.==..=#..=
5a5: 04 56 0e 3e 77 be 1f 3e 0e 2d 32 3e 81 95 43 3e .V.>w..>.-2>..C>
5b5: f4 fd 54 3e 66 66 66 3e d9 ce 77 3e a6 9b 84 3e ..T>fff>..w>...>
5c5: df 4f 8d 3e 06 81 95 3e 3f 35 9e 3e 79 e9 a6 3e .O.>...>?5.>y..>
5d5: a0 1a af 3e c7 4b b7 3e 00 00 c0 3e 27 31 c8 3e ...>.K.>...>'1.>
5e5: 4e 62 d0 3e 75 93 d8 3e 89 41 e0 3e b0 72 e8 3e Nb.>u..>.A.>.r.>
5f5: c5 20 f0 3e ec 51 f8 3e 00 00 00 3f 0a d7 03 3f . .>.Q.>...?...?
605: 14 ae 07 3f 1f 85 0b 3f a0 1a 0f 3f aa f1 12 3f ...?...?...?...?
615: 2b 87 16 3f ac 1c 1a 3f 2d b2 1d 3f 25 06 21 3f +..?...?-..?%.!?
625: a6 9b 24 3f 9e ef 27 3f 96 43 2b 3f 8d 97 2e 3f ..$?..'?.C+?...?
635: 85 eb 31 3f f4 fd 34 3f 62 10 38 3f d1 22 3b 3f ..1?..4?b.8?.";?
645: 3f 35 3e 3f ae 47 41 3f 93 18 44 3f 79 e9 46 3f ?5>?.GA?..D?y.F?
655: 5e ba 49 3f 44 8b 4c 3f a0 1a 4f 3f fc a9 51 3f ^.I?D.L?..O?..Q?
665: 58 39 54 3f b4 c8 56 3f 87 16 59 3f 5a 64 5b 3f X9T?..V?..Y?Zd[?
675: 2d b2 5d 3f 00 00 60 3f 4a 0c 62 3f 93 18 64 3f -.]?..`?J.b?..d?
685: dd 24 66 3f 9e ef 67 3f e7 fb 69 3f a8 c6 6b 3f .$f?..g?..i?..k?
695: df 4f 6d 3f a0 1a 6f 3f d7 a3 70 3f 0e 2d 72 3f .Om?..o?..p?.-r?
6a5: bc 74 73 3f 6a bc 74 3f 19 04 76 3f c7 4b 77 3f .ts?j.t?..v?.Kw?
6b5: ec 51 78 3f 10 58 79 3f 35 5e 7a 3f 5a 64 7b 3f .Qx?.Xy?5^z?Zd{?
6c5: f6 28 7c 3f 91 ed 7c 3f a4 70 7d 3f 3f 35 7e 3f .(|?..|?.p}??5~?
6d5: 52 b8 7e 3f db f9 7e 3f ee 7c 7f 3f 77 be 7f 3f R.~?..~?.|.?w..?
6e5: 77 be 7f 3f 00 00 80 3f 00 00 80 3f w..?...?...?
 
000006f1 <pgm_asin>:
6f1: 00 00 01 01 01 01 02 02 02 03 03 03 03 04 04 04 ................
701: 05 05 05 05 06 06 06 07 07 07 07 08 08 08 09 09 ................
711: 09 09 0a 0a 0a 0b 0b 0b 0c 0c 0c 0c 0d 0d 0d 0e ................
721: 0e 0e 0e 0f 0f 0f 10 10 10 11 11 11 11 12 12 12 ................
731: 13 13 13 14 14 14 14 15 15 15 16 16 16 17 17 17 ................
741: 18 18 18 19 19 19 19 1a 1a 1a 1b 1b 1b 1c 1c 1c ................
751: 1d 1d 1d 1e 1e 1e 1f 1f 1f 20 20 20 21 21 21 22 ......... !!!"
761: 22 22 23 23 23 24 24 25 25 25 26 26 26 27 27 27 ""###$$%%%&&&'''
771: 28 28 29 29 29 2a 2a 2a 2b 2b 2c 2c 2c 2d 2d 2e (()))***++,,,--.
781: 2e 2e 2f 2f 30 30 31 31 31 32 32 33 33 34 34 35 ..//001112233445
791: 35 36 36 37 37 38 38 39 39 3a 3a 3b 3b 3c 3c 3d 566778899::;;<<=
7a1: 3e 3e 3f 40 40 41 42 42 43 44 44 45 46 47 48 49 >>?@@ABBCDDEFGHI
7b1: 4a 4b 4c 4d 4f 50 52 54 5a JKLMOPRTZ
 
000007ba <__ctors_end>:
7ba: 11 24 eor r1, r1
7bc: 1f be out 0x3f, r1 ; 63
7be: cf ef ldi r28, 0xFF ; 255
7c0: d0 e1 ldi r29, 0x10 ; 16
7c2: de bf out 0x3e, r29 ; 62
7c4: cd bf out 0x3d, r28 ; 61
 
000007c6 <__do_copy_data>:
7c6: 11 e0 ldi r17, 0x01 ; 1
7c8: a0 e0 ldi r26, 0x00 ; 0
7ca: b1 e0 ldi r27, 0x01 ; 1
7cc: ee e2 ldi r30, 0x2E ; 46
7ce: fe e5 ldi r31, 0x5E ; 94
7d0: 02 c0 rjmp .+4 ; 0x7d6 <.do_copy_data_start>
 
000007d2 <.do_copy_data_loop>:
7d2: 05 90 lpm r0, Z+
7d4: 0d 92 st X+, r0
 
000007d6 <.do_copy_data_start>:
7d6: ac 38 cpi r26, 0x8C ; 140
7d8: b1 07 cpc r27, r17
7da: d9 f7 brne .-10 ; 0x7d2 <.do_copy_data_loop>
 
000007dc <__do_clear_bss>:
7dc: 15 e0 ldi r17, 0x05 ; 5
7de: ac e8 ldi r26, 0x8C ; 140
7e0: b1 e0 ldi r27, 0x01 ; 1
7e2: 01 c0 rjmp .+2 ; 0x7e6 <.do_clear_bss_start>
 
000007e4 <.do_clear_bss_loop>:
7e4: 1d 92 st X+, r1
 
000007e6 <.do_clear_bss_start>:
7e6: a4 33 cpi r26, 0x34 ; 52
7e8: b1 07 cpc r27, r17
7ea: e1 f7 brne .-8 ; 0x7e4 <.do_clear_bss_loop>
7ec: 0e 94 31 04 call 0x862 ; 0x862 <main>
7f0: 0c 94 16 2f jmp 0x5e2c ; 0x5e2c <_exit>
 
000007f4 <__bad_interrupt>:
7f4: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
 
000007f8 <GetActiveParamSetNumber>:
7f8: a2 e0 ldi r26, 0x02 ; 2
7fa: b0 e0 ldi r27, 0x00 ; 0
7fc: 0e 94 f8 2e call 0x5df0 ; 0x5df0 <__eeprom_read_byte_1F2021>
800: 80 2d mov r24, r0
802: 99 27 eor r25, r25
804: 08 95 ret
 
00000806 <WriteParameterSet>:
806: fb 01 movw r30, r22
808: 28 2f mov r18, r24
80a: 86 30 cpi r24, 0x06 ; 6
80c: 08 f0 brcs .+2 ; 0x810 <WriteParameterSet+0xa>
80e: 25 e0 ldi r18, 0x05 ; 5
810: 84 2f mov r24, r20
812: 99 27 eor r25, r25
814: 42 9f mul r20, r18
816: d0 01 movw r26, r0
818: 11 24 eor r1, r1
81a: ac 59 subi r26, 0x9C ; 156
81c: bf 4f sbci r27, 0xFF ; 255
 
0000081e <.26_start>:
81e: 01 97 sbiw r24, 0x01 ; 1
820: 24 f0 brlt .+8 ; 0x82a <.26_finished>
822: 01 90 ld r0, Z+
824: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
828: fa cf rjmp .-12 ; 0x81e <.26_start>
 
0000082a <.26_finished>:
82a: a2 e0 ldi r26, 0x02 ; 2
82c: b0 e0 ldi r27, 0x00 ; 0
82e: 02 2e mov r0, r18
830: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
834: 08 95 ret
 
00000836 <ReadParameterSet>:
836: cf 93 push r28
838: df 93 push r29
83a: fb 01 movw r30, r22
83c: c4 2f mov r28, r20
83e: dd 27 eor r29, r29
840: 86 30 cpi r24, 0x06 ; 6
842: 08 f0 brcs .+2 ; 0x846 <ReadParameterSet+0x10>
844: 85 e0 ldi r24, 0x05 ; 5
846: 48 9f mul r20, r24
848: d0 01 movw r26, r0
84a: 11 24 eor r1, r1
84c: ac 59 subi r26, 0x9C ; 156
84e: bf 4f sbci r27, 0xFF ; 255
 
00000850 <.44_start>:
850: 21 97 sbiw r28, 0x01 ; 1
852: 24 f0 brlt .+8 ; 0x85c <.44_finished>
854: 0e 94 f8 2e call 0x5df0 ; 0x5df0 <__eeprom_read_byte_1F2021>
858: 01 92 st Z+, r0
85a: fa cf rjmp .-12 ; 0x850 <.44_start>
 
0000085c <.44_finished>:
85c: df 91 pop r29
85e: cf 91 pop r28
860: 08 95 ret
 
00000862 <main>:
862: 0f 93 push r16
864: 1f 93 push r17
866: cf 93 push r28
868: df 93 push r29
86a: 81 e0 ldi r24, 0x01 ; 1
86c: 87 b9 out 0x07, r24 ; 7
86e: 8f ef ldi r24, 0xFF ; 255
870: 88 b9 out 0x08, r24 ; 8
872: 8b e1 ldi r24, 0x1B ; 27
874: 84 b9 out 0x04, r24 ; 4
876: 28 9a sbi 0x05, 0 ; 5
878: 8e e3 ldi r24, 0x3E ; 62
87a: 8a b9 out 0x0a, r24 ; 10
87c: 57 9a sbi 0x0a, 7 ; 10
87e: 87 ef ldi r24, 0xF7 ; 247
880: 8b b9 out 0x0b, r24 ; 11
882: 84 b7 in r24, 0x34 ; 52
884: 87 7f andi r24, 0xF7 ; 247
886: 84 bf out 0x34, r24 ; 52
888: 80 91 60 00 lds r24, 0x0060
88c: 88 61 ori r24, 0x18 ; 24
88e: 80 93 60 00 sts 0x0060, r24
892: 10 92 60 00 sts 0x0060, r1
896: 88 ee ldi r24, 0xE8 ; 232
898: 93 e0 ldi r25, 0x03 ; 3
89a: 90 93 a7 01 sts 0x01A7, r25
89e: 80 93 a6 01 sts 0x01A6, r24
8a2: 10 92 20 02 sts 0x0220, r1
8a6: 10 92 1f 02 sts 0x021F, r1
8aa: 10 92 b5 04 sts 0x04B5, r1
8ae: 10 92 b4 04 sts 0x04B4, r1
8b2: 10 92 1e 02 sts 0x021E, r1
8b6: 10 92 1d 02 sts 0x021D, r1
8ba: 10 92 1c 02 sts 0x021C, r1
8be: 10 92 1b 02 sts 0x021B, r1
8c2: 28 98 cbi 0x05, 0 ; 5
8c4: 0e 94 36 0d call 0x1a6c ; 0x1a6c <Timer_Init>
8c8: 0e 94 f0 07 call 0xfe0 ; 0xfe0 <UART_Init>
8cc: 0e 94 e1 18 call 0x31c2 ; 0x31c2 <rc_sum_init>
8d0: 0e 94 6e 0d call 0x1adc ; 0x1adc <ADC_Init>
8d4: 0e 94 35 18 call 0x306a ; 0x306a <i2c_init>
8d8: 0e 94 e6 16 call 0x2dcc ; 0x2dcc <MM3_init>
8dc: 78 94 sei
8de: 10 92 ac 03 sts 0x03AC, r1
8e2: 8c e3 ldi r24, 0x3C ; 60
8e4: 80 93 ad 03 sts 0x03AD, r24
8e8: 84 e0 ldi r24, 0x04 ; 4
8ea: 80 93 ae 03 sts 0x03AE, r24
8ee: 8c e3 ldi r24, 0x3C ; 60
8f0: 90 e0 ldi r25, 0x00 ; 0
8f2: 9f 93 push r25
8f4: 8f 93 push r24
8f6: 1f 92 push r1
8f8: 1f 92 push r1
8fa: 81 eb ldi r24, 0xB1 ; 177
8fc: 91 e0 ldi r25, 0x01 ; 1
8fe: 9f 93 push r25
900: 8f 93 push r24
902: 1f 92 push r1
904: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
908: 80 e9 ldi r24, 0x90 ; 144
90a: 91 e0 ldi r25, 0x01 ; 1
90c: 9f 93 push r25
90e: 8f 93 push r24
910: 1f 92 push r1
912: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
916: 29 9a sbi 0x05, 1 ; 5
918: a1 e0 ldi r26, 0x01 ; 1
91a: b0 e0 ldi r27, 0x00 ; 0
91c: 0e 94 f8 2e call 0x5df0 ; 0x5df0 <__eeprom_read_byte_1F2021>
920: 80 2d mov r24, r0
922: 2d b7 in r18, 0x3d ; 61
924: 3e b7 in r19, 0x3e ; 62
926: 26 5f subi r18, 0xF6 ; 246
928: 3f 4f sbci r19, 0xFF ; 255
92a: 2d bf out 0x3d, r18 ; 61
92c: 8b 33 cpi r24, 0x3B ; 59
92e: a9 f1 breq .+106 ; 0x99a <main+0x138>
930: 81 e6 ldi r24, 0x61 ; 97
932: 91 e0 ldi r25, 0x01 ; 1
934: 9f 93 push r25
936: 8f 93 push r24
938: 1f 92 push r1
93a: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
93e: 0e 94 ac 20 call 0x4158 ; 0x4158 <DefaultKonstanten1>
942: 4a e3 ldi r20, 0x3A ; 58
944: 6c ed ldi r22, 0xDC ; 220
946: 74 e0 ldi r23, 0x04 ; 4
948: 80 e0 ldi r24, 0x00 ; 0
94a: 0e 94 03 04 call 0x806 ; 0x806 <WriteParameterSet>
94e: 01 e0 ldi r16, 0x01 ; 1
950: 0f 90 pop r0
952: 0f 90 pop r0
954: 0f 90 pop r0
956: 02 30 cpi r16, 0x02 ; 2
958: 49 f4 brne .+18 ; 0x96c <main+0x10a>
95a: 0e 94 3f 20 call 0x407e ; 0x407e <DefaultKonstanten2>
95e: 4a e3 ldi r20, 0x3A ; 58
960: 6c ed ldi r22, 0xDC ; 220
962: 74 e0 ldi r23, 0x04 ; 4
964: 82 e0 ldi r24, 0x02 ; 2
966: 0e 94 03 04 call 0x806 ; 0x806 <WriteParameterSet>
96a: 03 e0 ldi r16, 0x03 ; 3
96c: 4a e3 ldi r20, 0x3A ; 58
96e: 6c ed ldi r22, 0xDC ; 220
970: 74 e0 ldi r23, 0x04 ; 4
972: 80 2f mov r24, r16
974: 0e 94 03 04 call 0x806 ; 0x806 <WriteParameterSet>
978: 0f 5f subi r16, 0xFF ; 255
97a: 06 30 cpi r16, 0x06 ; 6
97c: 60 f3 brcs .-40 ; 0x956 <main+0xf4>
97e: 81 e0 ldi r24, 0x01 ; 1
980: 22 e0 ldi r18, 0x02 ; 2
982: 30 e0 ldi r19, 0x00 ; 0
984: d9 01 movw r26, r18
986: 08 2e mov r0, r24
988: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
98c: 8b e3 ldi r24, 0x3B ; 59
98e: 21 50 subi r18, 0x01 ; 1
990: 30 40 sbci r19, 0x00 ; 0
992: d9 01 movw r26, r18
994: 08 2e mov r0, r24
996: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
99a: 02 e0 ldi r16, 0x02 ; 2
99c: 10 e0 ldi r17, 0x00 ; 0
99e: d8 01 movw r26, r16
9a0: 0e 94 f8 2e call 0x5df0 ; 0x5df0 <__eeprom_read_byte_1F2021>
9a4: 80 2d mov r24, r0
9a6: 4a e3 ldi r20, 0x3A ; 58
9a8: 6c ed ldi r22, 0xDC ; 220
9aa: 74 e0 ldi r23, 0x04 ; 4
9ac: 0e 94 1b 04 call 0x836 ; 0x836 <ReadParameterSet>
9b0: d8 01 movw r26, r16
9b2: 0e 94 f8 2e call 0x5df0 ; 0x5df0 <__eeprom_read_byte_1F2021>
9b6: 80 2d mov r24, r0
9b8: 99 27 eor r25, r25
9ba: 9f 93 push r25
9bc: 8f 93 push r24
9be: 86 e4 ldi r24, 0x46 ; 70
9c0: 91 e0 ldi r25, 0x01 ; 1
9c2: 9f 93 push r25
9c4: 8f 93 push r24
9c6: 1f 92 push r1
9c8: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
9cc: 84 ef ldi r24, 0xF4 ; 244
9ce: 91 e0 ldi r25, 0x01 ; 1
9d0: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
9d4: ec 01 movw r28, r24
9d6: 0f 90 pop r0
9d8: 0f 90 pop r0
9da: 0f 90 pop r0
9dc: 0f 90 pop r0
9de: 0f 90 pop r0
9e0: ce 01 movw r24, r28
9e2: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
9e6: 88 23 and r24, r24
9e8: d9 f3 breq .-10 ; 0x9e0 <main+0x17e>
9ea: e0 91 de 04 lds r30, 0x04DE
9ee: ff 27 eor r31, r31
9f0: ee 0f add r30, r30
9f2: ff 1f adc r31, r31
9f4: e0 55 subi r30, 0x50 ; 80
9f6: fb 4f sbci r31, 0xFB ; 251
9f8: 80 81 ld r24, Z
9fa: 91 81 ldd r25, Z+1 ; 0x01
9fc: 85 36 cpi r24, 0x65 ; 101
9fe: 91 05 cpc r25, r1
a00: e4 f0 brlt .+56 ; 0xa3a <main+0x1d8>
a02: e0 91 df 04 lds r30, 0x04DF
a06: ff 27 eor r31, r31
a08: ee 0f add r30, r30
a0a: ff 1f adc r31, r31
a0c: e0 55 subi r30, 0x50 ; 80
a0e: fb 4f sbci r31, 0xFB ; 251
a10: 80 81 ld r24, Z
a12: 91 81 ldd r25, Z+1 ; 0x01
a14: 85 36 cpi r24, 0x65 ; 101
a16: 91 05 cpc r25, r1
a18: 84 f0 brlt .+32 ; 0xa3a <main+0x1d8>
a1a: 81 e3 ldi r24, 0x31 ; 49
a1c: 91 e0 ldi r25, 0x01 ; 1
a1e: 9f 93 push r25
a20: 8f 93 push r24
a22: 1f 92 push r1
a24: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
a28: 80 91 e4 04 lds r24, 0x04E4
a2c: 0f 90 pop r0
a2e: 0f 90 pop r0
a30: 0f 90 pop r0
a32: 83 ff sbrs r24, 3
a34: 02 c0 rjmp .+4 ; 0xa3a <main+0x1d8>
a36: 0e 94 5d 16 call 0x2cba ; 0x2cba <calib_MM3>
a3a: e0 91 de 04 lds r30, 0x04DE
a3e: ff 27 eor r31, r31
a40: ee 0f add r30, r30
a42: ff 1f adc r31, r31
a44: e0 55 subi r30, 0x50 ; 80
a46: fb 4f sbci r31, 0xFB ; 251
a48: 80 81 ld r24, Z
a4a: 91 81 ldd r25, Z+1 ; 0x01
a4c: 85 36 cpi r24, 0x65 ; 101
a4e: 91 05 cpc r25, r1
a50: c4 f0 brlt .+48 ; 0xa82 <main+0x220>
a52: e0 91 df 04 lds r30, 0x04DF
a56: ff 27 eor r31, r31
a58: ee 0f add r30, r30
a5a: ff 1f adc r31, r31
a5c: e0 55 subi r30, 0x50 ; 80
a5e: fb 4f sbci r31, 0xFB ; 251
a60: 80 81 ld r24, Z
a62: 91 81 ldd r25, Z+1 ; 0x01
a64: 8c 59 subi r24, 0x9C ; 156
a66: 9f 4f sbci r25, 0xFF ; 255
a68: 64 f4 brge .+24 ; 0xa82 <main+0x220>
a6a: 88 e1 ldi r24, 0x18 ; 24
a6c: 91 e0 ldi r25, 0x01 ; 1
a6e: 9f 93 push r25
a70: 8f 93 push r24
a72: 1f 92 push r1
a74: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
a78: 0e 94 35 22 call 0x446a ; 0x446a <Neutral_calib>
a7c: 0f 90 pop r0
a7e: 0f 90 pop r0
a80: 0f 90 pop r0
a82: 80 91 e4 04 lds r24, 0x04E4
a86: 80 ff sbrs r24, 0
a88: 20 c0 rjmp .+64 ; 0xaca <main+0x268>
a8a: 8b ef ldi r24, 0xFB ; 251
a8c: 90 e0 ldi r25, 0x00 ; 0
a8e: 9f 93 push r25
a90: 8f 93 push r24
a92: 1f 92 push r1
a94: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
a98: 84 ec ldi r24, 0xC4 ; 196
a9a: 99 e0 ldi r25, 0x09 ; 9
a9c: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
aa0: ec 01 movw r28, r24
aa2: 0e 94 71 10 call 0x20e2 ; 0x20e2 <SucheLuftruckOffset>
aa6: 0f 90 pop r0
aa8: 0f 90 pop r0
aaa: 0f 90 pop r0
aac: ce 01 movw r24, r28
aae: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
ab2: 88 23 and r24, r24
ab4: d9 f3 breq .-10 ; 0xaac <main+0x24a>
ab6: 86 ef ldi r24, 0xF6 ; 246
ab8: 90 e0 ldi r25, 0x00 ; 0
aba: 9f 93 push r25
abc: 8f 93 push r24
abe: 1f 92 push r1
ac0: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
ac4: 0f 90 pop r0
ac6: 0f 90 pop r0
ac8: 0f 90 pop r0
aca: 0e 94 63 21 call 0x42c6 ; 0x42c6 <SetNeutral>
ace: 28 98 cbi 0x05, 0 ; 5
ad0: 80 ed ldi r24, 0xD0 ; 208
ad2: 97 e0 ldi r25, 0x07 ; 7
ad4: 90 93 a7 01 sts 0x01A7, r25
ad8: 80 93 a6 01 sts 0x01A6, r24
adc: 88 ee ldi r24, 0xE8 ; 232
ade: 93 e0 ldi r25, 0x03 ; 3
ae0: 90 93 a7 03 sts 0x03A7, r25
ae4: 80 93 a6 03 sts 0x03A6, r24
ae8: 85 e5 ldi r24, 0x55 ; 85
aea: 80 93 a1 03 sts 0x03A1, r24
aee: 88 ee ldi r24, 0xE8 ; 232
af0: 90 e0 ldi r25, 0x00 ; 0
af2: 9f 93 push r25
af4: 8f 93 push r24
af6: 1f 92 push r1
af8: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
afc: 80 91 e4 04 lds r24, 0x04E4
b00: 0f 90 pop r0
b02: 0f 90 pop r0
b04: 0f 90 pop r0
b06: 82 ff sbrs r24, 2
b08: 03 c0 rjmp .+6 ; 0xb10 <main+0x2ae>
b0a: 8c ed ldi r24, 0xDC ; 220
b0c: 90 e0 ldi r25, 0x00 ; 0
b0e: 02 c0 rjmp .+4 ; 0xb14 <main+0x2b2>
b10: 84 ed ldi r24, 0xD4 ; 212
b12: 90 e0 ldi r25, 0x00 ; 0
b14: 9f 93 push r25
b16: 8f 93 push r24
b18: 1f 92 push r1
b1a: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
b1e: 0f 90 pop r0
b20: 0f 90 pop r0
b22: 0f 90 pop r0
b24: 80 ed ldi r24, 0xD0 ; 208
b26: 90 e0 ldi r25, 0x00 ; 0
b28: 9f 93 push r25
b2a: 8f 93 push r24
b2c: 1f 92 push r1
b2e: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
b32: 0e 94 98 10 call 0x2130 ; 0x2130 <LcdClear>
b36: 0f 90 pop r0
b38: 0f 90 pop r0
b3a: 0f 90 pop r0
b3c: 80 91 a5 01 lds r24, 0x01A5
b40: 88 23 and r24, r24
b42: 79 f1 breq .+94 ; 0xba2 <main+0x340>
b44: 10 92 a5 01 sts 0x01A5, r1
b48: 0e 94 9a 22 call 0x4534 ; 0x4534 <MotorRegler>
b4c: 0e 94 1c 21 call 0x4238 ; 0x4238 <SendMotorData>
b50: 28 98 cbi 0x05, 0 ; 5
b52: 80 91 01 01 lds r24, 0x0101
b56: 88 23 and r24, r24
b58: 19 f0 breq .+6 ; 0xb60 <main+0x2fe>
b5a: 81 50 subi r24, 0x01 ; 1
b5c: 80 93 01 01 sts 0x0101, r24
b60: 80 91 1a 02 lds r24, 0x021A
b64: 88 23 and r24, r24
b66: 29 f0 breq .+10 ; 0xb72 <main+0x310>
b68: 80 91 1a 02 lds r24, 0x021A
b6c: 81 50 subi r24, 0x01 ; 1
b6e: 80 93 1a 02 sts 0x021A, r24
b72: 20 91 06 01 lds r18, 0x0106
b76: 30 91 07 01 lds r19, 0x0107
b7a: 80 91 f4 04 lds r24, 0x04F4
b7e: 99 27 eor r25, r25
b80: 28 17 cp r18, r24
b82: 39 07 cpc r19, r25
b84: 34 f4 brge .+12 ; 0xb92 <main+0x330>
b86: 80 ed ldi r24, 0xD0 ; 208
b88: 97 e0 ldi r25, 0x07 ; 7
b8a: 90 93 a7 01 sts 0x01A7, r25
b8e: 80 93 a6 01 sts 0x01A6, r24
b92: 80 91 d1 01 lds r24, 0x01D1
b96: 88 23 and r24, r24
b98: 19 f4 brne .+6 ; 0xba0 <main+0x33e>
b9a: 0e 94 35 18 call 0x306a ; 0x306a <i2c_init>
b9e: 01 c0 rjmp .+2 ; 0xba2 <main+0x340>
ba0: 28 98 cbi 0x05, 0 ; 5
ba2: 0e 94 0b 08 call 0x1016 ; 0x1016 <DatenUebertragung>
ba6: 0e 94 79 08 call 0x10f2 ; 0x10f2 <BearbeiteRxDaten>
baa: 80 e0 ldi r24, 0x00 ; 0
bac: 90 e0 ldi r25, 0x00 ; 0
bae: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
bb2: 88 23 and r24, r24
bb4: 19 f2 breq .-122 ; 0xb3c <main+0x2da>
bb6: 80 91 21 02 lds r24, 0x0221
bba: 88 23 and r24, r24
bbc: 29 f0 breq .+10 ; 0xbc8 <main+0x366>
bbe: 88 b1 in r24, 0x08 ; 8
bc0: 90 e1 ldi r25, 0x10 ; 16
bc2: 89 27 eor r24, r25
bc4: 88 b9 out 0x08, r24 ; 8
bc6: 01 c0 rjmp .+2 ; 0xbca <main+0x368>
bc8: 44 98 cbi 0x08, 4 ; 8
bca: 84 ef ldi r24, 0xF4 ; 244
bcc: 91 e0 ldi r25, 0x01 ; 1
bce: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
bd2: b4 cf rjmp .-152 ; 0xb3c <main+0x2da>
 
00000bd4 <__vector_22>:
bd4: 1f 92 push r1
bd6: 0f 92 push r0
bd8: 0f b6 in r0, 0x3f ; 63
bda: 0f 92 push r0
bdc: 11 24 eor r1, r1
bde: 8f 93 push r24
be0: 9f 93 push r25
be2: ef 93 push r30
be4: ff 93 push r31
be6: 80 91 00 01 lds r24, 0x0100
bea: 88 23 and r24, r24
bec: e1 f4 brne .+56 ; 0xc26 <__vector_22+0x52>
bee: 80 91 a1 01 lds r24, 0x01A1
bf2: 90 91 a2 01 lds r25, 0x01A2
bf6: 01 96 adiw r24, 0x01 ; 1
bf8: 90 93 a2 01 sts 0x01A2, r25
bfc: 80 93 a1 01 sts 0x01A1, r24
c00: fc 01 movw r30, r24
c02: ed 58 subi r30, 0x8D ; 141
c04: fd 4f sbci r31, 0xFD ; 253
c06: e0 81 ld r30, Z
c08: ed 30 cpi r30, 0x0D ; 13
c0a: 19 f0 breq .+6 ; 0xc12 <__vector_22+0x3e>
c0c: 86 39 cpi r24, 0x96 ; 150
c0e: 91 05 cpc r25, r1
c10: 39 f4 brne .+14 ; 0xc20 <__vector_22+0x4c>
c12: 10 92 a2 01 sts 0x01A2, r1
c16: 10 92 a1 01 sts 0x01A1, r1
c1a: 81 e0 ldi r24, 0x01 ; 1
c1c: 80 93 00 01 sts 0x0100, r24
c20: e0 93 c6 00 sts 0x00C6, r30
c24: 04 c0 rjmp .+8 ; 0xc2e <__vector_22+0x5a>
c26: 10 92 a2 01 sts 0x01A2, r1
c2a: 10 92 a1 01 sts 0x01A1, r1
c2e: ff 91 pop r31
c30: ef 91 pop r30
c32: 9f 91 pop r25
c34: 8f 91 pop r24
c36: 0f 90 pop r0
c38: 0f be out 0x3f, r0 ; 63
c3a: 0f 90 pop r0
c3c: 1f 90 pop r1
c3e: 18 95 reti
 
00000c40 <__vector_20>:
c40: 1f 92 push r1
c42: 0f 92 push r0
c44: 0f b6 in r0, 0x3f ; 63
c46: 0f 92 push r0
c48: 11 24 eor r1, r1
c4a: 2f 93 push r18
c4c: 3f 93 push r19
c4e: 4f 93 push r20
c50: 8f 93 push r24
c52: 9f 93 push r25
c54: af 93 push r26
c56: bf 93 push r27
c58: cf 93 push r28
c5a: df 93 push r29
c5c: ef 93 push r30
c5e: ff 93 push r31
c60: 80 91 c6 00 lds r24, 0x00C6
c64: 80 93 90 01 sts 0x0190, r24
c68: 40 91 9c 01 lds r20, 0x019C
c6c: 46 39 cpi r20, 0x96 ; 150
c6e: 10 f0 brcs .+4 ; 0xc74 <__vector_20+0x34>
c70: 10 92 9b 01 sts 0x019B, r1
c74: 80 91 90 01 lds r24, 0x0190
c78: 8d 30 cpi r24, 0x0D ; 13
c7a: 09 f0 breq .+2 ; 0xc7e <__vector_20+0x3e>
c7c: 5c c0 rjmp .+184 ; 0xd36 <__vector_20+0xf6>
c7e: 80 91 9b 01 lds r24, 0x019B
c82: 82 30 cpi r24, 0x02 ; 2
c84: 09 f0 breq .+2 ; 0xc88 <__vector_20+0x48>
c86: 57 c0 rjmp .+174 ; 0xd36 <__vector_20+0xf6>
c88: 10 92 9b 01 sts 0x019B, r1
c8c: a4 2f mov r26, r20
c8e: bb 27 eor r27, r27
c90: fd 01 movw r30, r26
c92: ec 54 subi r30, 0x4C ; 76
c94: fc 4f sbci r31, 0xFC ; 252
c96: 30 81 ld r19, Z
c98: ed 01 movw r28, r26
c9a: cb 54 subi r28, 0x4B ; 75
c9c: dc 4f sbci r29, 0xFC ; 252
c9e: 28 81 ld r18, Y
ca0: 80 91 9f 01 lds r24, 0x019F
ca4: 90 91 a0 01 lds r25, 0x01A0
ca8: 83 1b sub r24, r19
caa: 91 09 sbc r25, r1
cac: 82 1b sub r24, r18
cae: 91 09 sbc r25, r1
cb0: 9f 70 andi r25, 0x0F ; 15
cb2: 90 93 a0 01 sts 0x01A0, r25
cb6: 80 93 9f 01 sts 0x019F, r24
cba: 9c 01 movw r18, r24
cbc: 96 e0 ldi r25, 0x06 ; 6
cbe: 36 95 lsr r19
cc0: 27 95 ror r18
cc2: 9a 95 dec r25
cc4: e1 f7 brne .-8 ; 0xcbe <__vector_20+0x7e>
cc6: 23 5c subi r18, 0xC3 ; 195
cc8: 20 93 9e 01 sts 0x019E, r18
ccc: 98 2f mov r25, r24
cce: 9f 73 andi r25, 0x3F ; 63
cd0: 93 5c subi r25, 0xC3 ; 195
cd2: 90 93 9d 01 sts 0x019D, r25
cd6: 80 81 ld r24, Z
cd8: 28 17 cp r18, r24
cda: 29 f4 brne .+10 ; 0xce6 <__vector_20+0xa6>
cdc: 88 81 ld r24, Y
cde: 98 17 cp r25, r24
ce0: 11 f4 brne .+4 ; 0xce6 <__vector_20+0xa6>
ce2: 91 e0 ldi r25, 0x01 ; 1
ce4: 06 c0 rjmp .+12 ; 0xcf2 <__vector_20+0xb2>
ce6: 80 91 93 01 lds r24, 0x0193
cea: 8f 5f subi r24, 0xFF ; 255
cec: 80 93 93 01 sts 0x0193, r24
cf0: 90 e0 ldi r25, 0x00 ; 0
cf2: 80 91 91 01 lds r24, 0x0191
cf6: 88 23 and r24, r24
cf8: 09 f0 breq .+2 ; 0xcfc <__vector_20+0xbc>
cfa: 64 c0 rjmp .+200 ; 0xdc4 <__vector_20+0x184>
cfc: 99 23 and r25, r25
cfe: 09 f4 brne .+2 ; 0xd02 <__vector_20+0xc2>
d00: 61 c0 rjmp .+194 ; 0xdc4 <__vector_20+0x184>
d02: 81 e0 ldi r24, 0x01 ; 1
d04: 80 93 91 01 sts 0x0191, r24
d08: 40 93 94 01 sts 0x0194, r20
d0c: aa 54 subi r26, 0x4A ; 74
d0e: bc 4f sbci r27, 0xFC ; 252
d10: 8d e0 ldi r24, 0x0D ; 13
d12: 8c 93 st X, r24
d14: 80 91 b8 03 lds r24, 0x03B8
d18: 82 35 cpi r24, 0x52 ; 82
d1a: 09 f0 breq .+2 ; 0xd1e <__vector_20+0xde>
d1c: 53 c0 rjmp .+166 ; 0xdc4 <__vector_20+0x184>
d1e: 88 e1 ldi r24, 0x18 ; 24
d20: 90 e0 ldi r25, 0x00 ; 0
d22: 2c e0 ldi r18, 0x0C ; 12
d24: 0f b6 in r0, 0x3f ; 63
d26: f8 94 cli
d28: a8 95 wdr
d2a: 80 93 60 00 sts 0x0060, r24
d2e: 0f be out 0x3f, r0 ; 63
d30: 20 93 60 00 sts 0x0060, r18
d34: 47 c0 rjmp .+142 ; 0xdc4 <__vector_20+0x184>
d36: 80 91 9b 01 lds r24, 0x019B
d3a: 81 30 cpi r24, 0x01 ; 1
d3c: d9 f0 breq .+54 ; 0xd74 <__vector_20+0x134>
d3e: 81 30 cpi r24, 0x01 ; 1
d40: 18 f0 brcs .+6 ; 0xd48 <__vector_20+0x108>
d42: 82 30 cpi r24, 0x02 ; 2
d44: e9 f5 brne .+122 ; 0xdc0 <__vector_20+0x180>
d46: 30 c0 rjmp .+96 ; 0xda8 <__vector_20+0x168>
d48: 80 91 90 01 lds r24, 0x0190
d4c: 83 32 cpi r24, 0x23 ; 35
d4e: 39 f4 brne .+14 ; 0xd5e <__vector_20+0x11e>
d50: 80 91 91 01 lds r24, 0x0191
d54: 88 23 and r24, r24
d56: 19 f4 brne .+6 ; 0xd5e <__vector_20+0x11e>
d58: 81 e0 ldi r24, 0x01 ; 1
d5a: 80 93 9b 01 sts 0x019B, r24
d5e: 80 91 90 01 lds r24, 0x0190
d62: 80 93 b6 03 sts 0x03B6, r24
d66: 81 e0 ldi r24, 0x01 ; 1
d68: 80 93 9c 01 sts 0x019C, r24
d6c: 80 91 90 01 lds r24, 0x0190
d70: 99 27 eor r25, r25
d72: 15 c0 rjmp .+42 ; 0xd9e <__vector_20+0x15e>
d74: 82 e0 ldi r24, 0x02 ; 2
d76: 80 93 9b 01 sts 0x019B, r24
d7a: e4 2f mov r30, r20
d7c: ff 27 eor r31, r31
d7e: 80 91 90 01 lds r24, 0x0190
d82: ea 54 subi r30, 0x4A ; 74
d84: fc 4f sbci r31, 0xFC ; 252
d86: 80 83 st Z, r24
d88: 4f 5f subi r20, 0xFF ; 255
d8a: 40 93 9c 01 sts 0x019C, r20
d8e: 20 91 90 01 lds r18, 0x0190
d92: 80 91 9f 01 lds r24, 0x019F
d96: 90 91 a0 01 lds r25, 0x01A0
d9a: 82 0f add r24, r18
d9c: 91 1d adc r25, r1
d9e: 90 93 a0 01 sts 0x01A0, r25
da2: 80 93 9f 01 sts 0x019F, r24
da6: 0e c0 rjmp .+28 ; 0xdc4 <__vector_20+0x184>
da8: e4 2f mov r30, r20
daa: ff 27 eor r31, r31
dac: 80 91 90 01 lds r24, 0x0190
db0: ea 54 subi r30, 0x4A ; 74
db2: fc 4f sbci r31, 0xFC ; 252
db4: 80 83 st Z, r24
db6: 46 39 cpi r20, 0x96 ; 150
db8: 38 f3 brcs .-50 ; 0xd88 <__vector_20+0x148>
dba: 10 92 9b 01 sts 0x019B, r1
dbe: e7 cf rjmp .-50 ; 0xd8e <__vector_20+0x14e>
dc0: 10 92 9b 01 sts 0x019B, r1
dc4: ff 91 pop r31
dc6: ef 91 pop r30
dc8: df 91 pop r29
dca: cf 91 pop r28
dcc: bf 91 pop r27
dce: af 91 pop r26
dd0: 9f 91 pop r25
dd2: 8f 91 pop r24
dd4: 4f 91 pop r20
dd6: 3f 91 pop r19
dd8: 2f 91 pop r18
dda: 0f 90 pop r0
ddc: 0f be out 0x3f, r0 ; 63
dde: 0f 90 pop r0
de0: 1f 90 pop r1
de2: 18 95 reti
 
00000de4 <AddCRC>:
de4: dc 01 movw r26, r24
de6: 20 e0 ldi r18, 0x00 ; 0
de8: 30 e0 ldi r19, 0x00 ; 0
dea: 40 e0 ldi r20, 0x00 ; 0
dec: 50 e0 ldi r21, 0x00 ; 0
dee: e3 e7 ldi r30, 0x73 ; 115
df0: f2 e0 ldi r31, 0x02 ; 2
df2: 05 c0 rjmp .+10 ; 0xdfe <AddCRC+0x1a>
df4: 81 91 ld r24, Z+
df6: 28 0f add r18, r24
df8: 31 1d adc r19, r1
dfa: 4f 5f subi r20, 0xFF ; 255
dfc: 5f 4f sbci r21, 0xFF ; 255
dfe: 4a 17 cp r20, r26
e00: 5b 07 cpc r21, r27
e02: c1 f7 brne .-16 ; 0xdf4 <AddCRC+0x10>
e04: 3f 70 andi r19, 0x0F ; 15
e06: c9 01 movw r24, r18
e08: 36 e0 ldi r19, 0x06 ; 6
e0a: 96 95 lsr r25
e0c: 87 95 ror r24
e0e: 3a 95 dec r19
e10: e1 f7 brne .-8 ; 0xe0a <AddCRC+0x26>
e12: 83 5c subi r24, 0xC3 ; 195
e14: fd 01 movw r30, r26
e16: ed 58 subi r30, 0x8D ; 141
e18: fd 4f sbci r31, 0xFD ; 253
e1a: 80 83 st Z, r24
e1c: 11 96 adiw r26, 0x01 ; 1
e1e: 2f 73 andi r18, 0x3F ; 63
e20: 23 5c subi r18, 0xC3 ; 195
e22: fd 01 movw r30, r26
e24: ed 58 subi r30, 0x8D ; 141
e26: fd 4f sbci r31, 0xFD ; 253
e28: 20 83 st Z, r18
e2a: ac 58 subi r26, 0x8C ; 140
e2c: bd 4f sbci r27, 0xFD ; 253
e2e: 8d e0 ldi r24, 0x0D ; 13
e30: 8c 93 st X, r24
e32: 10 92 00 01 sts 0x0100, r1
e36: 80 91 73 02 lds r24, 0x0273
e3a: 80 93 c6 00 sts 0x00C6, r24
e3e: 08 95 ret
 
00000e40 <SendOutData>:
e40: ef 92 push r14
e42: ff 92 push r15
e44: 0f 93 push r16
e46: 1f 93 push r17
e48: cf 93 push r28
e4a: df 93 push r29
e4c: 7a 01 movw r14, r20
e4e: 72 2f mov r23, r18
e50: 93 e2 ldi r25, 0x23 ; 35
e52: 90 93 73 02 sts 0x0273, r25
e56: 60 93 74 02 sts 0x0274, r22
e5a: 80 93 75 02 sts 0x0275, r24
e5e: 03 e0 ldi r16, 0x03 ; 3
e60: 10 e0 ldi r17, 0x00 ; 0
e62: 60 e0 ldi r22, 0x00 ; 0
e64: a6 e7 ldi r26, 0x76 ; 118
e66: b2 e0 ldi r27, 0x02 ; 2
e68: 46 c0 rjmp .+140 ; 0xef6 <SendOutData+0xb6>
e6a: f7 01 movw r30, r14
e6c: e6 0f add r30, r22
e6e: f1 1d adc r31, r1
e70: 90 81 ld r25, Z
e72: 6f 5f subi r22, 0xFF ; 255
e74: 71 50 subi r23, 0x01 ; 1
e76: 19 f4 brne .+6 ; 0xe7e <SendOutData+0x3e>
e78: e0 e0 ldi r30, 0x00 ; 0
e7a: 40 e0 ldi r20, 0x00 ; 0
e7c: 0f c0 rjmp .+30 ; 0xe9c <SendOutData+0x5c>
e7e: f7 01 movw r30, r14
e80: e6 0f add r30, r22
e82: f1 1d adc r31, r1
e84: 40 81 ld r20, Z
e86: 6f 5f subi r22, 0xFF ; 255
e88: 71 50 subi r23, 0x01 ; 1
e8a: 11 f4 brne .+4 ; 0xe90 <SendOutData+0x50>
e8c: e0 e0 ldi r30, 0x00 ; 0
e8e: 06 c0 rjmp .+12 ; 0xe9c <SendOutData+0x5c>
e90: f7 01 movw r30, r14
e92: e6 0f add r30, r22
e94: f1 1d adc r31, r1
e96: e0 81 ld r30, Z
e98: 6f 5f subi r22, 0xFF ; 255
e9a: 71 50 subi r23, 0x01 ; 1
e9c: 89 2f mov r24, r25
e9e: 86 95 lsr r24
ea0: 86 95 lsr r24
ea2: 83 5c subi r24, 0xC3 ; 195
ea4: 8c 93 st X, r24
ea6: 55 27 eor r21, r21
ea8: 89 2f mov r24, r25
eaa: 99 27 eor r25, r25
eac: 83 70 andi r24, 0x03 ; 3
eae: 90 70 andi r25, 0x00 ; 0
eb0: 24 e0 ldi r18, 0x04 ; 4
eb2: 88 0f add r24, r24
eb4: 99 1f adc r25, r25
eb6: 2a 95 dec r18
eb8: e1 f7 brne .-8 ; 0xeb2 <SendOutData+0x72>
eba: 9a 01 movw r18, r20
ebc: 94 e0 ldi r25, 0x04 ; 4
ebe: 36 95 lsr r19
ec0: 27 95 ror r18
ec2: 9a 95 dec r25
ec4: e1 f7 brne .-8 ; 0xebe <SendOutData+0x7e>
ec6: 82 2b or r24, r18
ec8: 83 5c subi r24, 0xC3 ; 195
eca: ed 01 movw r28, r26
ecc: 89 83 std Y+1, r24 ; 0x01
ece: 4f 70 andi r20, 0x0F ; 15
ed0: 50 70 andi r21, 0x00 ; 0
ed2: 44 0f add r20, r20
ed4: 55 1f adc r21, r21
ed6: 44 0f add r20, r20
ed8: 55 1f adc r21, r21
eda: 8e 2f mov r24, r30
edc: 82 95 swap r24
ede: 86 95 lsr r24
ee0: 86 95 lsr r24
ee2: 83 70 andi r24, 0x03 ; 3
ee4: 84 2b or r24, r20
ee6: 83 5c subi r24, 0xC3 ; 195
ee8: 8a 83 std Y+2, r24 ; 0x02
eea: ef 73 andi r30, 0x3F ; 63
eec: e3 5c subi r30, 0xC3 ; 195
eee: eb 83 std Y+3, r30 ; 0x03
ef0: 0c 5f subi r16, 0xFC ; 252
ef2: 1f 4f sbci r17, 0xFF ; 255
ef4: 14 96 adiw r26, 0x04 ; 4
ef6: 77 23 and r23, r23
ef8: 09 f0 breq .+2 ; 0xefc <SendOutData+0xbc>
efa: b7 cf rjmp .-146 ; 0xe6a <SendOutData+0x2a>
efc: c8 01 movw r24, r16
efe: 0e 94 f2 06 call 0xde4 ; 0xde4 <AddCRC>
f02: e6 e0 ldi r30, 0x06 ; 6
f04: cd b7 in r28, 0x3d ; 61
f06: de b7 in r29, 0x3e ; 62
f08: 0c 94 e3 2e jmp 0x5dc6 ; 0x5dc6 <__epilogue_restores__+0x18>
 
00000f0c <Decode64>:
f0c: 1f 93 push r17
f0e: cf 93 push r28
f10: df 93 push r29
f12: ec 01 movw r28, r24
f14: 70 e0 ldi r23, 0x00 ; 0
f16: a2 2f mov r26, r18
f18: bb 27 eor r27, r27
f1a: 12 97 sbiw r26, 0x02 ; 2
f1c: 48 c0 rjmp .+144 ; 0xfae <Decode64+0xa2>
f1e: e4 2f mov r30, r20
f20: ff 27 eor r31, r31
f22: ea 54 subi r30, 0x4A ; 74
f24: fc 4f sbci r31, 0xFC ; 252
f26: 30 81 ld r19, Z
f28: 4f 5f subi r20, 0xFF ; 255
f2a: e4 2f mov r30, r20
f2c: ff 27 eor r31, r31
f2e: ea 54 subi r30, 0x4A ; 74
f30: fc 4f sbci r31, 0xFC ; 252
f32: 50 81 ld r21, Z
f34: 4f 5f subi r20, 0xFF ; 255
f36: e4 2f mov r30, r20
f38: ff 27 eor r31, r31
f3a: ea 54 subi r30, 0x4A ; 74
f3c: fc 4f sbci r31, 0xFC ; 252
f3e: 10 81 ld r17, Z
f40: 4f 5f subi r20, 0xFF ; 255
f42: e4 2f mov r30, r20
f44: ff 27 eor r31, r31
f46: ea 54 subi r30, 0x4A ; 74
f48: fc 4f sbci r31, 0xFC ; 252
f4a: 20 81 ld r18, Z
f4c: 4f 5f subi r20, 0xFF ; 255
f4e: 84 2f mov r24, r20
f50: 99 27 eor r25, r25
f52: a8 17 cp r26, r24
f54: b9 07 cpc r27, r25
f56: 74 f1 brlt .+92 ; 0xfb4 <Decode64+0xa8>
f58: 5d 53 subi r21, 0x3D ; 61
f5a: fe 01 movw r30, r28
f5c: e7 0f add r30, r23
f5e: f1 1d adc r31, r1
f60: 3d 53 subi r19, 0x3D ; 61
f62: 33 0f add r19, r19
f64: 33 0f add r19, r19
f66: 85 2f mov r24, r21
f68: 82 95 swap r24
f6a: 8f 70 andi r24, 0x0F ; 15
f6c: 38 2b or r19, r24
f6e: 30 83 st Z, r19
f70: 61 30 cpi r22, 0x01 ; 1
f72: 01 f1 breq .+64 ; 0xfb4 <Decode64+0xa8>
f74: 91 2f mov r25, r17
f76: 9d 53 subi r25, 0x3D ; 61
f78: 7f 5f subi r23, 0xFF ; 255
f7a: fe 01 movw r30, r28
f7c: e7 0f add r30, r23
f7e: f1 1d adc r31, r1
f80: 71 50 subi r23, 0x01 ; 1
f82: 52 95 swap r21
f84: 50 7f andi r21, 0xF0 ; 240
f86: 89 2f mov r24, r25
f88: 86 95 lsr r24
f8a: 86 95 lsr r24
f8c: 58 2b or r21, r24
f8e: 50 83 st Z, r21
f90: 63 50 subi r22, 0x03 ; 3
f92: 6f 3f cpi r22, 0xFF ; 255
f94: 79 f0 breq .+30 ; 0xfb4 <Decode64+0xa8>
f96: 7e 5f subi r23, 0xFE ; 254
f98: fe 01 movw r30, r28
f9a: e7 0f add r30, r23
f9c: f1 1d adc r31, r1
f9e: 92 95 swap r25
fa0: 99 0f add r25, r25
fa2: 99 0f add r25, r25
fa4: 90 7c andi r25, 0xC0 ; 192
fa6: 2d 53 subi r18, 0x3D ; 61
fa8: 92 2b or r25, r18
faa: 90 83 st Z, r25
fac: 7f 5f subi r23, 0xFF ; 255
fae: 66 23 and r22, r22
fb0: 09 f0 breq .+2 ; 0xfb4 <Decode64+0xa8>
fb2: b5 cf rjmp .-150 ; 0xf1e <Decode64+0x12>
fb4: df 91 pop r29
fb6: cf 91 pop r28
fb8: 1f 91 pop r17
fba: 08 95 ret
 
00000fbc <uart_putchar>:
fbc: 1f 93 push r17
fbe: 18 2f mov r17, r24
fc0: 8a 30 cpi r24, 0x0A ; 10
fc2: 19 f4 brne .+6 ; 0xfca <uart_putchar+0xe>
fc4: 8d e0 ldi r24, 0x0D ; 13
fc6: 0e 94 de 07 call 0xfbc ; 0xfbc <uart_putchar>
fca: 80 91 c0 00 lds r24, 0x00C0
fce: 85 ff sbrs r24, 5
fd0: fc cf rjmp .-8 ; 0xfca <uart_putchar+0xe>
fd2: 10 93 c6 00 sts 0x00C6, r17
fd6: 80 e0 ldi r24, 0x00 ; 0
fd8: 90 e0 ldi r25, 0x00 ; 0
fda: 1f 91 pop r17
fdc: 08 95 ret
 
00000fde <WriteProgramData>:
fde: 08 95 ret
 
00000fe0 <UART_Init>:
fe0: e1 ec ldi r30, 0xC1 ; 193
fe2: f0 e0 ldi r31, 0x00 ; 0
fe4: 88 e1 ldi r24, 0x18 ; 24
fe6: 80 83 st Z, r24
fe8: a0 ec ldi r26, 0xC0 ; 192
fea: b0 e0 ldi r27, 0x00 ; 0
fec: 8c 91 ld r24, X
fee: 82 60 ori r24, 0x02 ; 2
ff0: 8c 93 st X, r24
ff2: 80 81 ld r24, Z
ff4: 80 68 ori r24, 0x80 ; 128
ff6: 80 83 st Z, r24
ff8: 80 81 ld r24, Z
ffa: 80 64 ori r24, 0x40 ; 64
ffc: 80 83 st Z, r24
ffe: 8a e2 ldi r24, 0x2A ; 42
1000: 80 93 c4 00 sts 0x00C4, r24
1004: 88 ec ldi r24, 0xC8 ; 200
1006: 90 e0 ldi r25, 0x00 ; 0
1008: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
100c: 90 93 a0 03 sts 0x03A0, r25
1010: 80 93 9f 03 sts 0x039F, r24
1014: 08 95 ret
 
00001016 <DatenUebertragung>:
1016: 80 91 00 01 lds r24, 0x0100
101a: 88 23 and r24, r24
101c: 09 f4 brne .+2 ; 0x1020 <DatenUebertragung+0xa>
101e: 68 c0 rjmp .+208 ; 0x10f0 <DatenUebertragung+0xda>
1020: 80 91 8c 01 lds r24, 0x018C
1024: 88 23 and r24, r24
1026: 71 f0 breq .+28 ; 0x1044 <DatenUebertragung+0x2e>
1028: 80 91 00 01 lds r24, 0x0100
102c: 88 23 and r24, r24
102e: 51 f0 breq .+20 ; 0x1044 <DatenUebertragung+0x2e>
1030: 2b e0 ldi r18, 0x0B ; 11
1032: 41 ea ldi r20, 0xA1 ; 161
1034: 53 e0 ldi r21, 0x03 ; 3
1036: 60 91 72 02 lds r22, 0x0272
103a: 87 e4 ldi r24, 0x47 ; 71
103c: 0e 94 20 07 call 0xe40 ; 0xe40 <SendOutData>
1040: 10 92 8c 01 sts 0x018C, r1
1044: 80 91 9f 03 lds r24, 0x039F
1048: 90 91 a0 03 lds r25, 0x03A0
104c: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
1050: 88 23 and r24, r24
1052: 21 f4 brne .+8 ; 0x105c <DatenUebertragung+0x46>
1054: 80 91 8e 01 lds r24, 0x018E
1058: 88 23 and r24, r24
105a: b1 f0 breq .+44 ; 0x1088 <DatenUebertragung+0x72>
105c: 80 91 00 01 lds r24, 0x0100
1060: 88 23 and r24, r24
1062: 91 f0 breq .+36 ; 0x1088 <DatenUebertragung+0x72>
1064: 22 e3 ldi r18, 0x32 ; 50
1066: 4c e4 ldi r20, 0x4C ; 76
1068: 54 e0 ldi r21, 0x04 ; 4
106a: 60 91 72 02 lds r22, 0x0272
106e: 84 e4 ldi r24, 0x44 ; 68
1070: 0e 94 20 07 call 0xe40 ; 0xe40 <SendOutData>
1074: 10 92 8e 01 sts 0x018E, r1
1078: 8a ef ldi r24, 0xFA ; 250
107a: 90 e0 ldi r25, 0x00 ; 0
107c: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
1080: 90 93 a0 03 sts 0x03A0, r25
1084: 80 93 9f 03 sts 0x039F, r24
1088: 80 91 8d 01 lds r24, 0x018D
108c: 88 23 and r24, r24
108e: f1 f0 breq .+60 ; 0x10cc <DatenUebertragung+0xb6>
1090: 80 91 00 01 lds r24, 0x0100
1094: 88 23 and r24, r24
1096: d1 f0 breq .+52 ; 0x10cc <DatenUebertragung+0xb6>
1098: 0e 94 a1 10 call 0x2142 ; 0x2142 <Menu>
109c: 10 92 8d 01 sts 0x018D, r1
10a0: 80 91 9a 01 lds r24, 0x019A
10a4: 8f 5f subi r24, 0xFF ; 255
10a6: 80 93 9a 01 sts 0x019A, r24
10aa: 84 30 cpi r24, 0x04 ; 4
10ac: 11 f4 brne .+4 ; 0x10b2 <DatenUebertragung+0x9c>
10ae: 10 92 9a 01 sts 0x019A, r1
10b2: 80 91 9a 01 lds r24, 0x019A
10b6: 44 e1 ldi r20, 0x14 ; 20
10b8: 84 9f mul r24, r20
10ba: a0 01 movw r20, r0
10bc: 11 24 eor r1, r1
10be: 48 5e subi r20, 0xE8 ; 232
10c0: 5e 4f sbci r21, 0xFE ; 254
10c2: 24 e1 ldi r18, 0x14 ; 20
10c4: 60 e0 ldi r22, 0x00 ; 0
10c6: 80 5d subi r24, 0xD0 ; 208
10c8: 0e 94 20 07 call 0xe40 ; 0xe40 <SendOutData>
10cc: 80 91 8f 01 lds r24, 0x018F
10d0: 88 23 and r24, r24
10d2: 71 f0 breq .+28 ; 0x10f0 <DatenUebertragung+0xda>
10d4: 80 91 00 01 lds r24, 0x0100
10d8: 88 23 and r24, r24
10da: 51 f0 breq .+20 ; 0x10f0 <DatenUebertragung+0xda>
10dc: 2a e0 ldi r18, 0x0A ; 10
10de: 4c ea ldi r20, 0xAC ; 172
10e0: 53 e0 ldi r21, 0x03 ; 3
10e2: 60 91 72 02 lds r22, 0x0272
10e6: 86 e5 ldi r24, 0x56 ; 86
10e8: 0e 94 20 07 call 0xe40 ; 0xe40 <SendOutData>
10ec: 10 92 8f 01 sts 0x018F, r1
10f0: 08 95 ret
 
000010f2 <BearbeiteRxDaten>:
10f2: a2 e0 ldi r26, 0x02 ; 2
10f4: b0 e0 ldi r27, 0x00 ; 0
10f6: ef e7 ldi r30, 0x7F ; 127
10f8: f8 e0 ldi r31, 0x08 ; 8
10fa: 0c 94 ca 2e jmp 0x5d94 ; 0x5d94 <__prologue_saves__+0x1e>
10fe: 80 91 91 01 lds r24, 0x0191
1102: 88 23 and r24, r24
1104: 09 f4 brne .+2 ; 0x1108 <__stack+0x9>
1106: 8f c0 rjmp .+286 ; 0x1226 <__stack+0x127>
1108: 8f ef ldi r24, 0xFF ; 255
110a: 80 93 01 01 sts 0x0101, r24
110e: 80 91 b8 03 lds r24, 0x03B8
1112: 99 27 eor r25, r25
1114: aa 27 eor r26, r26
1116: bb 27 eor r27, r27
1118: fc 01 movw r30, r24
111a: e3 56 subi r30, 0x63 ; 99
111c: f0 40 sbci r31, 0x00 ; 0
111e: e4 31 cpi r30, 0x14 ; 20
1120: f1 05 cpc r31, r1
1122: 08 f0 brcs .+2 ; 0x1126 <__stack+0x27>
1124: 7e c0 rjmp .+252 ; 0x1222 <__stack+0x123>
1126: e8 5c subi r30, 0xC8 ; 200
1128: ff 4f sbci r31, 0xFF ; 255
112a: 0c 94 f2 2e jmp 0x5de4 ; 0x5de4 <__tablejump2__>
112e: 20 91 94 01 lds r18, 0x0194
1132: 43 e0 ldi r20, 0x03 ; 3
1134: 6b e0 ldi r22, 0x0B ; 11
1136: 81 ea ldi r24, 0xA1 ; 161
1138: 93 e0 ldi r25, 0x03 ; 3
113a: 0e 94 86 07 call 0xf0c ; 0xf0c <Decode64>
113e: 80 91 c8 01 lds r24, 0x01C8
1142: 90 91 a3 03 lds r25, 0x03A3
1146: 89 2b or r24, r25
1148: 80 93 c8 01 sts 0x01C8, r24
114c: 81 e0 ldi r24, 0x01 ; 1
114e: 80 93 8e 01 sts 0x018E, r24
1152: 67 c0 rjmp .+206 ; 0x1222 <__stack+0x123>
1154: 20 91 94 01 lds r18, 0x0194
1158: 43 e0 ldi r20, 0x03 ; 3
115a: 62 e0 ldi r22, 0x02 ; 2
115c: ce 01 movw r24, r28
115e: 01 96 adiw r24, 0x01 ; 1
1160: 0e 94 86 07 call 0xf0c ; 0xf0c <Decode64>
1164: 80 91 c8 01 lds r24, 0x01C8
1168: 99 81 ldd r25, Y+1 ; 0x01
116a: 89 2b or r24, r25
116c: 80 93 c8 01 sts 0x01C8, r24
1170: 81 e0 ldi r24, 0x01 ; 1
1172: 80 93 8d 01 sts 0x018D, r24
1176: 55 c0 rjmp .+170 ; 0x1222 <__stack+0x123>
1178: 20 91 94 01 lds r18, 0x0194
117c: 43 e0 ldi r20, 0x03 ; 3
117e: 64 e0 ldi r22, 0x04 ; 4
1180: 86 e9 ldi r24, 0x96 ; 150
1182: 91 e0 ldi r25, 0x01 ; 1
1184: 0e 94 86 07 call 0xf0c ; 0xf0c <Decode64>
1188: 4c c0 rjmp .+152 ; 0x1222 <__stack+0x123>
118a: 81 e0 ldi r24, 0x01 ; 1
118c: 80 93 8f 01 sts 0x018F, r24
1190: 48 c0 rjmp .+144 ; 0x1222 <__stack+0x123>
1192: 81 e0 ldi r24, 0x01 ; 1
1194: 80 93 8c 01 sts 0x018C, r24
1198: 44 c0 rjmp .+136 ; 0x1222 <__stack+0x123>
119a: 20 91 94 01 lds r18, 0x0194
119e: 43 e0 ldi r20, 0x03 ; 3
11a0: 62 e0 ldi r22, 0x02 ; 2
11a2: ce 01 movw r24, r28
11a4: 01 96 adiw r24, 0x01 ; 1
11a6: 0e 94 86 07 call 0xf0c ; 0xf0c <Decode64>
11aa: 89 81 ldd r24, Y+1 ; 0x01
11ac: 8f 3f cpi r24, 0xFF ; 255
11ae: 89 f0 breq .+34 ; 0x11d2 <__stack+0xd3>
11b0: 86 30 cpi r24, 0x06 ; 6
11b2: 10 f0 brcs .+4 ; 0x11b8 <__stack+0xb9>
11b4: 85 e0 ldi r24, 0x05 ; 5
11b6: 89 83 std Y+1, r24 ; 0x01
11b8: 4a e3 ldi r20, 0x3A ; 58
11ba: 6c ed ldi r22, 0xDC ; 220
11bc: 74 e0 ldi r23, 0x04 ; 4
11be: 89 81 ldd r24, Y+1 ; 0x01
11c0: 0e 94 1b 04 call 0x836 ; 0x836 <ReadParameterSet>
11c4: 89 81 ldd r24, Y+1 ; 0x01
11c6: 2a e3 ldi r18, 0x3A ; 58
11c8: 4c ed ldi r20, 0xDC ; 220
11ca: 54 e0 ldi r21, 0x04 ; 4
11cc: 60 91 72 02 lds r22, 0x0272
11d0: 08 c0 rjmp .+16 ; 0x11e2 <__stack+0xe3>
11d2: 10 91 72 02 lds r17, 0x0272
11d6: 0e 94 fc 03 call 0x7f8 ; 0x7f8 <GetActiveParamSetNumber>
11da: 2a e3 ldi r18, 0x3A ; 58
11dc: 4c ed ldi r20, 0xDC ; 220
11de: 54 e0 ldi r21, 0x04 ; 4
11e0: 61 2f mov r22, r17
11e2: 85 5b subi r24, 0xB5 ; 181
11e4: 0e 94 20 07 call 0xe40 ; 0xe40 <SendOutData>
11e8: 1c c0 rjmp .+56 ; 0x1222 <__stack+0x123>
11ea: 20 91 94 01 lds r18, 0x0194
11ee: 43 e0 ldi r20, 0x03 ; 3
11f0: 6a e3 ldi r22, 0x3A ; 58
11f2: 8c ed ldi r24, 0xDC ; 220
11f4: 94 e0 ldi r25, 0x04 ; 4
11f6: 0e 94 86 07 call 0xf0c ; 0xf0c <Decode64>
11fa: 80 91 b8 03 lds r24, 0x03B8
11fe: 4a e3 ldi r20, 0x3A ; 58
1200: 6c ed ldi r22, 0xDC ; 220
1202: 74 e0 ldi r23, 0x04 ; 4
1204: 8b 56 subi r24, 0x6B ; 107
1206: 0e 94 03 04 call 0x806 ; 0x806 <WriteParameterSet>
120a: 80 91 b8 03 lds r24, 0x03B8
120e: 8b 56 subi r24, 0x6B ; 107
1210: a2 e0 ldi r26, 0x02 ; 2
1212: b0 e0 ldi r27, 0x00 ; 0
1214: 08 2e mov r0, r24
1216: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
121a: 0e 94 fc 03 call 0x7f8 ; 0x7f8 <GetActiveParamSetNumber>
121e: 0e 94 85 22 call 0x450a ; 0x450a <Piep>
1222: 10 92 91 01 sts 0x0191, r1
1226: e3 e0 ldi r30, 0x03 ; 3
1228: ce 5f subi r28, 0xFE ; 254
122a: 0c 94 e6 2e jmp 0x5dcc ; 0x5dcc <__epilogue_restores__+0x1e>
 
0000122e <Putchar>:
122e: 98 2f mov r25, r24
1230: 80 91 7e 04 lds r24, 0x047E
1234: 81 30 cpi r24, 0x01 ; 1
1236: 69 f4 brne .+26 ; 0x1252 <Putchar+0x24>
1238: 80 91 c7 01 lds r24, 0x01C7
123c: e8 2f mov r30, r24
123e: ff 27 eor r31, r31
1240: e8 5e subi r30, 0xE8 ; 232
1242: fe 4f sbci r31, 0xFE ; 254
1244: 90 83 st Z, r25
1246: 8f 5f subi r24, 0xFF ; 255
1248: 80 93 c7 01 sts 0x01C7, r24
124c: 21 e0 ldi r18, 0x01 ; 1
124e: 30 e0 ldi r19, 0x00 ; 0
1250: 05 c0 rjmp .+10 ; 0x125c <Putchar+0x2e>
1252: 89 2f mov r24, r25
1254: 0e 94 de 07 call 0xfbc ; 0xfbc <uart_putchar>
1258: 28 2f mov r18, r24
125a: 33 27 eor r19, r19
125c: c9 01 movw r24, r18
125e: 08 95 ret
 
00001260 <PAD_0>:
1260: 1f 93 push r17
1262: 18 2f mov r17, r24
1264: 04 c0 rjmp .+8 ; 0x126e <PAD_0+0xe>
1266: 80 e3 ldi r24, 0x30 ; 48
1268: 0e 94 17 09 call 0x122e ; 0x122e <Putchar>
126c: 11 50 subi r17, 0x01 ; 1
126e: 11 16 cp r1, r17
1270: d4 f3 brlt .-12 ; 0x1266 <PAD_0+0x6>
1272: 1f 91 pop r17
1274: 08 95 ret
 
00001276 <PAD_SP>:
1276: 1f 93 push r17
1278: 18 2f mov r17, r24
127a: 04 c0 rjmp .+8 ; 0x1284 <PAD_SP+0xe>
127c: 80 e2 ldi r24, 0x20 ; 32
127e: 0e 94 17 09 call 0x122e ; 0x122e <Putchar>
1282: 11 50 subi r17, 0x01 ; 1
1284: 11 16 cp r1, r17
1286: d4 f3 brlt .-12 ; 0x127c <PAD_SP+0x6>
1288: 1f 91 pop r17
128a: 08 95 ret
 
0000128c <PRINTP>:
128c: 0f 93 push r16
128e: 1f 93 push r17
1290: cf 93 push r28
1292: df 93 push r29
1294: 8c 01 movw r16, r24
1296: eb 01 movw r28, r22
1298: 08 c0 rjmp .+16 ; 0x12aa <PRINTP+0x1e>
129a: f8 01 movw r30, r16
129c: 0f 5f subi r16, 0xFF ; 255
129e: 1f 4f sbci r17, 0xFF ; 255
12a0: e4 91 lpm r30, Z
12a2: 8e 2f mov r24, r30
12a4: 0e 94 17 09 call 0x122e ; 0x122e <Putchar>
12a8: 21 97 sbiw r28, 0x01 ; 1
12aa: 20 97 sbiw r28, 0x00 ; 0
12ac: b1 f7 brne .-20 ; 0x129a <PRINTP+0xe>
12ae: df 91 pop r29
12b0: cf 91 pop r28
12b2: 1f 91 pop r17
12b4: 0f 91 pop r16
12b6: 08 95 ret
 
000012b8 <PRINT>:
12b8: 0f 93 push r16
12ba: 1f 93 push r17
12bc: cf 93 push r28
12be: df 93 push r29
12c0: 8c 01 movw r16, r24
12c2: eb 01 movw r28, r22
12c4: 06 c0 rjmp .+12 ; 0x12d2 <PRINT+0x1a>
12c6: f8 01 movw r30, r16
12c8: 81 91 ld r24, Z+
12ca: 8f 01 movw r16, r30
12cc: 0e 94 17 09 call 0x122e ; 0x122e <Putchar>
12d0: 21 97 sbiw r28, 0x01 ; 1
12d2: 20 97 sbiw r28, 0x00 ; 0
12d4: c1 f7 brne .-16 ; 0x12c6 <PRINT+0xe>
12d6: df 91 pop r29
12d8: cf 91 pop r28
12da: 1f 91 pop r17
12dc: 0f 91 pop r16
12de: 08 95 ret
 
000012e0 <_printf_P>:
12e0: a3 e3 ldi r26, 0x33 ; 51
12e2: b0 e0 ldi r27, 0x00 ; 0
12e4: e6 e7 ldi r30, 0x76 ; 118
12e6: f9 e0 ldi r31, 0x09 ; 9
12e8: 0c 94 bb 2e jmp 0x5d76 ; 0x5d76 <__prologue_saves__>
12ec: 29 96 adiw r28, 0x09 ; 9
12ee: 8f ad ldd r24, Y+63 ; 0x3f
12f0: 29 97 sbiw r28, 0x09 ; 9
12f2: 80 93 7e 04 sts 0x047E, r24
12f6: ce 01 movw r24, r28
12f8: 85 5b subi r24, 0xB5 ; 181
12fa: 9f 4f sbci r25, 0xFF ; 255
12fc: 9d 83 std Y+5, r25 ; 0x05
12fe: 8c 83 std Y+4, r24 ; 0x04
1300: 2b 96 adiw r28, 0x0b ; 11
1302: 8e ad ldd r24, Y+62 ; 0x3e
1304: 9f ad ldd r25, Y+63 ; 0x3f
1306: 2b 97 sbiw r28, 0x0b ; 11
1308: 9f a7 std Y+47, r25 ; 0x2f
130a: 8e a7 std Y+46, r24 ; 0x2e
130c: 22 24 eor r2, r2
130e: 33 24 eor r3, r3
1310: 21 01 movw r4, r2
1312: 02 c0 rjmp .+4 ; 0x1318 <_printf_P+0x38>
1314: 13 01 movw r2, r6
1316: 24 01 movw r4, r8
1318: 0e a5 ldd r16, Y+46 ; 0x2e
131a: 1f a5 ldd r17, Y+47 ; 0x2f
131c: 02 c0 rjmp .+4 ; 0x1322 <_printf_P+0x42>
131e: 0f 5f subi r16, 0xFF ; 255
1320: 1f 4f sbci r17, 0xFF ; 255
1322: f8 01 movw r30, r16
1324: f4 90 lpm r15, Z
1326: ff 20 and r15, r15
1328: 19 f0 breq .+6 ; 0x1330 <_printf_P+0x50>
132a: f5 e2 ldi r31, 0x25 ; 37
132c: ff 16 cp r15, r31
132e: b9 f7 brne .-18 ; 0x131e <_printf_P+0x3e>
1330: b8 01 movw r22, r16
1332: 8e a5 ldd r24, Y+46 ; 0x2e
1334: 9f a5 ldd r25, Y+47 ; 0x2f
1336: 68 1b sub r22, r24
1338: 79 0b sbc r23, r25
133a: 11 f0 breq .+4 ; 0x1340 <_printf_P+0x60>
133c: 0e 94 46 09 call 0x128c ; 0x128c <PRINTP>
1340: ff 20 and r15, r15
1342: 09 f4 brne .+2 ; 0x1346 <_printf_P+0x66>
1344: 42 c2 rjmp .+1156 ; 0x17ca <_printf_P+0x4ea>
1346: 0f 5f subi r16, 0xFF ; 255
1348: 1f 4f sbci r17, 0xFF ; 255
134a: 1f a7 std Y+47, r17 ; 0x2f
134c: 0e a7 std Y+46, r16 ; 0x2e
134e: 19 82 std Y+1, r1 ; 0x01
1350: ac 81 ldd r26, Y+4 ; 0x04
1352: bd 81 ldd r27, Y+5 ; 0x05
1354: 1b aa std Y+51, r1 ; 0x33
1356: 1a aa std Y+50, r1 ; 0x32
1358: 9f ef ldi r25, 0xFF ; 255
135a: 99 ab std Y+49, r25 ; 0x31
135c: ee a5 ldd r30, Y+46 ; 0x2e
135e: ff a5 ldd r31, Y+47 ; 0x2f
1360: cf 01 movw r24, r30
1362: 01 96 adiw r24, 0x01 ; 1
1364: 9f a7 std Y+47, r25 ; 0x2f
1366: 8e a7 std Y+46, r24 ; 0x2e
1368: b4 90 lpm r11, Z
136a: 95 e7 ldi r25, 0x75 ; 117
136c: b9 16 cp r11, r25
136e: 21 f0 breq .+8 ; 0x1378 <_printf_P+0x98>
1370: 8b 2d mov r24, r11
1372: 80 62 ori r24, 0x20 ; 32
1374: 88 37 cpi r24, 0x78 ; 120
1376: 89 f4 brne .+34 ; 0x139a <_printf_P+0xba>
1378: eb a9 ldd r30, Y+51 ; 0x33
137a: e0 ff sbrs r30, 0
137c: 07 c0 rjmp .+14 ; 0x138c <_printf_P+0xac>
137e: 2d 90 ld r2, X+
1380: 3d 90 ld r3, X+
1382: 4d 90 ld r4, X+
1384: 5c 90 ld r5, X
1386: 13 97 sbiw r26, 0x03 ; 3
1388: 14 96 adiw r26, 0x04 ; 4
138a: 07 c0 rjmp .+14 ; 0x139a <_printf_P+0xba>
138c: 8d 91 ld r24, X+
138e: 9c 91 ld r25, X
1390: 11 97 sbiw r26, 0x01 ; 1
1392: 1c 01 movw r2, r24
1394: 44 24 eor r4, r4
1396: 55 24 eor r5, r5
1398: 12 96 adiw r26, 0x02 ; 2
139a: f0 e2 ldi r31, 0x20 ; 32
139c: bf 16 cp r11, r31
139e: 21 f4 brne .+8 ; 0x13a8 <_printf_P+0xc8>
13a0: 89 81 ldd r24, Y+1 ; 0x01
13a2: 88 23 and r24, r24
13a4: d9 f6 brne .-74 ; 0x135c <_printf_P+0x7c>
13a6: 85 c0 rjmp .+266 ; 0x14b2 <_printf_P+0x1d2>
13a8: 83 e2 ldi r24, 0x23 ; 35
13aa: b8 16 cp r11, r24
13ac: 09 f4 brne .+2 ; 0x13b0 <_printf_P+0xd0>
13ae: 83 c0 rjmp .+262 ; 0x14b6 <_printf_P+0x1d6>
13b0: 9a e2 ldi r25, 0x2A ; 42
13b2: b9 16 cp r11, r25
13b4: 21 f0 breq .+8 ; 0x13be <_printf_P+0xde>
13b6: ed e2 ldi r30, 0x2D ; 45
13b8: be 16 cp r11, r30
13ba: 69 f4 brne .+26 ; 0x13d6 <_printf_P+0xf6>
13bc: 08 c0 rjmp .+16 ; 0x13ce <_printf_P+0xee>
13be: fd 01 movw r30, r26
13c0: 12 96 adiw r26, 0x02 ; 2
13c2: e0 81 ld r30, Z
13c4: ea ab std Y+50, r30 ; 0x32
13c6: e7 ff sbrs r30, 7
13c8: c9 cf rjmp .-110 ; 0x135c <_printf_P+0x7c>
13ca: e1 95 neg r30
13cc: ea ab std Y+50, r30 ; 0x32
13ce: fb a9 ldd r31, Y+51 ; 0x33
13d0: f0 61 ori r31, 0x10 ; 16
13d2: ff 7d andi r31, 0xDF ; 223
13d4: 72 c0 rjmp .+228 ; 0x14ba <_printf_P+0x1da>
13d6: 8b e2 ldi r24, 0x2B ; 43
13d8: b8 16 cp r11, r24
13da: 09 f4 brne .+2 ; 0x13de <_printf_P+0xfe>
13dc: 6a c0 rjmp .+212 ; 0x14b2 <_printf_P+0x1d2>
13de: 9e e2 ldi r25, 0x2E ; 46
13e0: b9 16 cp r11, r25
13e2: b1 f5 brne .+108 ; 0x1450 <_printf_P+0x170>
13e4: 2e a5 ldd r18, Y+46 ; 0x2e
13e6: 3f a5 ldd r19, Y+47 ; 0x2f
13e8: 2f 5f subi r18, 0xFF ; 255
13ea: 3f 4f sbci r19, 0xFF ; 255
13ec: ee a5 ldd r30, Y+46 ; 0x2e
13ee: ff a5 ldd r31, Y+47 ; 0x2f
13f0: 84 91 lpm r24, Z
13f2: 8a 32 cpi r24, 0x2A ; 42
13f4: 21 f0 breq .+8 ; 0x13fe <_printf_P+0x11e>
13f6: b8 2e mov r11, r24
13f8: 20 e0 ldi r18, 0x00 ; 0
13fa: 30 e0 ldi r19, 0x00 ; 0
13fc: 1b c0 rjmp .+54 ; 0x1434 <_printf_P+0x154>
13fe: fd 01 movw r30, r26
1400: 12 96 adiw r26, 0x02 ; 2
1402: 40 81 ld r20, Z
1404: 51 81 ldd r21, Z+1 ; 0x01
1406: 57 ff sbrs r21, 7
1408: 02 c0 rjmp .+4 ; 0x140e <_printf_P+0x12e>
140a: 4f ef ldi r20, 0xFF ; 255
140c: 5f ef ldi r21, 0xFF ; 255
140e: 49 ab std Y+49, r20 ; 0x31
1410: 3f a7 std Y+47, r19 ; 0x2f
1412: 2e a7 std Y+46, r18 ; 0x2e
1414: a3 cf rjmp .-186 ; 0x135c <_printf_P+0x7c>
1416: c9 01 movw r24, r18
1418: 03 e0 ldi r16, 0x03 ; 3
141a: 88 0f add r24, r24
141c: 99 1f adc r25, r25
141e: 0a 95 dec r16
1420: e1 f7 brne .-8 ; 0x141a <_printf_P+0x13a>
1422: 22 0f add r18, r18
1424: 33 1f adc r19, r19
1426: 28 0f add r18, r24
1428: 39 1f adc r19, r25
142a: 2b 0d add r18, r11
142c: 31 1d adc r19, r1
142e: 20 53 subi r18, 0x30 ; 48
1430: 30 40 sbci r19, 0x00 ; 0
1432: b4 90 lpm r11, Z
1434: 31 96 adiw r30, 0x01 ; 1
1436: 8b 2d mov r24, r11
1438: 80 53 subi r24, 0x30 ; 48
143a: 8a 30 cpi r24, 0x0A ; 10
143c: 60 f3 brcs .-40 ; 0x1416 <_printf_P+0x136>
143e: ff a7 std Y+47, r31 ; 0x2f
1440: ee a7 std Y+46, r30 ; 0x2e
1442: a9 01 movw r20, r18
1444: 37 ff sbrs r19, 7
1446: 02 c0 rjmp .+4 ; 0x144c <_printf_P+0x16c>
1448: 4f ef ldi r20, 0xFF ; 255
144a: 5f ef ldi r21, 0xFF ; 255
144c: 49 ab std Y+49, r20 ; 0x31
144e: 8d cf rjmp .-230 ; 0x136a <_printf_P+0x8a>
1450: f0 e3 ldi r31, 0x30 ; 48
1452: bf 16 cp r11, r31
1454: 31 f4 brne .+12 ; 0x1462 <_printf_P+0x182>
1456: 8b a9 ldd r24, Y+51 ; 0x33
1458: 84 fd sbrc r24, 4
145a: 80 cf rjmp .-256 ; 0x135c <_printf_P+0x7c>
145c: 80 62 ori r24, 0x20 ; 32
145e: 8b ab std Y+51, r24 ; 0x33
1460: 7d cf rjmp .-262 ; 0x135c <_printf_P+0x7c>
1462: 8b 2d mov r24, r11
1464: 81 53 subi r24, 0x31 ; 49
1466: 89 30 cpi r24, 0x09 ; 9
1468: e8 f4 brcc .+58 ; 0x14a4 <_printf_P+0x1c4>
146a: 20 e0 ldi r18, 0x00 ; 0
146c: 30 e0 ldi r19, 0x00 ; 0
146e: c9 01 movw r24, r18
1470: f3 e0 ldi r31, 0x03 ; 3
1472: 88 0f add r24, r24
1474: 99 1f adc r25, r25
1476: fa 95 dec r31
1478: e1 f7 brne .-8 ; 0x1472 <_printf_P+0x192>
147a: 22 0f add r18, r18
147c: 33 1f adc r19, r19
147e: 28 0f add r18, r24
1480: 39 1f adc r19, r25
1482: 2b 0d add r18, r11
1484: 31 1d adc r19, r1
1486: 20 53 subi r18, 0x30 ; 48
1488: 30 40 sbci r19, 0x00 ; 0
148a: ee a5 ldd r30, Y+46 ; 0x2e
148c: ff a5 ldd r31, Y+47 ; 0x2f
148e: cf 01 movw r24, r30
1490: 01 96 adiw r24, 0x01 ; 1
1492: 9f a7 std Y+47, r25 ; 0x2f
1494: 8e a7 std Y+46, r24 ; 0x2e
1496: b4 90 lpm r11, Z
1498: 8b 2d mov r24, r11
149a: 80 53 subi r24, 0x30 ; 48
149c: 8a 30 cpi r24, 0x0A ; 10
149e: 38 f3 brcs .-50 ; 0x146e <_printf_P+0x18e>
14a0: 2a ab std Y+50, r18 ; 0x32
14a2: 63 cf rjmp .-314 ; 0x136a <_printf_P+0x8a>
14a4: 98 e6 ldi r25, 0x68 ; 104
14a6: b9 16 cp r11, r25
14a8: 51 f4 brne .+20 ; 0x14be <_printf_P+0x1de>
14aa: eb a9 ldd r30, Y+51 ; 0x33
14ac: e4 60 ori r30, 0x04 ; 4
14ae: eb ab std Y+51, r30 ; 0x33
14b0: 55 cf rjmp .-342 ; 0x135c <_printf_P+0x7c>
14b2: b9 82 std Y+1, r11 ; 0x01
14b4: 53 cf rjmp .-346 ; 0x135c <_printf_P+0x7c>
14b6: fb a9 ldd r31, Y+51 ; 0x33
14b8: f8 60 ori r31, 0x08 ; 8
14ba: fb ab std Y+51, r31 ; 0x33
14bc: 4f cf rjmp .-354 ; 0x135c <_printf_P+0x7c>
14be: 8c e6 ldi r24, 0x6C ; 108
14c0: b8 16 cp r11, r24
14c2: 21 f4 brne .+8 ; 0x14cc <_printf_P+0x1ec>
14c4: 9b a9 ldd r25, Y+51 ; 0x33
14c6: 91 60 ori r25, 0x01 ; 1
14c8: 9b ab std Y+51, r25 ; 0x33
14ca: 48 cf rjmp .-368 ; 0x135c <_printf_P+0x7c>
14cc: bd 83 std Y+5, r27 ; 0x05
14ce: ac 83 std Y+4, r26 ; 0x04
14d0: e3 e6 ldi r30, 0x63 ; 99
14d2: be 16 cp r11, r30
14d4: 39 f4 brne .+14 ; 0x14e4 <_printf_P+0x204>
14d6: 12 96 adiw r26, 0x02 ; 2
14d8: bd 83 std Y+5, r27 ; 0x05
14da: ac 83 std Y+4, r26 ; 0x04
14dc: 12 97 sbiw r26, 0x02 ; 2
14de: 8c 91 ld r24, X
14e0: 8e 83 std Y+6, r24 ; 0x06
14e2: 18 c1 rjmp .+560 ; 0x1714 <_printf_P+0x434>
14e4: f4 e4 ldi r31, 0x44 ; 68
14e6: bf 16 cp r11, r31
14e8: 39 f0 breq .+14 ; 0x14f8 <_printf_P+0x218>
14ea: 84 e6 ldi r24, 0x64 ; 100
14ec: b8 16 cp r11, r24
14ee: 39 f0 breq .+14 ; 0x14fe <_printf_P+0x21e>
14f0: 99 e6 ldi r25, 0x69 ; 105
14f2: b9 16 cp r11, r25
14f4: 59 f5 brne .+86 ; 0x154c <_printf_P+0x26c>
14f6: 03 c0 rjmp .+6 ; 0x14fe <_printf_P+0x21e>
14f8: eb a9 ldd r30, Y+51 ; 0x33
14fa: e1 60 ori r30, 0x01 ; 1
14fc: eb ab std Y+51, r30 ; 0x33
14fe: fb a9 ldd r31, Y+51 ; 0x33
1500: f0 ff sbrs r31, 0
1502: 08 c0 rjmp .+16 ; 0x1514 <_printf_P+0x234>
1504: 14 96 adiw r26, 0x04 ; 4
1506: bd 83 std Y+5, r27 ; 0x05
1508: ac 83 std Y+4, r26 ; 0x04
150a: 5e 90 ld r5, -X
150c: 4e 90 ld r4, -X
150e: 3e 90 ld r3, -X
1510: 2e 90 ld r2, -X
1512: 0a c0 rjmp .+20 ; 0x1528 <_printf_P+0x248>
1514: 12 96 adiw r26, 0x02 ; 2
1516: bd 83 std Y+5, r27 ; 0x05
1518: ac 83 std Y+4, r26 ; 0x04
151a: 9e 91 ld r25, -X
151c: 8e 91 ld r24, -X
151e: 1c 01 movw r2, r24
1520: 44 24 eor r4, r4
1522: 37 fc sbrc r3, 7
1524: 40 94 com r4
1526: 54 2c mov r5, r4
1528: 57 fc sbrc r5, 7
152a: 03 c0 rjmp .+6 ; 0x1532 <_printf_P+0x252>
152c: 8a e0 ldi r24, 0x0A ; 10
152e: 88 ab std Y+48, r24 ; 0x30
1530: 92 c0 rjmp .+292 ; 0x1656 <_printf_P+0x376>
1532: 50 94 com r5
1534: 40 94 com r4
1536: 30 94 com r3
1538: 20 94 com r2
153a: 21 1c adc r2, r1
153c: 31 1c adc r3, r1
153e: 41 1c adc r4, r1
1540: 51 1c adc r5, r1
1542: 8d e2 ldi r24, 0x2D ; 45
1544: 89 83 std Y+1, r24 ; 0x01
1546: 9a e0 ldi r25, 0x0A ; 10
1548: 98 ab std Y+48, r25 ; 0x30
154a: 85 c0 rjmp .+266 ; 0x1656 <_printf_P+0x376>
154c: ef e4 ldi r30, 0x4F ; 79
154e: be 16 cp r11, r30
1550: 29 f0 breq .+10 ; 0x155c <_printf_P+0x27c>
1552: ff e6 ldi r31, 0x6F ; 111
1554: bf 16 cp r11, r31
1556: 39 f4 brne .+14 ; 0x1566 <_printf_P+0x286>
1558: 88 e0 ldi r24, 0x08 ; 8
155a: 61 c0 rjmp .+194 ; 0x161e <_printf_P+0x33e>
155c: 9b a9 ldd r25, Y+51 ; 0x33
155e: 91 60 ori r25, 0x01 ; 1
1560: 9b ab std Y+51, r25 ; 0x33
1562: e8 e0 ldi r30, 0x08 ; 8
1564: 56 c0 rjmp .+172 ; 0x1612 <_printf_P+0x332>
1566: f0 e7 ldi r31, 0x70 ; 112
1568: bf 16 cp r11, r31
156a: 71 f4 brne .+28 ; 0x1588 <_printf_P+0x2a8>
156c: 12 96 adiw r26, 0x02 ; 2
156e: bd 83 std Y+5, r27 ; 0x05
1570: ac 83 std Y+4, r26 ; 0x04
1572: 9e 91 ld r25, -X
1574: 8e 91 ld r24, -X
1576: 1c 01 movw r2, r24
1578: 44 24 eor r4, r4
157a: 55 24 eor r5, r5
157c: 8b a9 ldd r24, Y+51 ; 0x33
157e: 80 64 ori r24, 0x40 ; 64
1580: 8b ab std Y+51, r24 ; 0x33
1582: 78 e7 ldi r23, 0x78 ; 120
1584: b7 2e mov r11, r23
1586: 5e c0 rjmp .+188 ; 0x1644 <_printf_P+0x364>
1588: e3 e7 ldi r30, 0x73 ; 115
158a: be 16 cp r11, r30
158c: d9 f5 brne .+118 ; 0x1604 <_printf_P+0x324>
158e: 12 96 adiw r26, 0x02 ; 2
1590: bd 83 std Y+5, r27 ; 0x05
1592: ac 83 std Y+4, r26 ; 0x04
1594: de 90 ld r13, -X
1596: ce 90 ld r12, -X
1598: c1 14 cp r12, r1
159a: d1 04 cpc r13, r1
159c: 89 f4 brne .+34 ; 0x15c0 <_printf_P+0x2e0>
159e: 88 e2 ldi r24, 0x28 ; 40
15a0: 8e 83 std Y+6, r24 ; 0x06
15a2: 8e e6 ldi r24, 0x6E ; 110
15a4: 8f 83 std Y+7, r24 ; 0x07
15a6: 85 e7 ldi r24, 0x75 ; 117
15a8: 88 87 std Y+8, r24 ; 0x08
15aa: 8c e6 ldi r24, 0x6C ; 108
15ac: 89 87 std Y+9, r24 ; 0x09
15ae: 8a 87 std Y+10, r24 ; 0x0a
15b0: 89 e2 ldi r24, 0x29 ; 41
15b2: 8b 87 std Y+11, r24 ; 0x0b
15b4: 1c 86 std Y+12, r1 ; 0x0c
15b6: 66 e0 ldi r22, 0x06 ; 6
15b8: c6 2e mov r12, r22
15ba: d1 2c mov r13, r1
15bc: cc 0e add r12, r28
15be: dd 1e adc r13, r29
15c0: f9 a9 ldd r31, Y+49 ; 0x31
15c2: f7 fd sbrc r31, 7
15c4: 13 c0 rjmp .+38 ; 0x15ec <_printf_P+0x30c>
15c6: 4f 2f mov r20, r31
15c8: 55 27 eor r21, r21
15ca: 47 fd sbrc r20, 7
15cc: 50 95 com r21
15ce: 60 e0 ldi r22, 0x00 ; 0
15d0: 70 e0 ldi r23, 0x00 ; 0
15d2: c6 01 movw r24, r12
15d4: 0e 94 c3 2c call 0x5986 ; 0x5986 <memchr>
15d8: 00 97 sbiw r24, 0x00 ; 0
15da: 11 f4 brne .+4 ; 0x15e0 <_printf_P+0x300>
15dc: 19 a9 ldd r17, Y+49 ; 0x31
15de: 0d c0 rjmp .+26 ; 0x15fa <_printf_P+0x31a>
15e0: 8c 19 sub r24, r12
15e2: 19 a9 ldd r17, Y+49 ; 0x31
15e4: 81 17 cp r24, r17
15e6: 4c f4 brge .+18 ; 0x15fa <_printf_P+0x31a>
15e8: 18 2f mov r17, r24
15ea: 07 c0 rjmp .+14 ; 0x15fa <_printf_P+0x31a>
15ec: f6 01 movw r30, r12
15ee: 01 90 ld r0, Z+
15f0: 00 20 and r0, r0
15f2: e9 f7 brne .-6 ; 0x15ee <_printf_P+0x30e>
15f4: 31 97 sbiw r30, 0x01 ; 1
15f6: 1e 2f mov r17, r30
15f8: 1c 19 sub r17, r12
15fa: 19 82 std Y+1, r1 ; 0x01
15fc: 42 01 movw r8, r4
15fe: 31 01 movw r6, r2
1600: 40 e0 ldi r20, 0x00 ; 0
1602: 94 c0 rjmp .+296 ; 0x172c <_printf_P+0x44c>
1604: 85 e5 ldi r24, 0x55 ; 85
1606: b8 16 cp r11, r24
1608: 31 f0 breq .+12 ; 0x1616 <_printf_P+0x336>
160a: 95 e7 ldi r25, 0x75 ; 117
160c: b9 16 cp r11, r25
160e: 49 f4 brne .+18 ; 0x1622 <_printf_P+0x342>
1610: ea e0 ldi r30, 0x0A ; 10
1612: e8 ab std Y+48, r30 ; 0x30
1614: 1f c0 rjmp .+62 ; 0x1654 <_printf_P+0x374>
1616: fb a9 ldd r31, Y+51 ; 0x33
1618: f1 60 ori r31, 0x01 ; 1
161a: fb ab std Y+51, r31 ; 0x33
161c: 8a e0 ldi r24, 0x0A ; 10
161e: 88 ab std Y+48, r24 ; 0x30
1620: 19 c0 rjmp .+50 ; 0x1654 <_printf_P+0x374>
1622: 98 e5 ldi r25, 0x58 ; 88
1624: b9 16 cp r11, r25
1626: 21 f0 breq .+8 ; 0x1630 <_printf_P+0x350>
1628: e8 e7 ldi r30, 0x78 ; 120
162a: be 16 cp r11, r30
162c: 09 f0 breq .+2 ; 0x1630 <_printf_P+0x350>
162e: 6e c0 rjmp .+220 ; 0x170c <_printf_P+0x42c>
1630: fb a9 ldd r31, Y+51 ; 0x33
1632: f3 fd sbrc r31, 3
1634: 02 c0 rjmp .+4 ; 0x163a <_printf_P+0x35a>
1636: 80 e1 ldi r24, 0x10 ; 16
1638: f2 cf rjmp .-28 ; 0x161e <_printf_P+0x33e>
163a: 21 14 cp r2, r1
163c: 31 04 cpc r3, r1
163e: 41 04 cpc r4, r1
1640: 51 04 cpc r5, r1
1642: 19 f4 brne .+6 ; 0x164a <_printf_P+0x36a>
1644: 90 e1 ldi r25, 0x10 ; 16
1646: 98 ab std Y+48, r25 ; 0x30
1648: 05 c0 rjmp .+10 ; 0x1654 <_printf_P+0x374>
164a: eb a9 ldd r30, Y+51 ; 0x33
164c: e0 64 ori r30, 0x40 ; 64
164e: eb ab std Y+51, r30 ; 0x33
1650: f0 e1 ldi r31, 0x10 ; 16
1652: f8 ab std Y+48, r31 ; 0x30
1654: 19 82 std Y+1, r1 ; 0x01
1656: 89 a9 ldd r24, Y+49 ; 0x31
1658: 87 fd sbrc r24, 7
165a: 03 c0 rjmp .+6 ; 0x1662 <_printf_P+0x382>
165c: 9b a9 ldd r25, Y+51 ; 0x33
165e: 9f 7d andi r25, 0xDF ; 223
1660: 9b ab std Y+51, r25 ; 0x33
1662: 21 14 cp r2, r1
1664: 31 04 cpc r3, r1
1666: 41 04 cpc r4, r1
1668: 51 04 cpc r5, r1
166a: 61 f4 brne .+24 ; 0x1684 <_printf_P+0x3a4>
166c: e9 a9 ldd r30, Y+49 ; 0x31
166e: ee 23 and r30, r30
1670: 49 f4 brne .+18 ; 0x1684 <_printf_P+0x3a4>
1672: 66 24 eor r6, r6
1674: 77 24 eor r7, r7
1676: 43 01 movw r8, r6
1678: 5e e2 ldi r21, 0x2E ; 46
167a: c5 2e mov r12, r21
167c: d1 2c mov r13, r1
167e: cc 0e add r12, r28
1680: dd 1e adc r13, r29
1682: 3e c0 rjmp .+124 ; 0x1700 <_printf_P+0x420>
1684: 4e e2 ldi r20, 0x2E ; 46
1686: c4 2e mov r12, r20
1688: d1 2c mov r13, r1
168a: cc 0e add r12, r28
168c: dd 1e adc r13, r29
168e: f8 a9 ldd r31, Y+48 ; 0x30
1690: ef 2e mov r14, r31
1692: ff 24 eor r15, r15
1694: 00 27 eor r16, r16
1696: 11 27 eor r17, r17
1698: c2 01 movw r24, r4
169a: b1 01 movw r22, r2
169c: a8 01 movw r20, r16
169e: 97 01 movw r18, r14
16a0: 0e 94 7e 2e call 0x5cfc ; 0x5cfc <__udivmodsi4>
16a4: 6a 30 cpi r22, 0x0A ; 10
16a6: 20 f4 brcc .+8 ; 0x16b0 <_printf_P+0x3d0>
16a8: 30 e3 ldi r19, 0x30 ; 48
16aa: a3 2e mov r10, r19
16ac: a6 0e add r10, r22
16ae: 08 c0 rjmp .+16 ; 0x16c0 <_printf_P+0x3e0>
16b0: 27 e5 ldi r18, 0x57 ; 87
16b2: a2 2e mov r10, r18
16b4: a6 0e add r10, r22
16b6: 88 e5 ldi r24, 0x58 ; 88
16b8: b8 16 cp r11, r24
16ba: 11 f4 brne .+4 ; 0x16c0 <_printf_P+0x3e0>
16bc: 9f ed ldi r25, 0xDF ; 223
16be: a9 22 and r10, r25
16c0: f6 01 movw r30, r12
16c2: a2 92 st -Z, r10
16c4: 6f 01 movw r12, r30
16c6: c2 01 movw r24, r4
16c8: b1 01 movw r22, r2
16ca: a8 01 movw r20, r16
16cc: 97 01 movw r18, r14
16ce: 0e 94 7e 2e call 0x5cfc ; 0x5cfc <__udivmodsi4>
16d2: 39 01 movw r6, r18
16d4: 4a 01 movw r8, r20
16d6: 2e 14 cp r2, r14
16d8: 3f 04 cpc r3, r15
16da: 40 06 cpc r4, r16
16dc: 51 06 cpc r5, r17
16de: 18 f0 brcs .+6 ; 0x16e6 <_printf_P+0x406>
16e0: 19 01 movw r2, r18
16e2: 2a 01 movw r4, r20
16e4: d9 cf rjmp .-78 ; 0x1698 <_printf_P+0x3b8>
16e6: f8 a9 ldd r31, Y+48 ; 0x30
16e8: f8 30 cpi r31, 0x08 ; 8
16ea: 51 f4 brne .+20 ; 0x1700 <_printf_P+0x420>
16ec: 8b a9 ldd r24, Y+51 ; 0x33
16ee: 83 ff sbrs r24, 3
16f0: 07 c0 rjmp .+14 ; 0x1700 <_printf_P+0x420>
16f2: 90 e3 ldi r25, 0x30 ; 48
16f4: a9 16 cp r10, r25
16f6: 21 f0 breq .+8 ; 0x1700 <_printf_P+0x420>
16f8: 80 e3 ldi r24, 0x30 ; 48
16fa: f6 01 movw r30, r12
16fc: 82 93 st -Z, r24
16fe: 6f 01 movw r12, r30
1700: ce 01 movw r24, r28
1702: 8c 19 sub r24, r12
1704: 18 2f mov r17, r24
1706: 12 5d subi r17, 0xD2 ; 210
1708: 49 a9 ldd r20, Y+49 ; 0x31
170a: 10 c0 rjmp .+32 ; 0x172c <_printf_P+0x44c>
170c: bb 20 and r11, r11
170e: 09 f4 brne .+2 ; 0x1712 <_printf_P+0x432>
1710: 5c c0 rjmp .+184 ; 0x17ca <_printf_P+0x4ea>
1712: be 82 std Y+6, r11 ; 0x06
1714: 19 82 std Y+1, r1 ; 0x01
1716: 42 01 movw r8, r4
1718: 31 01 movw r6, r2
171a: 00 e0 ldi r16, 0x00 ; 0
171c: 96 e0 ldi r25, 0x06 ; 6
171e: c9 2e mov r12, r25
1720: d1 2c mov r13, r1
1722: cc 0e add r12, r28
1724: dd 1e adc r13, r29
1726: 11 e0 ldi r17, 0x01 ; 1
1728: 21 e0 ldi r18, 0x01 ; 1
172a: 05 c0 rjmp .+10 ; 0x1736 <_printf_P+0x456>
172c: 21 2f mov r18, r17
172e: 04 2f mov r16, r20
1730: 01 1b sub r16, r17
1732: 07 fd sbrc r16, 7
1734: 00 e0 ldi r16, 0x00 ; 0
1736: 89 81 ldd r24, Y+1 ; 0x01
1738: 88 23 and r24, r24
173a: 19 f0 breq .+6 ; 0x1742 <_printf_P+0x462>
173c: 81 2f mov r24, r17
173e: 8f 5f subi r24, 0xFF ; 255
1740: 07 c0 rjmp .+14 ; 0x1750 <_printf_P+0x470>
1742: 9b a9 ldd r25, Y+51 ; 0x33
1744: 96 fd sbrc r25, 6
1746: 02 c0 rjmp .+4 ; 0x174c <_printf_P+0x46c>
1748: 81 2f mov r24, r17
174a: 02 c0 rjmp .+4 ; 0x1750 <_printf_P+0x470>
174c: 82 2f mov r24, r18
174e: 8e 5f subi r24, 0xFE ; 254
1750: a8 2e mov r10, r24
1752: a0 0e add r10, r16
1754: eb a9 ldd r30, Y+51 ; 0x33
1756: ee 2e mov r14, r30
1758: ff 24 eor r15, r15
175a: 80 e3 ldi r24, 0x30 ; 48
175c: 48 2e mov r4, r24
175e: 51 2c mov r5, r1
1760: 4e 20 and r4, r14
1762: 5f 20 and r5, r15
1764: 41 14 cp r4, r1
1766: 51 04 cpc r5, r1
1768: 21 f4 brne .+8 ; 0x1772 <_printf_P+0x492>
176a: 8a a9 ldd r24, Y+50 ; 0x32
176c: 8a 19 sub r24, r10
176e: 0e 94 3b 09 call 0x1276 ; 0x1276 <PAD_SP>
1772: 89 81 ldd r24, Y+1 ; 0x01
1774: 88 23 and r24, r24
1776: 29 f0 breq .+10 ; 0x1782 <_printf_P+0x4a2>
1778: 61 e0 ldi r22, 0x01 ; 1
177a: 70 e0 ldi r23, 0x00 ; 0
177c: ce 01 movw r24, r28
177e: 01 96 adiw r24, 0x01 ; 1
1780: 09 c0 rjmp .+18 ; 0x1794 <_printf_P+0x4b4>
1782: e6 fe sbrs r14, 6
1784: 09 c0 rjmp .+18 ; 0x1798 <_printf_P+0x4b8>
1786: 80 e3 ldi r24, 0x30 ; 48
1788: 8a 83 std Y+2, r24 ; 0x02
178a: bb 82 std Y+3, r11 ; 0x03
178c: 62 e0 ldi r22, 0x02 ; 2
178e: 70 e0 ldi r23, 0x00 ; 0
1790: ce 01 movw r24, r28
1792: 02 96 adiw r24, 0x02 ; 2
1794: 0e 94 5c 09 call 0x12b8 ; 0x12b8 <PRINT>
1798: f0 e2 ldi r31, 0x20 ; 32
179a: 4f 16 cp r4, r31
179c: 51 04 cpc r5, r1
179e: 21 f4 brne .+8 ; 0x17a8 <_printf_P+0x4c8>
17a0: 8a a9 ldd r24, Y+50 ; 0x32
17a2: 8a 19 sub r24, r10
17a4: 0e 94 30 09 call 0x1260 ; 0x1260 <PAD_0>
17a8: 80 2f mov r24, r16
17aa: 0e 94 30 09 call 0x1260 ; 0x1260 <PAD_0>
17ae: 61 2f mov r22, r17
17b0: 77 27 eor r23, r23
17b2: 67 fd sbrc r22, 7
17b4: 70 95 com r23
17b6: c6 01 movw r24, r12
17b8: 0e 94 5c 09 call 0x12b8 ; 0x12b8 <PRINT>
17bc: e4 fe sbrs r14, 4
17be: aa cd rjmp .-1196 ; 0x1314 <_printf_P+0x34>
17c0: 8a a9 ldd r24, Y+50 ; 0x32
17c2: 8a 19 sub r24, r10
17c4: 0e 94 3b 09 call 0x1276 ; 0x1276 <PAD_SP>
17c8: a5 cd rjmp .-1206 ; 0x1314 <_printf_P+0x34>
17ca: e2 e1 ldi r30, 0x12 ; 18
17cc: cd 5c subi r28, 0xCD ; 205
17ce: 0c 94 d7 2e jmp 0x5dae ; 0x5dae <__epilogue_restores__>
 
000017d2 <SetDelay>:
17d2: 20 91 a3 01 lds r18, 0x01A3
17d6: 30 91 a4 01 lds r19, 0x01A4
17da: 2f 5f subi r18, 0xFF ; 255
17dc: 3f 4f sbci r19, 0xFF ; 255
17de: 82 0f add r24, r18
17e0: 93 1f adc r25, r19
17e2: 08 95 ret
 
000017e4 <CheckDelay>:
17e4: 20 91 a3 01 lds r18, 0x01A3
17e8: 30 91 a4 01 lds r19, 0x01A4
17ec: 82 1b sub r24, r18
17ee: 93 0b sbc r25, r19
17f0: 89 2f mov r24, r25
17f2: 99 27 eor r25, r25
17f4: 86 95 lsr r24
17f6: 80 74 andi r24, 0x40 ; 64
17f8: 99 27 eor r25, r25
17fa: 08 95 ret
 
000017fc <__vector_9>:
17fc: 1f 92 push r1
17fe: 0f 92 push r0
1800: 0f b6 in r0, 0x3f ; 63
1802: 0f 92 push r0
1804: 11 24 eor r1, r1
1806: ef 92 push r14
1808: ff 92 push r15
180a: 0f 93 push r16
180c: 1f 93 push r17
180e: 2f 93 push r18
1810: 3f 93 push r19
1812: 4f 93 push r20
1814: 5f 93 push r21
1816: 6f 93 push r22
1818: 7f 93 push r23
181a: 8f 93 push r24
181c: 9f 93 push r25
181e: af 93 push r26
1820: bf 93 push r27
1822: cf 93 push r28
1824: df 93 push r29
1826: ef 93 push r30
1828: ff 93 push r31
182a: 80 91 04 01 lds r24, 0x0104
182e: 81 50 subi r24, 0x01 ; 1
1830: 80 93 04 01 sts 0x0104, r24
1834: 8f 3f cpi r24, 0xFF ; 255
1836: 09 f0 breq .+2 ; 0x183a <__vector_9+0x3e>
1838: 6d c0 rjmp .+218 ; 0x1914 <__vector_9+0x118>
183a: 83 e8 ldi r24, 0x83 ; 131
183c: 80 93 b0 00 sts 0x00B0, r24
1840: 80 91 8b 01 lds r24, 0x018B
1844: c8 2f mov r28, r24
1846: dd 27 eor r29, r29
1848: d0 93 a9 01 sts 0x01A9, r29
184c: c0 93 a8 01 sts 0x01A8, r28
1850: 80 91 02 05 lds r24, 0x0502
1854: e0 90 fe 04 lds r14, 0x04FE
1858: 80 ff sbrs r24, 0
185a: 1e c0 rjmp .+60 ; 0x1898 <__vector_9+0x9c>
185c: 60 91 da 01 lds r22, 0x01DA
1860: 70 91 db 01 lds r23, 0x01DB
1864: 80 91 dc 01 lds r24, 0x01DC
1868: 90 91 dd 01 lds r25, 0x01DD
186c: ff 24 eor r15, r15
186e: 00 27 eor r16, r16
1870: 11 27 eor r17, r17
1872: 20 e8 ldi r18, 0x80 ; 128
1874: 30 e0 ldi r19, 0x00 ; 0
1876: 40 e0 ldi r20, 0x00 ; 0
1878: 50 e0 ldi r21, 0x00 ; 0
187a: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
187e: c8 01 movw r24, r16
1880: b7 01 movw r22, r14
1882: 0e 94 38 2e call 0x5c70 ; 0x5c70 <__mulsi3>
1886: 20 e0 ldi r18, 0x00 ; 0
1888: 32 e0 ldi r19, 0x02 ; 2
188a: 40 e0 ldi r20, 0x00 ; 0
188c: 50 e0 ldi r21, 0x00 ; 0
188e: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
1892: c2 0f add r28, r18
1894: d3 1f adc r29, r19
1896: 1d c0 rjmp .+58 ; 0x18d2 <__vector_9+0xd6>
1898: 60 91 da 01 lds r22, 0x01DA
189c: 70 91 db 01 lds r23, 0x01DB
18a0: 80 91 dc 01 lds r24, 0x01DC
18a4: 90 91 dd 01 lds r25, 0x01DD
18a8: ff 24 eor r15, r15
18aa: 00 27 eor r16, r16
18ac: 11 27 eor r17, r17
18ae: 20 e8 ldi r18, 0x80 ; 128
18b0: 30 e0 ldi r19, 0x00 ; 0
18b2: 40 e0 ldi r20, 0x00 ; 0
18b4: 50 e0 ldi r21, 0x00 ; 0
18b6: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
18ba: c8 01 movw r24, r16
18bc: b7 01 movw r22, r14
18be: 0e 94 38 2e call 0x5c70 ; 0x5c70 <__mulsi3>
18c2: 20 e0 ldi r18, 0x00 ; 0
18c4: 32 e0 ldi r19, 0x02 ; 2
18c6: 40 e0 ldi r20, 0x00 ; 0
18c8: 50 e0 ldi r21, 0x00 ; 0
18ca: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
18ce: c2 1b sub r28, r18
18d0: d3 0b sbc r29, r19
18d2: d0 93 a9 01 sts 0x01A9, r29
18d6: c0 93 a8 01 sts 0x01A8, r28
18da: 20 91 a8 01 lds r18, 0x01A8
18de: 30 91 a9 01 lds r19, 0x01A9
18e2: 80 91 ff 04 lds r24, 0x04FF
18e6: 99 27 eor r25, r25
18e8: 28 17 cp r18, r24
18ea: 39 07 cpc r19, r25
18ec: 34 f0 brlt .+12 ; 0x18fa <__vector_9+0xfe>
18ee: 80 91 00 05 lds r24, 0x0500
18f2: 99 27 eor r25, r25
18f4: 82 17 cp r24, r18
18f6: 93 07 cpc r25, r19
18f8: 24 f4 brge .+8 ; 0x1902 <__vector_9+0x106>
18fa: 90 93 a9 01 sts 0x01A9, r25
18fe: 80 93 a8 01 sts 0x01A8, r24
1902: 80 91 a8 01 lds r24, 0x01A8
1906: 80 93 b3 00 sts 0x00B3, r24
190a: 80 91 01 05 lds r24, 0x0501
190e: 80 93 04 01 sts 0x0104, r24
1912: 04 c0 rjmp .+8 ; 0x191c <__vector_9+0x120>
1914: 83 e0 ldi r24, 0x03 ; 3
1916: 80 93 b0 00 sts 0x00B0, r24
191a: 5f 98 cbi 0x0b, 7 ; 11
191c: ff 91 pop r31
191e: ef 91 pop r30
1920: df 91 pop r29
1922: cf 91 pop r28
1924: bf 91 pop r27
1926: af 91 pop r26
1928: 9f 91 pop r25
192a: 8f 91 pop r24
192c: 7f 91 pop r23
192e: 6f 91 pop r22
1930: 5f 91 pop r21
1932: 4f 91 pop r20
1934: 3f 91 pop r19
1936: 2f 91 pop r18
1938: 1f 91 pop r17
193a: 0f 91 pop r16
193c: ff 90 pop r15
193e: ef 90 pop r14
1940: 0f 90 pop r0
1942: 0f be out 0x3f, r0 ; 63
1944: 0f 90 pop r0
1946: 1f 90 pop r1
1948: 18 95 reti
 
0000194a <__vector_18>:
194a: 1f 92 push r1
194c: 0f 92 push r0
194e: 0f b6 in r0, 0x3f ; 63
1950: 0f 92 push r0
1952: 11 24 eor r1, r1
1954: 2f 93 push r18
1956: 3f 93 push r19
1958: 4f 93 push r20
195a: 5f 93 push r21
195c: 6f 93 push r22
195e: 7f 93 push r23
1960: 8f 93 push r24
1962: 9f 93 push r25
1964: af 93 push r26
1966: bf 93 push r27
1968: ef 93 push r30
196a: ff 93 push r31
196c: 80 91 aa 01 lds r24, 0x01AA
1970: 81 50 subi r24, 0x01 ; 1
1972: 80 93 aa 01 sts 0x01AA, r24
1976: 8f 3f cpi r24, 0xFF ; 255
1978: 01 f5 brne .+64 ; 0x19ba <__vector_18+0x70>
197a: 89 e0 ldi r24, 0x09 ; 9
197c: 80 93 aa 01 sts 0x01AA, r24
1980: 80 91 05 01 lds r24, 0x0105
1984: 8f 5f subi r24, 0xFF ; 255
1986: 81 70 andi r24, 0x01 ; 1
1988: 80 93 05 01 sts 0x0105, r24
198c: 88 23 and r24, r24
198e: 19 f4 brne .+6 ; 0x1996 <__vector_18+0x4c>
1990: 81 e0 ldi r24, 0x01 ; 1
1992: 80 93 a5 01 sts 0x01A5, r24
1996: 80 91 a3 01 lds r24, 0x01A3
199a: 90 91 a4 01 lds r25, 0x01A4
199e: 01 96 adiw r24, 0x01 ; 1
19a0: 90 93 a4 01 sts 0x01A4, r25
19a4: 80 93 a3 01 sts 0x01A3, r24
19a8: 80 91 d1 01 lds r24, 0x01D1
19ac: 88 23 and r24, r24
19ae: 29 f0 breq .+10 ; 0x19ba <__vector_18+0x70>
19b0: 80 91 d1 01 lds r24, 0x01D1
19b4: 81 50 subi r24, 0x01 ; 1
19b6: 80 93 d1 01 sts 0x01D1, r24
19ba: 80 91 a6 01 lds r24, 0x01A6
19be: 90 91 a7 01 lds r25, 0x01A7
19c2: 02 97 sbiw r24, 0x02 ; 2
19c4: 48 f0 brcs .+18 ; 0x19d8 <__vector_18+0x8e>
19c6: 80 91 a6 01 lds r24, 0x01A6
19ca: 90 91 a7 01 lds r25, 0x01A7
19ce: 01 97 sbiw r24, 0x01 ; 1
19d0: 90 93 a7 01 sts 0x01A7, r25
19d4: 80 93 a6 01 sts 0x01A6, r24
19d8: 5a 98 cbi 0x0b, 2 ; 11
19da: 80 91 e4 04 lds r24, 0x04E4
19de: 83 ff sbrs r24, 3
19e0: 34 c0 rjmp .+104 ; 0x1a4a <__vector_18+0x100>
19e2: 0e 94 29 16 call 0x2c52 ; 0x2c52 <MM3_timer0>
19e6: 80 91 02 01 lds r24, 0x0102
19ea: 90 91 03 01 lds r25, 0x0103
19ee: 01 97 sbiw r24, 0x01 ; 1
19f0: 90 93 03 01 sts 0x0103, r25
19f4: 80 93 02 01 sts 0x0102, r24
19f8: 80 91 02 01 lds r24, 0x0102
19fc: 90 91 03 01 lds r25, 0x0103
1a00: 8f 5f subi r24, 0xFF ; 255
1a02: 9f 4f sbci r25, 0xFF ; 255
1a04: 11 f5 brne .+68 ; 0x1a4a <__vector_18+0x100>
1a06: 0e 94 36 15 call 0x2a6c ; 0x2a6c <MM3_heading>
1a0a: 90 93 0b 02 sts 0x020B, r25
1a0e: 80 93 0a 02 sts 0x020A, r24
1a12: 80 91 0a 02 lds r24, 0x020A
1a16: 90 91 0b 02 lds r25, 0x020B
1a1a: 20 91 0c 02 lds r18, 0x020C
1a1e: 30 91 0d 02 lds r19, 0x020D
1a22: 82 1b sub r24, r18
1a24: 93 0b sbc r25, r19
1a26: 84 5e subi r24, 0xE4 ; 228
1a28: 9d 4f sbci r25, 0xFD ; 253
1a2a: 68 e6 ldi r22, 0x68 ; 104
1a2c: 71 e0 ldi r23, 0x01 ; 1
1a2e: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
1a32: 84 5b subi r24, 0xB4 ; 180
1a34: 90 40 sbci r25, 0x00 ; 0
1a36: 90 93 0f 02 sts 0x020F, r25
1a3a: 80 93 0e 02 sts 0x020E, r24
1a3e: 80 e2 ldi r24, 0x20 ; 32
1a40: 93 e0 ldi r25, 0x03 ; 3
1a42: 90 93 03 01 sts 0x0103, r25
1a46: 80 93 02 01 sts 0x0102, r24
1a4a: ff 91 pop r31
1a4c: ef 91 pop r30
1a4e: bf 91 pop r27
1a50: af 91 pop r26
1a52: 9f 91 pop r25
1a54: 8f 91 pop r24
1a56: 7f 91 pop r23
1a58: 6f 91 pop r22
1a5a: 5f 91 pop r21
1a5c: 4f 91 pop r20
1a5e: 3f 91 pop r19
1a60: 2f 91 pop r18
1a62: 0f 90 pop r0
1a64: 0f be out 0x3f, r0 ; 63
1a66: 0f 90 pop r0
1a68: 1f 90 pop r1
1a6a: 18 95 reti
 
00001a6c <Timer_Init>:
1a6c: 80 91 a3 01 lds r24, 0x01A3
1a70: 90 91 a4 01 lds r25, 0x01A4
1a74: 0b 96 adiw r24, 0x0b ; 11
1a76: 90 93 ac 01 sts 0x01AC, r25
1a7a: 80 93 ab 01 sts 0x01AB, r24
1a7e: 82 e0 ldi r24, 0x02 ; 2
1a80: 85 bd out 0x25, r24 ; 37
1a82: 83 ea ldi r24, 0xA3 ; 163
1a84: 84 bd out 0x24, r24 ; 36
1a86: 17 bc out 0x27, r1 ; 39
1a88: 88 e7 ldi r24, 0x78 ; 120
1a8a: 88 bd out 0x28, r24 ; 40
1a8c: 83 ec ldi r24, 0xC3 ; 195
1a8e: 80 93 b0 00 sts 0x00B0, r24
1a92: 86 e0 ldi r24, 0x06 ; 6
1a94: 80 93 b1 00 sts 0x00B1, r24
1a98: e0 e7 ldi r30, 0x70 ; 112
1a9a: f0 e0 ldi r31, 0x00 ; 0
1a9c: 80 81 ld r24, Z
1a9e: 82 60 ori r24, 0x02 ; 2
1aa0: 80 83 st Z, r24
1aa2: ee e6 ldi r30, 0x6E ; 110
1aa4: f0 e0 ldi r31, 0x00 ; 0
1aa6: 80 81 ld r24, Z
1aa8: 81 60 ori r24, 0x01 ; 1
1aaa: 80 83 st Z, r24
1aac: 8a e0 ldi r24, 0x0A ; 10
1aae: 80 93 b3 00 sts 0x00B3, r24
1ab2: 10 92 b2 00 sts 0x00B2, r1
1ab6: 08 95 ret
 
00001ab8 <Delay_ms>:
1ab8: 20 91 a3 01 lds r18, 0x01A3
1abc: 30 91 a4 01 lds r19, 0x01A4
1ac0: 2f 5f subi r18, 0xFF ; 255
1ac2: 3f 4f sbci r19, 0xFF ; 255
1ac4: 28 0f add r18, r24
1ac6: 39 1f adc r19, r25
1ac8: 80 91 a3 01 lds r24, 0x01A3
1acc: 90 91 a4 01 lds r25, 0x01A4
1ad0: a9 01 movw r20, r18
1ad2: 48 1b sub r20, r24
1ad4: 59 0b sbc r21, r25
1ad6: 57 ff sbrs r21, 7
1ad8: f7 cf rjmp .-18 ; 0x1ac8 <Delay_ms+0x10>
1ada: 08 95 ret
 
00001adc <ADC_Init>:
1adc: 10 92 7c 00 sts 0x007C, r1
1ae0: 8f ee ldi r24, 0xEF ; 239
1ae2: 80 93 7a 00 sts 0x007A, r24
1ae6: 08 95 ret
 
00001ae8 <__vector_24>:
1ae8: 1f 92 push r1
1aea: 0f 92 push r0
1aec: 0f b6 in r0, 0x3f ; 63
1aee: 0f 92 push r0
1af0: 11 24 eor r1, r1
1af2: ef 92 push r14
1af4: ff 92 push r15
1af6: 0f 93 push r16
1af8: 1f 93 push r17
1afa: 2f 93 push r18
1afc: 3f 93 push r19
1afe: 4f 93 push r20
1b00: 5f 93 push r21
1b02: 6f 93 push r22
1b04: 7f 93 push r23
1b06: 8f 93 push r24
1b08: 9f 93 push r25
1b0a: af 93 push r26
1b0c: bf 93 push r27
1b0e: cf 93 push r28
1b10: df 93 push r29
1b12: ef 93 push r30
1b14: ff 93 push r31
1b16: 10 92 7a 00 sts 0x007A, r1
1b1a: 80 91 c3 01 lds r24, 0x01C3
1b1e: 8f 5f subi r24, 0xFF ; 255
1b20: 80 93 c3 01 sts 0x01C3, r24
1b24: 81 50 subi r24, 0x01 ; 1
1b26: e8 2f mov r30, r24
1b28: ff 27 eor r31, r31
1b2a: e8 30 cpi r30, 0x08 ; 8
1b2c: f1 05 cpc r31, r1
1b2e: 08 f0 brcs .+2 ; 0x1b32 <__vector_24+0x4a>
1b30: b6 c2 rjmp .+1388 ; 0x209e <__vector_24+0x5b6>
1b32: e4 5b subi r30, 0xB4 ; 180
1b34: ff 4f sbci r31, 0xFF ; 255
1b36: 0c 94 f2 2e jmp 0x5de4 ; 0x5de4 <__tablejump2__>
1b3a: 20 91 d6 01 lds r18, 0x01D6
1b3e: 30 91 d7 01 lds r19, 0x01D7
1b42: 80 91 78 00 lds r24, 0x0078
1b46: 90 91 79 00 lds r25, 0x0079
1b4a: 28 1b sub r18, r24
1b4c: 39 0b sbc r19, r25
1b4e: 80 91 b1 01 lds r24, 0x01B1
1b52: 90 91 b2 01 lds r25, 0x01B2
1b56: 82 0f add r24, r18
1b58: 93 1f adc r25, r19
1b5a: 90 93 b2 01 sts 0x01B2, r25
1b5e: 80 93 b1 01 sts 0x01B1, r24
1b62: 80 91 bb 01 lds r24, 0x01BB
1b66: 8f 5f subi r24, 0xFF ; 255
1b68: 80 93 bb 01 sts 0x01BB, r24
1b6c: 80 91 fe 01 lds r24, 0x01FE
1b70: 90 91 ff 01 lds r25, 0x01FF
1b74: a0 91 00 02 lds r26, 0x0200
1b78: b0 91 01 02 lds r27, 0x0201
1b7c: 44 27 eor r20, r20
1b7e: 37 fd sbrc r19, 7
1b80: 40 95 com r20
1b82: 54 2f mov r21, r20
1b84: 82 0f add r24, r18
1b86: 93 1f adc r25, r19
1b88: a4 1f adc r26, r20
1b8a: b5 1f adc r27, r21
1b8c: 80 93 fe 01 sts 0x01FE, r24
1b90: 90 93 ff 01 sts 0x01FF, r25
1b94: a0 93 00 02 sts 0x0200, r26
1b98: b0 93 01 02 sts 0x0201, r27
1b9c: 80 91 02 02 lds r24, 0x0202
1ba0: 90 91 03 02 lds r25, 0x0203
1ba4: a0 91 04 02 lds r26, 0x0204
1ba8: b0 91 05 02 lds r27, 0x0205
1bac: 82 0f add r24, r18
1bae: 93 1f adc r25, r19
1bb0: a4 1f adc r26, r20
1bb2: b5 1f adc r27, r21
1bb4: 80 93 02 02 sts 0x0202, r24
1bb8: 90 93 03 02 sts 0x0203, r25
1bbc: a0 93 04 02 sts 0x0204, r26
1bc0: b0 93 05 02 sts 0x0205, r27
1bc4: 81 e0 ldi r24, 0x01 ; 1
1bc6: 80 93 c4 01 sts 0x01C4, r24
1bca: 80 91 c1 01 lds r24, 0x01C1
1bce: 90 91 c2 01 lds r25, 0x01C2
1bd2: 01 96 adiw r24, 0x01 ; 1
1bd4: 90 93 c2 01 sts 0x01C2, r25
1bd8: 80 93 c1 01 sts 0x01C1, r24
1bdc: 64 c2 rjmp .+1224 ; 0x20a6 <__vector_24+0x5be>
1bde: 60 91 78 00 lds r22, 0x0078
1be2: 70 91 79 00 lds r23, 0x0079
1be6: 80 91 d4 01 lds r24, 0x01D4
1bea: 90 91 d5 01 lds r25, 0x01D5
1bee: 68 1b sub r22, r24
1bf0: 79 0b sbc r23, r25
1bf2: 80 91 f6 01 lds r24, 0x01F6
1bf6: 90 91 f7 01 lds r25, 0x01F7
1bfa: a0 91 f8 01 lds r26, 0x01F8
1bfe: b0 91 f9 01 lds r27, 0x01F9
1c02: 9b 01 movw r18, r22
1c04: 44 27 eor r20, r20
1c06: 37 fd sbrc r19, 7
1c08: 40 95 com r20
1c0a: 54 2f mov r21, r20
1c0c: 82 0f add r24, r18
1c0e: 93 1f adc r25, r19
1c10: a4 1f adc r26, r20
1c12: b5 1f adc r27, r21
1c14: 80 93 f6 01 sts 0x01F6, r24
1c18: 90 93 f7 01 sts 0x01F7, r25
1c1c: a0 93 f8 01 sts 0x01F8, r26
1c20: b0 93 f9 01 sts 0x01F9, r27
1c24: 80 91 fa 01 lds r24, 0x01FA
1c28: 90 91 fb 01 lds r25, 0x01FB
1c2c: a0 91 fc 01 lds r26, 0x01FC
1c30: b0 91 fd 01 lds r27, 0x01FD
1c34: 82 0f add r24, r18
1c36: 93 1f adc r25, r19
1c38: a4 1f adc r26, r20
1c3a: b5 1f adc r27, r21
1c3c: 80 93 fa 01 sts 0x01FA, r24
1c40: 90 93 fb 01 sts 0x01FB, r25
1c44: a0 93 fc 01 sts 0x01FC, r26
1c48: b0 93 fd 01 sts 0x01FD, r27
1c4c: 80 91 78 00 lds r24, 0x0078
1c50: 90 91 79 00 lds r25, 0x0079
1c54: 0a 97 sbiw r24, 0x0a ; 10
1c56: 10 f4 brcc .+4 ; 0x1c5c <__vector_24+0x174>
1c58: 64 e4 ldi r22, 0x44 ; 68
1c5a: 7d ef ldi r23, 0xFD ; 253
1c5c: 80 91 78 00 lds r24, 0x0078
1c60: 90 91 79 00 lds r25, 0x0079
1c64: 89 5e subi r24, 0xE9 ; 233
1c66: 93 40 sbci r25, 0x03 ; 3
1c68: 10 f0 brcs .+4 ; 0x1c6e <__vector_24+0x186>
1c6a: 6c eb ldi r22, 0xBC ; 188
1c6c: 72 e0 ldi r23, 0x02 ; 2
1c6e: 80 91 af 01 lds r24, 0x01AF
1c72: 90 91 b0 01 lds r25, 0x01B0
1c76: 86 0f add r24, r22
1c78: 97 1f adc r25, r23
1c7a: 90 93 b0 01 sts 0x01B0, r25
1c7e: 80 93 af 01 sts 0x01AF, r24
1c82: 80 91 ba 01 lds r24, 0x01BA
1c86: 8f 5f subi r24, 0xFF ; 255
1c88: 80 93 ba 01 sts 0x01BA, r24
1c8c: 82 e0 ldi r24, 0x02 ; 2
1c8e: 58 c0 rjmp .+176 ; 0x1d40 <__vector_24+0x258>
1c90: 60 91 78 00 lds r22, 0x0078
1c94: 70 91 79 00 lds r23, 0x0079
1c98: 80 91 d2 01 lds r24, 0x01D2
1c9c: 90 91 d3 01 lds r25, 0x01D3
1ca0: 68 1b sub r22, r24
1ca2: 79 0b sbc r23, r25
1ca4: 80 91 ee 01 lds r24, 0x01EE
1ca8: 90 91 ef 01 lds r25, 0x01EF
1cac: a0 91 f0 01 lds r26, 0x01F0
1cb0: b0 91 f1 01 lds r27, 0x01F1
1cb4: 9b 01 movw r18, r22
1cb6: 44 27 eor r20, r20
1cb8: 37 fd sbrc r19, 7
1cba: 40 95 com r20
1cbc: 54 2f mov r21, r20
1cbe: 82 0f add r24, r18
1cc0: 93 1f adc r25, r19
1cc2: a4 1f adc r26, r20
1cc4: b5 1f adc r27, r21
1cc6: 80 93 ee 01 sts 0x01EE, r24
1cca: 90 93 ef 01 sts 0x01EF, r25
1cce: a0 93 f0 01 sts 0x01F0, r26
1cd2: b0 93 f1 01 sts 0x01F1, r27
1cd6: 80 91 f2 01 lds r24, 0x01F2
1cda: 90 91 f3 01 lds r25, 0x01F3
1cde: a0 91 f4 01 lds r26, 0x01F4
1ce2: b0 91 f5 01 lds r27, 0x01F5
1ce6: 82 0f add r24, r18
1ce8: 93 1f adc r25, r19
1cea: a4 1f adc r26, r20
1cec: b5 1f adc r27, r21
1cee: 80 93 f2 01 sts 0x01F2, r24
1cf2: 90 93 f3 01 sts 0x01F3, r25
1cf6: a0 93 f4 01 sts 0x01F4, r26
1cfa: b0 93 f5 01 sts 0x01F5, r27
1cfe: 80 91 78 00 lds r24, 0x0078
1d02: 90 91 79 00 lds r25, 0x0079
1d06: 0a 97 sbiw r24, 0x0a ; 10
1d08: 10 f4 brcc .+4 ; 0x1d0e <__vector_24+0x226>
1d0a: 64 e4 ldi r22, 0x44 ; 68
1d0c: 7d ef ldi r23, 0xFD ; 253
1d0e: 80 91 78 00 lds r24, 0x0078
1d12: 90 91 79 00 lds r25, 0x0079
1d16: 89 5e subi r24, 0xE9 ; 233
1d18: 93 40 sbci r25, 0x03 ; 3
1d1a: 10 f0 brcs .+4 ; 0x1d20 <__vector_24+0x238>
1d1c: 6c eb ldi r22, 0xBC ; 188
1d1e: 72 e0 ldi r23, 0x02 ; 2
1d20: 80 91 ad 01 lds r24, 0x01AD
1d24: 90 91 ae 01 lds r25, 0x01AE
1d28: 86 0f add r24, r22
1d2a: 97 1f adc r25, r23
1d2c: 90 93 ae 01 sts 0x01AE, r25
1d30: 80 93 ad 01 sts 0x01AD, r24
1d34: 80 91 b9 01 lds r24, 0x01B9
1d38: 8f 5f subi r24, 0xFF ; 255
1d3a: 80 93 b9 01 sts 0x01B9, r24
1d3e: 84 e0 ldi r24, 0x04 ; 4
1d40: 80 93 c4 01 sts 0x01C4, r24
1d44: b0 c1 rjmp .+864 ; 0x20a6 <__vector_24+0x5be>
1d46: 40 91 06 01 lds r20, 0x0106
1d4a: 50 91 07 01 lds r21, 0x0107
1d4e: 80 91 78 00 lds r24, 0x0078
1d52: 90 91 79 00 lds r25, 0x0079
1d56: 9a 01 movw r18, r20
1d58: 22 0f add r18, r18
1d5a: 33 1f adc r19, r19
1d5c: 24 0f add r18, r20
1d5e: 35 1f adc r19, r21
1d60: 63 e0 ldi r22, 0x03 ; 3
1d62: 70 e0 ldi r23, 0x00 ; 0
1d64: 0e 94 57 2e call 0x5cae ; 0x5cae <__udivmodhi4>
1d68: 26 0f add r18, r22
1d6a: 37 1f adc r19, r23
1d6c: 36 95 lsr r19
1d6e: 27 95 ror r18
1d70: 36 95 lsr r19
1d72: 27 95 ror r18
1d74: 30 93 07 01 sts 0x0107, r19
1d78: 20 93 06 01 sts 0x0106, r18
1d7c: 86 e0 ldi r24, 0x06 ; 6
1d7e: e0 cf rjmp .-64 ; 0x1d40 <__vector_24+0x258>
1d80: 20 91 78 00 lds r18, 0x0078
1d84: 30 91 79 00 lds r19, 0x0079
1d88: 80 91 23 05 lds r24, 0x0523
1d8c: 90 91 24 05 lds r25, 0x0524
1d90: 82 1b sub r24, r18
1d92: 93 0b sbc r25, r19
1d94: 90 93 80 04 sts 0x0480, r25
1d98: 80 93 7f 04 sts 0x047F, r24
1d9c: 80 91 b3 01 lds r24, 0x01B3
1da0: 90 91 b4 01 lds r25, 0x01B4
1da4: 20 91 7f 04 lds r18, 0x047F
1da8: 30 91 80 04 lds r19, 0x0480
1dac: 82 0f add r24, r18
1dae: 93 1f adc r25, r19
1db0: 90 93 b4 01 sts 0x01B4, r25
1db4: 80 93 b3 01 sts 0x01B3, r24
1db8: 80 91 bd 01 lds r24, 0x01BD
1dbc: 8f 5f subi r24, 0xFF ; 255
1dbe: 80 93 bd 01 sts 0x01BD, r24
1dc2: 87 e0 ldi r24, 0x07 ; 7
1dc4: bd cf rjmp .-134 ; 0x1d40 <__vector_24+0x258>
1dc6: 80 91 78 00 lds r24, 0x0078
1dca: 90 91 79 00 lds r25, 0x0079
1dce: 20 91 21 05 lds r18, 0x0521
1dd2: 30 91 22 05 lds r19, 0x0522
1dd6: 82 1b sub r24, r18
1dd8: 93 0b sbc r25, r19
1dda: 90 93 8b 04 sts 0x048B, r25
1dde: 80 93 8a 04 sts 0x048A, r24
1de2: 80 91 b5 01 lds r24, 0x01B5
1de6: 90 91 b6 01 lds r25, 0x01B6
1dea: 20 91 8a 04 lds r18, 0x048A
1dee: 30 91 8b 04 lds r19, 0x048B
1df2: 82 0f add r24, r18
1df4: 93 1f adc r25, r19
1df6: 90 93 b6 01 sts 0x01B6, r25
1dfa: 80 93 b5 01 sts 0x01B5, r24
1dfe: 80 91 bc 01 lds r24, 0x01BC
1e02: 8f 5f subi r24, 0xFF ; 255
1e04: 80 93 bc 01 sts 0x01BC, r24
1e08: 85 e0 ldi r24, 0x05 ; 5
1e0a: 80 93 c4 01 sts 0x01C4, r24
1e0e: 86 e0 ldi r24, 0x06 ; 6
1e10: cb c0 rjmp .+406 ; 0x1fa8 <__vector_24+0x4c0>
1e12: 60 91 78 00 lds r22, 0x0078
1e16: 70 91 79 00 lds r23, 0x0079
1e1a: e0 90 25 05 lds r14, 0x0525
1e1e: f0 90 26 05 lds r15, 0x0526
1e22: 00 91 27 05 lds r16, 0x0527
1e26: 10 91 28 05 lds r17, 0x0528
1e2a: 88 27 eor r24, r24
1e2c: 77 fd sbrc r23, 7
1e2e: 80 95 com r24
1e30: 98 2f mov r25, r24
1e32: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
1e36: a8 01 movw r20, r16
1e38: 97 01 movw r18, r14
1e3a: 0e 94 d0 2c call 0x59a0 ; 0x59a0 <__subsf3>
1e3e: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
1e42: 70 93 b8 01 sts 0x01B8, r23
1e46: 60 93 b7 01 sts 0x01B7, r22
1e4a: 20 91 b7 01 lds r18, 0x01B7
1e4e: 30 91 b8 01 lds r19, 0x01B8
1e52: e0 91 7f 04 lds r30, 0x047F
1e56: f0 91 80 04 lds r31, 0x0480
1e5a: 80 91 8a 04 lds r24, 0x048A
1e5e: 90 91 8b 04 lds r25, 0x048B
1e62: 97 ff sbrs r25, 7
1e64: 03 c0 rjmp .+6 ; 0x1e6c <__vector_24+0x384>
1e66: 90 95 com r25
1e68: 81 95 neg r24
1e6a: 9f 4f sbci r25, 0xFF ; 255
1e6c: 64 e0 ldi r22, 0x04 ; 4
1e6e: 70 e0 ldi r23, 0x00 ; 0
1e70: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
1e74: eb 01 movw r28, r22
1e76: cf 01 movw r24, r30
1e78: f7 ff sbrs r31, 7
1e7a: 03 c0 rjmp .+6 ; 0x1e82 <__vector_24+0x39a>
1e7c: 90 95 com r25
1e7e: 81 95 neg r24
1e80: 9f 4f sbci r25, 0xFF ; 255
1e82: 64 e0 ldi r22, 0x04 ; 4
1e84: 70 e0 ldi r23, 0x00 ; 0
1e86: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
1e8a: 26 0f add r18, r22
1e8c: 37 1f adc r19, r23
1e8e: 2c 0f add r18, r28
1e90: 3d 1f adc r19, r29
1e92: 30 93 b8 01 sts 0x01B8, r19
1e96: 20 93 b7 01 sts 0x01B7, r18
1e9a: 80 91 b7 01 lds r24, 0x01B7
1e9e: 90 91 b8 01 lds r25, 0x01B8
1ea2: 02 97 sbiw r24, 0x02 ; 2
1ea4: 9c f0 brlt .+38 ; 0x1ecc <__vector_24+0x3e4>
1ea6: 20 e0 ldi r18, 0x00 ; 0
1ea8: 30 e0 ldi r19, 0x00 ; 0
1eaa: 48 e4 ldi r20, 0x48 ; 72
1eac: 54 e4 ldi r21, 0x44 ; 68
1eae: c8 01 movw r24, r16
1eb0: b7 01 movw r22, r14
1eb2: 0e 94 80 2d call 0x5b00 ; 0x5b00 <__eqsf2>
1eb6: 88 23 and r24, r24
1eb8: 54 f5 brge .+84 ; 0x1f0e <__vector_24+0x426>
1eba: 2a e0 ldi r18, 0x0A ; 10
1ebc: 37 ed ldi r19, 0xD7 ; 215
1ebe: 43 ea ldi r20, 0xA3 ; 163
1ec0: 5c e3 ldi r21, 0x3C ; 60
1ec2: c8 01 movw r24, r16
1ec4: b7 01 movw r22, r14
1ec6: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
1eca: 19 c0 rjmp .+50 ; 0x1efe <__vector_24+0x416>
1ecc: 80 91 b7 01 lds r24, 0x01B7
1ed0: 90 91 b8 01 lds r25, 0x01B8
1ed4: 8f 5f subi r24, 0xFF ; 255
1ed6: 9f 4f sbci r25, 0xFF ; 255
1ed8: d4 f4 brge .+52 ; 0x1f0e <__vector_24+0x426>
1eda: 20 e0 ldi r18, 0x00 ; 0
1edc: 30 e0 ldi r19, 0x00 ; 0
1ede: 46 e1 ldi r20, 0x16 ; 22
1ee0: 54 e4 ldi r21, 0x44 ; 68
1ee2: c8 01 movw r24, r16
1ee4: b7 01 movw r22, r14
1ee6: 0e 94 83 2d call 0x5b06 ; 0x5b06 <__gesf2>
1eea: 18 16 cp r1, r24
1eec: 84 f4 brge .+32 ; 0x1f0e <__vector_24+0x426>
1eee: 2a e0 ldi r18, 0x0A ; 10
1ef0: 37 ed ldi r19, 0xD7 ; 215
1ef2: 43 ea ldi r20, 0xA3 ; 163
1ef4: 5c e3 ldi r21, 0x3C ; 60
1ef6: c8 01 movw r24, r16
1ef8: b7 01 movw r22, r14
1efa: 0e 94 d0 2c call 0x59a0 ; 0x59a0 <__subsf3>
1efe: 60 93 25 05 sts 0x0525, r22
1f02: 70 93 26 05 sts 0x0526, r23
1f06: 80 93 27 05 sts 0x0527, r24
1f0a: 90 93 28 05 sts 0x0528, r25
1f0e: 81 e0 ldi r24, 0x01 ; 1
1f10: 80 93 be 01 sts 0x01BE, r24
1f14: 80 91 78 00 lds r24, 0x0078
1f18: 90 91 79 00 lds r25, 0x0079
1f1c: 90 93 82 04 sts 0x0482, r25
1f20: 80 93 81 04 sts 0x0481, r24
1f24: 20 91 06 02 lds r18, 0x0206
1f28: 30 91 07 02 lds r19, 0x0207
1f2c: 40 91 08 02 lds r20, 0x0208
1f30: 50 91 09 02 lds r21, 0x0209
1f34: 80 91 b7 01 lds r24, 0x01B7
1f38: 90 91 b8 01 lds r25, 0x01B8
1f3c: aa 27 eor r26, r26
1f3e: 97 fd sbrc r25, 7
1f40: a0 95 com r26
1f42: ba 2f mov r27, r26
1f44: 28 0f add r18, r24
1f46: 39 1f adc r19, r25
1f48: 4a 1f adc r20, r26
1f4a: 5b 1f adc r21, r27
1f4c: 20 93 06 02 sts 0x0206, r18
1f50: 30 93 07 02 sts 0x0207, r19
1f54: 40 93 08 02 sts 0x0208, r20
1f58: 50 93 09 02 sts 0x0209, r21
1f5c: e0 90 06 02 lds r14, 0x0206
1f60: f0 90 07 02 lds r15, 0x0207
1f64: 00 91 08 02 lds r16, 0x0208
1f68: 10 91 09 02 lds r17, 0x0209
1f6c: 60 91 06 02 lds r22, 0x0206
1f70: 70 91 07 02 lds r23, 0x0207
1f74: 80 91 08 02 lds r24, 0x0208
1f78: 90 91 09 02 lds r25, 0x0209
1f7c: 20 e0 ldi r18, 0x00 ; 0
1f7e: 34 e0 ldi r19, 0x04 ; 4
1f80: 40 e0 ldi r20, 0x00 ; 0
1f82: 50 e0 ldi r21, 0x00 ; 0
1f84: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
1f88: e2 1a sub r14, r18
1f8a: f3 0a sbc r15, r19
1f8c: 04 0b sbc r16, r20
1f8e: 15 0b sbc r17, r21
1f90: e0 92 06 02 sts 0x0206, r14
1f94: f0 92 07 02 sts 0x0207, r15
1f98: 00 93 08 02 sts 0x0208, r16
1f9c: 10 93 09 02 sts 0x0209, r17
1fa0: 83 e0 ldi r24, 0x03 ; 3
1fa2: 80 93 c4 01 sts 0x01C4, r24
1fa6: 87 e0 ldi r24, 0x07 ; 7
1fa8: 80 93 c3 01 sts 0x01C3, r24
1fac: 7c c0 rjmp .+248 ; 0x20a6 <__vector_24+0x5be>
1fae: 80 91 8f 04 lds r24, 0x048F
1fb2: 90 91 90 04 lds r25, 0x0490
1fb6: 20 91 78 00 lds r18, 0x0078
1fba: 30 91 79 00 lds r19, 0x0079
1fbe: 82 0f add r24, r18
1fc0: 93 1f adc r25, r19
1fc2: 90 93 90 04 sts 0x0490, r25
1fc6: 80 93 8f 04 sts 0x048F, r24
1fca: 80 91 87 04 lds r24, 0x0487
1fce: 8f 5f subi r24, 0xFF ; 255
1fd0: 80 93 87 04 sts 0x0487, r24
1fd4: 80 91 87 04 lds r24, 0x0487
1fd8: 85 30 cpi r24, 0x05 ; 5
1fda: 08 f4 brcc .+2 ; 0x1fde <__vector_24+0x4f6>
1fdc: 60 c0 rjmp .+192 ; 0x209e <__vector_24+0x5b6>
1fde: 80 91 78 00 lds r24, 0x0078
1fe2: 90 91 79 00 lds r25, 0x0079
1fe6: 90 93 0d 01 sts 0x010D, r25
1fea: 80 93 0c 01 sts 0x010C, r24
1fee: 10 92 87 04 sts 0x0487, r1
1ff2: 80 91 83 04 lds r24, 0x0483
1ff6: 90 91 84 04 lds r25, 0x0484
1ffa: 20 91 8f 04 lds r18, 0x048F
1ffe: 30 91 90 04 lds r19, 0x0490
2002: 82 1b sub r24, r18
2004: 93 0b sbc r25, r19
2006: 20 91 22 02 lds r18, 0x0222
200a: 30 91 23 02 lds r19, 0x0223
200e: 82 1b sub r24, r18
2010: 93 0b sbc r25, r19
2012: 90 93 c0 01 sts 0x01C0, r25
2016: 80 93 bf 01 sts 0x01BF, r24
201a: 60 91 8f 04 lds r22, 0x048F
201e: 70 91 90 04 lds r23, 0x0490
2022: e0 90 08 01 lds r14, 0x0108
2026: f0 90 09 01 lds r15, 0x0109
202a: 00 91 0a 01 lds r16, 0x010A
202e: 10 91 0b 01 lds r17, 0x010B
2032: 88 27 eor r24, r24
2034: 77 fd sbrc r23, 7
2036: 80 95 com r24
2038: 98 2f mov r25, r24
203a: a8 01 movw r20, r16
203c: 97 01 movw r18, r14
203e: 22 0f add r18, r18
2040: 33 1f adc r19, r19
2042: 44 1f adc r20, r20
2044: 55 1f adc r21, r21
2046: 2e 0d add r18, r14
2048: 3f 1d adc r19, r15
204a: 40 1f adc r20, r16
204c: 51 1f adc r21, r17
204e: 62 0f add r22, r18
2050: 73 1f adc r23, r19
2052: 84 1f adc r24, r20
2054: 95 1f adc r25, r21
2056: 24 e0 ldi r18, 0x04 ; 4
2058: 30 e0 ldi r19, 0x00 ; 0
205a: 40 e0 ldi r20, 0x00 ; 0
205c: 50 e0 ldi r21, 0x00 ; 0
205e: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
2062: 20 93 08 01 sts 0x0108, r18
2066: 30 93 09 01 sts 0x0109, r19
206a: 40 93 0a 01 sts 0x010A, r20
206e: 50 93 0b 01 sts 0x010B, r21
2072: 20 91 83 04 lds r18, 0x0483
2076: 30 91 84 04 lds r19, 0x0484
207a: 80 91 08 01 lds r24, 0x0108
207e: 90 91 09 01 lds r25, 0x0109
2082: a0 91 0a 01 lds r26, 0x010A
2086: b0 91 0b 01 lds r27, 0x010B
208a: 28 1b sub r18, r24
208c: 39 0b sbc r19, r25
208e: 30 93 23 02 sts 0x0223, r19
2092: 20 93 22 02 sts 0x0222, r18
2096: 10 92 90 04 sts 0x0490, r1
209a: 10 92 8f 04 sts 0x048F, r1
209e: 10 92 c4 01 sts 0x01C4, r1
20a2: 10 92 c3 01 sts 0x01C3, r1
20a6: 80 91 c4 01 lds r24, 0x01C4
20aa: 80 93 7c 00 sts 0x007C, r24
20ae: 8f ee ldi r24, 0xEF ; 239
20b0: 80 93 7a 00 sts 0x007A, r24
20b4: ff 91 pop r31
20b6: ef 91 pop r30
20b8: df 91 pop r29
20ba: cf 91 pop r28
20bc: bf 91 pop r27
20be: af 91 pop r26
20c0: 9f 91 pop r25
20c2: 8f 91 pop r24
20c4: 7f 91 pop r23
20c6: 6f 91 pop r22
20c8: 5f 91 pop r21
20ca: 4f 91 pop r20
20cc: 3f 91 pop r19
20ce: 2f 91 pop r18
20d0: 1f 91 pop r17
20d2: 0f 91 pop r16
20d4: ff 90 pop r15
20d6: ef 90 pop r14
20d8: 0f 90 pop r0
20da: 0f be out 0x3f, r0 ; 63
20dc: 0f 90 pop r0
20de: 1f 90 pop r1
20e0: 18 95 reti
 
000020e2 <SucheLuftruckOffset>:
20e2: cf 93 push r28
20e4: df 93 push r29
20e6: c0 e0 ldi r28, 0x00 ; 0
20e8: d0 e0 ldi r29, 0x00 ; 0
20ea: c7 bd out 0x27, r28 ; 39
20ec: 82 e3 ldi r24, 0x32 ; 50
20ee: 90 e0 ldi r25, 0x00 ; 0
20f0: 0e 94 5c 0d call 0x1ab8 ; 0x1ab8 <Delay_ms>
20f4: 89 ec ldi r24, 0xC9 ; 201
20f6: 91 e0 ldi r25, 0x01 ; 1
20f8: 9f 93 push r25
20fa: 8f 93 push r24
20fc: 1f 92 push r1
20fe: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2102: 80 91 0c 01 lds r24, 0x010C
2106: 90 91 0d 01 lds r25, 0x010D
210a: 0f 90 pop r0
210c: 0f 90 pop r0
210e: 0f 90 pop r0
2110: 84 58 subi r24, 0x84 ; 132
2112: 93 40 sbci r25, 0x03 ; 3
2114: 20 f0 brcs .+8 ; 0x211e <SucheLuftruckOffset+0x3c>
2116: 21 96 adiw r28, 0x01 ; 1
2118: ca 3f cpi r28, 0xFA ; 250
211a: d1 05 cpc r29, r1
211c: 31 f7 brne .-52 ; 0x20ea <SucheLuftruckOffset+0x8>
211e: c0 93 8c 04 sts 0x048C, r28
2122: 88 ec ldi r24, 0xC8 ; 200
2124: 90 e0 ldi r25, 0x00 ; 0
2126: 0e 94 5c 0d call 0x1ab8 ; 0x1ab8 <Delay_ms>
212a: df 91 pop r29
212c: cf 91 pop r28
212e: 08 95 ret
 
00002130 <LcdClear>:
2130: e8 e1 ldi r30, 0x18 ; 24
2132: f1 e0 ldi r31, 0x01 ; 1
2134: 80 e2 ldi r24, 0x20 ; 32
2136: 81 93 st Z+, r24
2138: 91 e0 ldi r25, 0x01 ; 1
213a: e8 36 cpi r30, 0x68 ; 104
213c: f9 07 cpc r31, r25
213e: d9 f7 brne .-10 ; 0x2136 <LcdClear+0x6>
2140: 08 95 ret
 
00002142 <Menu>:
2142: ff 92 push r15
2144: 0f 93 push r16
2146: 1f 93 push r17
2148: 80 91 c8 01 lds r24, 0x01C8
214c: 28 2f mov r18, r24
214e: 33 27 eor r19, r19
2150: c9 01 movw r24, r18
2152: 81 70 andi r24, 0x01 ; 1
2154: 90 70 andi r25, 0x00 ; 0
2156: 68 2f mov r22, r24
2158: 88 23 and r24, r24
215a: 91 f0 breq .+36 ; 0x2180 <Menu+0x3e>
215c: 80 91 c9 01 lds r24, 0x01C9
2160: 88 23 and r24, r24
2162: 11 f0 breq .+4 ; 0x2168 <Menu+0x26>
2164: 81 50 subi r24, 0x01 ; 1
2166: 02 c0 rjmp .+4 ; 0x216c <Menu+0x2a>
2168: 80 91 68 01 lds r24, 0x0168
216c: 80 93 c9 01 sts 0x01C9, r24
2170: e8 e1 ldi r30, 0x18 ; 24
2172: f1 e0 ldi r31, 0x01 ; 1
2174: 80 e2 ldi r24, 0x20 ; 32
2176: 81 93 st Z+, r24
2178: 91 e0 ldi r25, 0x01 ; 1
217a: e8 36 cpi r30, 0x68 ; 104
217c: f9 07 cpc r31, r25
217e: d9 f7 brne .-10 ; 0x2176 <Menu+0x34>
2180: a9 01 movw r20, r18
2182: 42 70 andi r20, 0x02 ; 2
2184: 50 70 andi r21, 0x00 ; 0
2186: 21 ff sbrs r18, 1
2188: 0d c0 rjmp .+26 ; 0x21a4 <Menu+0x62>
218a: 80 91 c9 01 lds r24, 0x01C9
218e: 8f 5f subi r24, 0xFF ; 255
2190: 80 93 c9 01 sts 0x01C9, r24
2194: e8 e1 ldi r30, 0x18 ; 24
2196: f1 e0 ldi r31, 0x01 ; 1
2198: 80 e2 ldi r24, 0x20 ; 32
219a: 81 93 st Z+, r24
219c: 91 e0 ldi r25, 0x01 ; 1
219e: e8 36 cpi r30, 0x68 ; 104
21a0: f9 07 cpc r31, r25
21a2: d9 f7 brne .-10 ; 0x219a <Menu+0x58>
21a4: 66 23 and r22, r22
21a6: 21 f0 breq .+8 ; 0x21b0 <Menu+0x6e>
21a8: 45 2b or r20, r21
21aa: 11 f0 breq .+4 ; 0x21b0 <Menu+0x6e>
21ac: 10 92 c9 01 sts 0x01C9, r1
21b0: 81 e1 ldi r24, 0x11 ; 17
21b2: 80 93 c7 01 sts 0x01C7, r24
21b6: 80 91 c9 01 lds r24, 0x01C9
21ba: 99 27 eor r25, r25
21bc: 9f 93 push r25
21be: 8f 93 push r24
21c0: 82 e7 ldi r24, 0x72 ; 114
21c2: 94 e0 ldi r25, 0x04 ; 4
21c4: 9f 93 push r25
21c6: 8f 93 push r24
21c8: 81 e0 ldi r24, 0x01 ; 1
21ca: 8f 93 push r24
21cc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
21d0: 80 91 c9 01 lds r24, 0x01C9
21d4: 0f 90 pop r0
21d6: 0f 90 pop r0
21d8: 0f 90 pop r0
21da: 0f 90 pop r0
21dc: 0f 90 pop r0
21de: e8 2f mov r30, r24
21e0: ff 27 eor r31, r31
21e2: ec 30 cpi r30, 0x0C ; 12
21e4: f1 05 cpc r31, r1
21e6: 08 f0 brcs .+2 ; 0x21ea <Menu+0xa8>
21e8: 86 c3 rjmp .+1804 ; 0x28f6 <Menu+0x7b4>
21ea: ec 5a subi r30, 0xAC ; 172
21ec: ff 4f sbci r31, 0xFF ; 255
21ee: 0c 94 f2 2e jmp 0x5de4 ; 0x5de4 <__tablejump2__>
21f2: 10 92 c7 01 sts 0x01C7, r1
21f6: 80 e6 ldi r24, 0x60 ; 96
21f8: 94 e0 ldi r25, 0x04 ; 4
21fa: 9f 93 push r25
21fc: 8f 93 push r24
21fe: 11 e0 ldi r17, 0x01 ; 1
2200: 1f 93 push r17
2202: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2206: 84 e1 ldi r24, 0x14 ; 20
2208: 80 93 c7 01 sts 0x01C7, r24
220c: 8c e3 ldi r24, 0x3C ; 60
220e: 90 e0 ldi r25, 0x00 ; 0
2210: 9f 93 push r25
2212: 8f 93 push r24
2214: 1f 92 push r1
2216: 1f 92 push r1
2218: 89 e5 ldi r24, 0x59 ; 89
221a: 94 e0 ldi r25, 0x04 ; 4
221c: 9f 93 push r25
221e: 8f 93 push r24
2220: 1f 93 push r17
2222: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2226: 88 e2 ldi r24, 0x28 ; 40
2228: 80 93 c7 01 sts 0x01C7, r24
222c: 0e 94 fc 03 call 0x7f8 ; 0x7f8 <GetActiveParamSetNumber>
2230: 99 27 eor r25, r25
2232: 9f 93 push r25
2234: 8f 93 push r24
2236: 8c e4 ldi r24, 0x4C ; 76
2238: 94 e0 ldi r25, 0x04 ; 4
223a: 9f 93 push r25
223c: 8f 93 push r24
223e: 1f 93 push r17
2240: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2244: 8c e3 ldi r24, 0x3C ; 60
2246: 80 93 c7 01 sts 0x01C7, r24
224a: 8c e3 ldi r24, 0x3C ; 60
224c: 94 e0 ldi r25, 0x04 ; 4
224e: 9f 93 push r25
2250: 8f 93 push r24
2252: 1f 93 push r17
2254: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2258: 4a c3 rjmp .+1684 ; 0x28ee <Menu+0x7ac>
225a: 80 91 e4 04 lds r24, 0x04E4
225e: 80 ff sbrs r24, 0
2260: 44 c0 rjmp .+136 ; 0x22ea <Menu+0x1a8>
2262: 10 92 c7 01 sts 0x01C7, r1
2266: 80 91 22 02 lds r24, 0x0222
226a: 90 91 23 02 lds r25, 0x0223
226e: 9f 93 push r25
2270: 8f 93 push r24
2272: 8d e2 ldi r24, 0x2D ; 45
2274: 94 e0 ldi r25, 0x04 ; 4
2276: 9f 93 push r25
2278: 8f 93 push r24
227a: 11 e0 ldi r17, 0x01 ; 1
227c: 1f 93 push r17
227e: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2282: 84 e1 ldi r24, 0x14 ; 20
2284: 80 93 c7 01 sts 0x01C7, r24
2288: 80 91 24 02 lds r24, 0x0224
228c: 90 91 25 02 lds r25, 0x0225
2290: 9f 93 push r25
2292: 8f 93 push r24
2294: 8e e1 ldi r24, 0x1E ; 30
2296: 94 e0 ldi r25, 0x04 ; 4
2298: 9f 93 push r25
229a: 8f 93 push r24
229c: 1f 93 push r17
229e: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
22a2: 88 e2 ldi r24, 0x28 ; 40
22a4: 80 93 c7 01 sts 0x01C7, r24
22a8: 80 91 0c 01 lds r24, 0x010C
22ac: 90 91 0d 01 lds r25, 0x010D
22b0: 9f 93 push r25
22b2: 8f 93 push r24
22b4: 8f e0 ldi r24, 0x0F ; 15
22b6: 94 e0 ldi r25, 0x04 ; 4
22b8: 9f 93 push r25
22ba: 8f 93 push r24
22bc: 1f 93 push r17
22be: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
22c2: 8c e3 ldi r24, 0x3C ; 60
22c4: 80 93 c7 01 sts 0x01C7, r24
22c8: 80 91 8c 04 lds r24, 0x048C
22cc: 99 27 eor r25, r25
22ce: 9f 93 push r25
22d0: 8f 93 push r24
22d2: 80 e0 ldi r24, 0x00 ; 0
22d4: 94 e0 ldi r25, 0x04 ; 4
22d6: 9f 93 push r25
22d8: 8f 93 push r24
22da: 1f 93 push r17
22dc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
22e0: 8d b7 in r24, 0x3d ; 61
22e2: 9e b7 in r25, 0x3e ; 62
22e4: 44 96 adiw r24, 0x14 ; 20
22e6: 8d bf out 0x3d, r24 ; 61
22e8: 0b c3 rjmp .+1558 ; 0x2900 <Menu+0x7be>
22ea: 84 e1 ldi r24, 0x14 ; 20
22ec: 80 93 c7 01 sts 0x01C7, r24
22f0: 89 ef ldi r24, 0xF9 ; 249
22f2: 93 e0 ldi r25, 0x03 ; 3
22f4: 9f 93 push r25
22f6: 8f 93 push r24
22f8: 11 e0 ldi r17, 0x01 ; 1
22fa: 1f 93 push r17
22fc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2300: 88 e2 ldi r24, 0x28 ; 40
2302: 80 93 c7 01 sts 0x01C7, r24
2306: 8b ee ldi r24, 0xEB ; 235
2308: 93 e0 ldi r25, 0x03 ; 3
230a: 9f 93 push r25
230c: 8f 93 push r24
230e: 1f 93 push r17
2310: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2314: 8d b7 in r24, 0x3d ; 61
2316: 9e b7 in r25, 0x3e ; 62
2318: 06 96 adiw r24, 0x06 ; 6
231a: e5 cf rjmp .-54 ; 0x22e6 <Menu+0x1a4>
231c: 10 92 c7 01 sts 0x01C7, r1
2320: 81 ee ldi r24, 0xE1 ; 225
2322: 93 e0 ldi r25, 0x03 ; 3
2324: 9f 93 push r25
2326: 8f 93 push r24
2328: 11 e0 ldi r17, 0x01 ; 1
232a: 1f 93 push r17
232c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2330: 84 e1 ldi r24, 0x14 ; 20
2332: 80 93 c7 01 sts 0x01C7, r24
2336: 60 91 da 01 lds r22, 0x01DA
233a: 70 91 db 01 lds r23, 0x01DB
233e: 80 91 dc 01 lds r24, 0x01DC
2342: 90 91 dd 01 lds r25, 0x01DD
2346: 20 e0 ldi r18, 0x00 ; 0
2348: 34 e0 ldi r19, 0x04 ; 4
234a: 40 e0 ldi r20, 0x00 ; 0
234c: 50 e0 ldi r21, 0x00 ; 0
234e: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
2352: 5f 93 push r21
2354: 4f 93 push r20
2356: 3f 93 push r19
2358: 2f 93 push r18
235a: 82 ed ldi r24, 0xD2 ; 210
235c: 93 e0 ldi r25, 0x03 ; 3
235e: 9f 93 push r25
2360: 8f 93 push r24
2362: 1f 93 push r17
2364: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2368: 88 e2 ldi r24, 0x28 ; 40
236a: 80 93 c7 01 sts 0x01C7, r24
236e: 60 91 e2 01 lds r22, 0x01E2
2372: 70 91 e3 01 lds r23, 0x01E3
2376: 80 91 e4 01 lds r24, 0x01E4
237a: 90 91 e5 01 lds r25, 0x01E5
237e: 20 e0 ldi r18, 0x00 ; 0
2380: 34 e0 ldi r19, 0x04 ; 4
2382: 40 e0 ldi r20, 0x00 ; 0
2384: 50 e0 ldi r21, 0x00 ; 0
2386: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
238a: 5f 93 push r21
238c: 4f 93 push r20
238e: 3f 93 push r19
2390: 2f 93 push r18
2392: 83 ec ldi r24, 0xC3 ; 195
2394: 93 e0 ldi r25, 0x03 ; 3
2396: 9f 93 push r25
2398: 8f 93 push r24
239a: 1f 93 push r17
239c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
23a0: 8c e3 ldi r24, 0x3C ; 60
23a2: 80 93 c7 01 sts 0x01C7, r24
23a6: 80 91 0a 02 lds r24, 0x020A
23aa: 90 91 0b 02 lds r25, 0x020B
23ae: 9f 93 push r25
23b0: 8f 93 push r24
23b2: 84 eb ldi r24, 0xB4 ; 180
23b4: 93 e0 ldi r25, 0x03 ; 3
23b6: 9f 93 push r25
23b8: 8f 93 push r24
23ba: 1f 93 push r17
23bc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
23c0: 8d b7 in r24, 0x3d ; 61
23c2: 9e b7 in r25, 0x3e ; 62
23c4: 46 96 adiw r24, 0x16 ; 22
23c6: 8f cf rjmp .-226 ; 0x22e6 <Menu+0x1a4>
23c8: 10 92 c7 01 sts 0x01C7, r1
23cc: 80 91 b4 04 lds r24, 0x04B4
23d0: 90 91 b5 04 lds r25, 0x04B5
23d4: 20 91 b2 04 lds r18, 0x04B2
23d8: 30 91 b3 04 lds r19, 0x04B3
23dc: 9f 93 push r25
23de: 8f 93 push r24
23e0: 3f 93 push r19
23e2: 2f 93 push r18
23e4: 84 ea ldi r24, 0xA4 ; 164
23e6: 93 e0 ldi r25, 0x03 ; 3
23e8: 9f 93 push r25
23ea: 8f 93 push r24
23ec: 11 e0 ldi r17, 0x01 ; 1
23ee: 1f 93 push r17
23f0: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
23f4: 84 e1 ldi r24, 0x14 ; 20
23f6: 80 93 c7 01 sts 0x01C7, r24
23fa: 80 91 b8 04 lds r24, 0x04B8
23fe: 90 91 b9 04 lds r25, 0x04B9
2402: 20 91 b6 04 lds r18, 0x04B6
2406: 30 91 b7 04 lds r19, 0x04B7
240a: 9f 93 push r25
240c: 8f 93 push r24
240e: 3f 93 push r19
2410: 2f 93 push r18
2412: 84 e9 ldi r24, 0x94 ; 148
2414: 93 e0 ldi r25, 0x03 ; 3
2416: 9f 93 push r25
2418: 8f 93 push r24
241a: 1f 93 push r17
241c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2420: 88 e2 ldi r24, 0x28 ; 40
2422: 80 93 c7 01 sts 0x01C7, r24
2426: 80 91 bc 04 lds r24, 0x04BC
242a: 90 91 bd 04 lds r25, 0x04BD
242e: 20 91 ba 04 lds r18, 0x04BA
2432: 30 91 bb 04 lds r19, 0x04BB
2436: 9f 93 push r25
2438: 8f 93 push r24
243a: 3f 93 push r19
243c: 2f 93 push r18
243e: 84 e8 ldi r24, 0x84 ; 132
2440: 93 e0 ldi r25, 0x03 ; 3
2442: 9f 93 push r25
2444: 8f 93 push r24
2446: 1f 93 push r17
2448: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
244c: 8c e3 ldi r24, 0x3C ; 60
244e: 80 93 c7 01 sts 0x01C7, r24
2452: 80 91 be 04 lds r24, 0x04BE
2456: 90 91 bf 04 lds r25, 0x04BF
245a: 9f 93 push r25
245c: 8f 93 push r24
245e: 84 e7 ldi r24, 0x74 ; 116
2460: 93 e0 ldi r25, 0x03 ; 3
2462: 70 c0 rjmp .+224 ; 0x2544 <Menu+0x402>
2464: 10 92 c7 01 sts 0x01C7, r1
2468: e0 91 dd 04 lds r30, 0x04DD
246c: ff 27 eor r31, r31
246e: ee 0f add r30, r30
2470: ff 1f adc r31, r31
2472: e0 55 subi r30, 0x50 ; 80
2474: fb 4f sbci r31, 0xFB ; 251
2476: 20 81 ld r18, Z
2478: 31 81 ldd r19, Z+1 ; 0x01
247a: e0 91 dc 04 lds r30, 0x04DC
247e: ff 27 eor r31, r31
2480: ee 0f add r30, r30
2482: ff 1f adc r31, r31
2484: e0 55 subi r30, 0x50 ; 80
2486: fb 4f sbci r31, 0xFB ; 251
2488: 80 81 ld r24, Z
248a: 91 81 ldd r25, Z+1 ; 0x01
248c: 3f 93 push r19
248e: 2f 93 push r18
2490: 9f 93 push r25
2492: 8f 93 push r24
2494: 84 e6 ldi r24, 0x64 ; 100
2496: 93 e0 ldi r25, 0x03 ; 3
2498: 9f 93 push r25
249a: 8f 93 push r24
249c: 11 e0 ldi r17, 0x01 ; 1
249e: 1f 93 push r17
24a0: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
24a4: 84 e1 ldi r24, 0x14 ; 20
24a6: 80 93 c7 01 sts 0x01C7, r24
24aa: e0 91 df 04 lds r30, 0x04DF
24ae: ff 27 eor r31, r31
24b0: ee 0f add r30, r30
24b2: ff 1f adc r31, r31
24b4: e0 55 subi r30, 0x50 ; 80
24b6: fb 4f sbci r31, 0xFB ; 251
24b8: 20 81 ld r18, Z
24ba: 31 81 ldd r19, Z+1 ; 0x01
24bc: e0 91 de 04 lds r30, 0x04DE
24c0: ff 27 eor r31, r31
24c2: ee 0f add r30, r30
24c4: ff 1f adc r31, r31
24c6: e0 55 subi r30, 0x50 ; 80
24c8: fb 4f sbci r31, 0xFB ; 251
24ca: 80 81 ld r24, Z
24cc: 91 81 ldd r25, Z+1 ; 0x01
24ce: 3f 93 push r19
24d0: 2f 93 push r18
24d2: 9f 93 push r25
24d4: 8f 93 push r24
24d6: 84 e5 ldi r24, 0x54 ; 84
24d8: 93 e0 ldi r25, 0x03 ; 3
24da: 9f 93 push r25
24dc: 8f 93 push r24
24de: 1f 93 push r17
24e0: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
24e4: 88 e2 ldi r24, 0x28 ; 40
24e6: 80 93 c7 01 sts 0x01C7, r24
24ea: e0 91 e1 04 lds r30, 0x04E1
24ee: ff 27 eor r31, r31
24f0: ee 0f add r30, r30
24f2: ff 1f adc r31, r31
24f4: e0 55 subi r30, 0x50 ; 80
24f6: fb 4f sbci r31, 0xFB ; 251
24f8: 20 81 ld r18, Z
24fa: 31 81 ldd r19, Z+1 ; 0x01
24fc: e0 91 e0 04 lds r30, 0x04E0
2500: ff 27 eor r31, r31
2502: ee 0f add r30, r30
2504: ff 1f adc r31, r31
2506: e0 55 subi r30, 0x50 ; 80
2508: fb 4f sbci r31, 0xFB ; 251
250a: 80 81 ld r24, Z
250c: 91 81 ldd r25, Z+1 ; 0x01
250e: 3f 93 push r19
2510: 2f 93 push r18
2512: 9f 93 push r25
2514: 8f 93 push r24
2516: 84 e4 ldi r24, 0x44 ; 68
2518: 93 e0 ldi r25, 0x03 ; 3
251a: 9f 93 push r25
251c: 8f 93 push r24
251e: 1f 93 push r17
2520: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2524: 8c e3 ldi r24, 0x3C ; 60
2526: 80 93 c7 01 sts 0x01C7, r24
252a: e0 91 e2 04 lds r30, 0x04E2
252e: ff 27 eor r31, r31
2530: ee 0f add r30, r30
2532: ff 1f adc r31, r31
2534: e0 55 subi r30, 0x50 ; 80
2536: fb 4f sbci r31, 0xFB ; 251
2538: 80 81 ld r24, Z
253a: 91 81 ldd r25, Z+1 ; 0x01
253c: 9f 93 push r25
253e: 8f 93 push r24
2540: 84 e3 ldi r24, 0x34 ; 52
2542: 93 e0 ldi r25, 0x03 ; 3
2544: 9f 93 push r25
2546: 8f 93 push r24
2548: 1f 93 push r17
254a: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
254e: 8d b7 in r24, 0x3d ; 61
2550: 9e b7 in r25, 0x3e ; 62
2552: 4a 96 adiw r24, 0x1a ; 26
2554: c8 ce rjmp .-624 ; 0x22e6 <Menu+0x1a4>
2556: 10 92 c7 01 sts 0x01C7, r1
255a: 86 e2 ldi r24, 0x26 ; 38
255c: 93 e0 ldi r25, 0x03 ; 3
255e: 9f 93 push r25
2560: 8f 93 push r24
2562: 11 e0 ldi r17, 0x01 ; 1
2564: 1f 93 push r17
2566: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
256a: 84 e1 ldi r24, 0x14 ; 20
256c: 80 93 c7 01 sts 0x01C7, r24
2570: 20 91 d2 01 lds r18, 0x01D2
2574: 30 91 d3 01 lds r19, 0x01D3
2578: 80 91 ad 01 lds r24, 0x01AD
257c: 90 91 ae 01 lds r25, 0x01AE
2580: 60 91 b9 01 lds r22, 0x01B9
2584: 3f 93 push r19
2586: 2f 93 push r18
2588: 77 27 eor r23, r23
258a: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
258e: 7f 93 push r23
2590: 6f 93 push r22
2592: 87 e1 ldi r24, 0x17 ; 23
2594: 93 e0 ldi r25, 0x03 ; 3
2596: 9f 93 push r25
2598: 8f 93 push r24
259a: 1f 93 push r17
259c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
25a0: 88 e2 ldi r24, 0x28 ; 40
25a2: 80 93 c7 01 sts 0x01C7, r24
25a6: 20 91 d4 01 lds r18, 0x01D4
25aa: 30 91 d5 01 lds r19, 0x01D5
25ae: 80 91 af 01 lds r24, 0x01AF
25b2: 90 91 b0 01 lds r25, 0x01B0
25b6: 60 91 ba 01 lds r22, 0x01BA
25ba: 3f 93 push r19
25bc: 2f 93 push r18
25be: 77 27 eor r23, r23
25c0: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
25c4: 7f 93 push r23
25c6: 6f 93 push r22
25c8: 88 e0 ldi r24, 0x08 ; 8
25ca: 93 e0 ldi r25, 0x03 ; 3
25cc: 9f 93 push r25
25ce: 8f 93 push r24
25d0: 1f 93 push r17
25d2: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
25d6: 8c e3 ldi r24, 0x3C ; 60
25d8: 80 93 c7 01 sts 0x01C7, r24
25dc: 20 91 d6 01 lds r18, 0x01D6
25e0: 30 91 d7 01 lds r19, 0x01D7
25e4: 80 91 b1 01 lds r24, 0x01B1
25e8: 90 91 b2 01 lds r25, 0x01B2
25ec: 60 91 bb 01 lds r22, 0x01BB
25f0: 3f 93 push r19
25f2: 2f 93 push r18
25f4: 77 27 eor r23, r23
25f6: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
25fa: 7f 93 push r23
25fc: 6f 93 push r22
25fe: 89 ef ldi r24, 0xF9 ; 249
2600: 92 e0 ldi r25, 0x02 ; 2
2602: 9f 93 push r25
2604: 8f 93 push r24
2606: 1f 93 push r17
2608: 5b c0 rjmp .+182 ; 0x26c0 <Menu+0x57e>
260a: 10 92 c7 01 sts 0x01C7, r1
260e: 8c ee ldi r24, 0xEC ; 236
2610: 92 e0 ldi r25, 0x02 ; 2
2612: 9f 93 push r25
2614: 8f 93 push r24
2616: 81 e0 ldi r24, 0x01 ; 1
2618: f8 2e mov r15, r24
261a: ff 92 push r15
261c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2620: 84 e1 ldi r24, 0x14 ; 20
2622: 80 93 c7 01 sts 0x01C7, r24
2626: 80 91 b5 01 lds r24, 0x01B5
262a: 90 91 b6 01 lds r25, 0x01B6
262e: 60 91 bc 01 lds r22, 0x01BC
2632: 20 91 21 05 lds r18, 0x0521
2636: 30 91 22 05 lds r19, 0x0522
263a: 3f 93 push r19
263c: 2f 93 push r18
263e: 77 27 eor r23, r23
2640: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
2644: 7f 93 push r23
2646: 6f 93 push r22
2648: 8d ed ldi r24, 0xDD ; 221
264a: 92 e0 ldi r25, 0x02 ; 2
264c: 9f 93 push r25
264e: 8f 93 push r24
2650: ff 92 push r15
2652: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2656: 88 e2 ldi r24, 0x28 ; 40
2658: 80 93 c7 01 sts 0x01C7, r24
265c: 80 91 b3 01 lds r24, 0x01B3
2660: 90 91 b4 01 lds r25, 0x01B4
2664: 60 91 bd 01 lds r22, 0x01BD
2668: 20 91 23 05 lds r18, 0x0523
266c: 30 91 24 05 lds r19, 0x0524
2670: 3f 93 push r19
2672: 2f 93 push r18
2674: 77 27 eor r23, r23
2676: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
267a: 7f 93 push r23
267c: 6f 93 push r22
267e: 8e ec ldi r24, 0xCE ; 206
2680: 92 e0 ldi r25, 0x02 ; 2
2682: 9f 93 push r25
2684: 8f 93 push r24
2686: ff 92 push r15
2688: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
268c: 8c e3 ldi r24, 0x3C ; 60
268e: 80 93 c7 01 sts 0x01C7, r24
2692: 00 91 81 04 lds r16, 0x0481
2696: 10 91 82 04 lds r17, 0x0482
269a: 60 91 25 05 lds r22, 0x0525
269e: 70 91 26 05 lds r23, 0x0526
26a2: 80 91 27 05 lds r24, 0x0527
26a6: 90 91 28 05 lds r25, 0x0528
26aa: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
26ae: 7f 93 push r23
26b0: 6f 93 push r22
26b2: 1f 93 push r17
26b4: 0f 93 push r16
26b6: 8f eb ldi r24, 0xBF ; 191
26b8: 92 e0 ldi r25, 0x02 ; 2
26ba: 9f 93 push r25
26bc: 8f 93 push r24
26be: ff 92 push r15
26c0: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
26c4: 8d b7 in r24, 0x3d ; 61
26c6: 9e b7 in r25, 0x3e ; 62
26c8: 48 96 adiw r24, 0x18 ; 24
26ca: 0d ce rjmp .-998 ; 0x22e6 <Menu+0x1a4>
26cc: 84 e1 ldi r24, 0x14 ; 20
26ce: 80 93 c7 01 sts 0x01C7, r24
26d2: 80 91 06 01 lds r24, 0x0106
26d6: 90 91 07 01 lds r25, 0x0107
26da: 9f 93 push r25
26dc: 8f 93 push r24
26de: 80 eb ldi r24, 0xB0 ; 176
26e0: 92 e0 ldi r25, 0x02 ; 2
26e2: 9f 93 push r25
26e4: 8f 93 push r24
26e6: 11 e0 ldi r17, 0x01 ; 1
26e8: 1f 93 push r17
26ea: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
26ee: 88 e2 ldi r24, 0x28 ; 40
26f0: 80 93 c7 01 sts 0x01C7, r24
26f4: 80 91 1a 02 lds r24, 0x021A
26f8: 99 27 eor r25, r25
26fa: 9f 93 push r25
26fc: 8f 93 push r24
26fe: 81 ea ldi r24, 0xA1 ; 161
2700: 92 e0 ldi r25, 0x02 ; 2
2702: 9f 93 push r25
2704: 8f 93 push r24
2706: 1f 93 push r17
2708: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
270c: 8d b7 in r24, 0x3d ; 61
270e: 9e b7 in r25, 0x3e ; 62
2710: 0a 96 adiw r24, 0x0a ; 10
2712: e9 cd rjmp .-1070 ; 0x22e6 <Menu+0x1a4>
2714: 10 92 c7 01 sts 0x01C7, r1
2718: 82 e9 ldi r24, 0x92 ; 146
271a: 92 e0 ldi r25, 0x02 ; 2
271c: 9f 93 push r25
271e: 8f 93 push r24
2720: 11 e0 ldi r17, 0x01 ; 1
2722: 1f 93 push r17
2724: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2728: 84 e1 ldi r24, 0x14 ; 20
272a: 80 93 c7 01 sts 0x01C7, r24
272e: 80 91 0e 02 lds r24, 0x020E
2732: 90 91 0f 02 lds r25, 0x020F
2736: 9f 93 push r25
2738: 8f 93 push r24
273a: 83 e8 ldi r24, 0x83 ; 131
273c: 92 e0 ldi r25, 0x02 ; 2
273e: 9f 93 push r25
2740: 8f 93 push r24
2742: 1f 93 push r17
2744: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2748: 88 e2 ldi r24, 0x28 ; 40
274a: 80 93 c7 01 sts 0x01C7, r24
274e: 80 91 0a 02 lds r24, 0x020A
2752: 90 91 0b 02 lds r25, 0x020B
2756: 9f 93 push r25
2758: 8f 93 push r24
275a: 84 e7 ldi r24, 0x74 ; 116
275c: 92 e0 ldi r25, 0x02 ; 2
275e: 9f 93 push r25
2760: 8f 93 push r24
2762: 1f 93 push r17
2764: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2768: 8c e3 ldi r24, 0x3C ; 60
276a: 80 93 c7 01 sts 0x01C7, r24
276e: 80 91 0c 02 lds r24, 0x020C
2772: 90 91 0d 02 lds r25, 0x020D
2776: 9f 93 push r25
2778: 8f 93 push r24
277a: 85 e6 ldi r24, 0x65 ; 101
277c: 92 e0 ldi r25, 0x02 ; 2
277e: b2 c0 rjmp .+356 ; 0x28e4 <Menu+0x7a2>
2780: 10 92 c7 01 sts 0x01C7, r1
2784: 80 91 12 02 lds r24, 0x0212
2788: 90 91 13 02 lds r25, 0x0213
278c: 9f 93 push r25
278e: 8f 93 push r24
2790: 89 e5 ldi r24, 0x59 ; 89
2792: 92 e0 ldi r25, 0x02 ; 2
2794: 9f 93 push r25
2796: 8f 93 push r24
2798: 11 e0 ldi r17, 0x01 ; 1
279a: 1f 93 push r17
279c: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
27a0: 84 e1 ldi r24, 0x14 ; 20
27a2: 80 93 c7 01 sts 0x01C7, r24
27a6: 80 91 14 02 lds r24, 0x0214
27aa: 90 91 15 02 lds r25, 0x0215
27ae: 9f 93 push r25
27b0: 8f 93 push r24
27b2: 8d e4 ldi r24, 0x4D ; 77
27b4: 92 e0 ldi r25, 0x02 ; 2
27b6: 9f 93 push r25
27b8: 8f 93 push r24
27ba: 1f 93 push r17
27bc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
27c0: 88 e2 ldi r24, 0x28 ; 40
27c2: 80 93 c7 01 sts 0x01C7, r24
27c6: 80 91 16 02 lds r24, 0x0216
27ca: 90 91 17 02 lds r25, 0x0217
27ce: 9f 93 push r25
27d0: 8f 93 push r24
27d2: 81 e4 ldi r24, 0x41 ; 65
27d4: 92 e0 ldi r25, 0x02 ; 2
27d6: 9f 93 push r25
27d8: 8f 93 push r24
27da: 1f 93 push r17
27dc: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
27e0: 8c e3 ldi r24, 0x3C ; 60
27e2: 80 93 c7 01 sts 0x01C7, r24
27e6: 80 91 18 02 lds r24, 0x0218
27ea: 90 91 19 02 lds r25, 0x0219
27ee: 9f 93 push r25
27f0: 8f 93 push r24
27f2: 85 e3 ldi r24, 0x35 ; 53
27f4: 92 e0 ldi r25, 0x02 ; 2
27f6: 6f cd rjmp .-1314 ; 0x22d6 <Menu+0x194>
27f8: 10 92 c7 01 sts 0x01C7, r1
27fc: 8d e2 ldi r24, 0x2D ; 45
27fe: 92 e0 ldi r25, 0x02 ; 2
2800: 9f 93 push r25
2802: 8f 93 push r24
2804: 11 e0 ldi r17, 0x01 ; 1
2806: 1f 93 push r17
2808: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
280c: 84 e1 ldi r24, 0x14 ; 20
280e: 80 93 c7 01 sts 0x01C7, r24
2812: 80 91 8b 01 lds r24, 0x018B
2816: 99 27 eor r25, r25
2818: 9f 93 push r25
281a: 8f 93 push r24
281c: 8f e1 ldi r24, 0x1F ; 31
281e: 92 e0 ldi r25, 0x02 ; 2
2820: 9f 93 push r25
2822: 8f 93 push r24
2824: 1f 93 push r17
2826: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
282a: 88 e2 ldi r24, 0x28 ; 40
282c: 80 93 c7 01 sts 0x01C7, r24
2830: 80 91 a8 01 lds r24, 0x01A8
2834: 90 91 a9 01 lds r25, 0x01A9
2838: 9f 93 push r25
283a: 8f 93 push r24
283c: 81 e1 ldi r24, 0x11 ; 17
283e: 92 e0 ldi r25, 0x02 ; 2
2840: 9f 93 push r25
2842: 8f 93 push r24
2844: 1f 93 push r17
2846: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
284a: 8c e3 ldi r24, 0x3C ; 60
284c: 80 93 c7 01 sts 0x01C7, r24
2850: 80 91 00 05 lds r24, 0x0500
2854: 99 27 eor r25, r25
2856: 9f 93 push r25
2858: 8f 93 push r24
285a: 80 91 ff 04 lds r24, 0x04FF
285e: 99 27 eor r25, r25
2860: 9f 93 push r25
2862: 8f 93 push r24
2864: 83 e0 ldi r24, 0x03 ; 3
2866: 92 e0 ldi r25, 0x02 ; 2
2868: 9f 93 push r25
286a: 8f 93 push r24
286c: 1f 93 push r17
286e: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2872: 36 cd rjmp .-1428 ; 0x22e0 <Menu+0x19e>
2874: 10 92 c7 01 sts 0x01C7, r1
2878: 88 ef ldi r24, 0xF8 ; 248
287a: 91 e0 ldi r25, 0x01 ; 1
287c: 9f 93 push r25
287e: 8f 93 push r24
2880: 11 e0 ldi r17, 0x01 ; 1
2882: 1f 93 push r17
2884: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
2888: 84 e1 ldi r24, 0x14 ; 20
288a: 80 93 c7 01 sts 0x01C7, r24
288e: 80 91 91 04 lds r24, 0x0491
2892: 99 27 eor r25, r25
2894: 87 fd sbrc r24, 7
2896: 90 95 com r25
2898: 9f 93 push r25
289a: 8f 93 push r24
289c: 89 ee ldi r24, 0xE9 ; 233
289e: 91 e0 ldi r25, 0x01 ; 1
28a0: 9f 93 push r25
28a2: 8f 93 push r24
28a4: 1f 93 push r17
28a6: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
28aa: 88 e2 ldi r24, 0x28 ; 40
28ac: 80 93 c7 01 sts 0x01C7, r24
28b0: 80 91 92 04 lds r24, 0x0492
28b4: 99 27 eor r25, r25
28b6: 87 fd sbrc r24, 7
28b8: 90 95 com r25
28ba: 9f 93 push r25
28bc: 8f 93 push r24
28be: 8a ed ldi r24, 0xDA ; 218
28c0: 91 e0 ldi r25, 0x01 ; 1
28c2: 9f 93 push r25
28c4: 8f 93 push r24
28c6: 1f 93 push r17
28c8: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
28cc: 8c e3 ldi r24, 0x3C ; 60
28ce: 80 93 c7 01 sts 0x01C7, r24
28d2: 80 91 93 04 lds r24, 0x0493
28d6: 99 27 eor r25, r25
28d8: 87 fd sbrc r24, 7
28da: 90 95 com r25
28dc: 9f 93 push r25
28de: 8f 93 push r24
28e0: 8b ec ldi r24, 0xCB ; 203
28e2: 91 e0 ldi r25, 0x01 ; 1
28e4: 9f 93 push r25
28e6: 8f 93 push r24
28e8: 1f 93 push r17
28ea: 0e 94 70 09 call 0x12e0 ; 0x12e0 <_printf_P>
28ee: 8d b7 in r24, 0x3d ; 61
28f0: 9e b7 in r25, 0x3e ; 62
28f2: 42 96 adiw r24, 0x12 ; 18
28f4: f8 cc rjmp .-1552 ; 0x22e6 <Menu+0x1a4>
28f6: 81 50 subi r24, 0x01 ; 1
28f8: 80 93 68 01 sts 0x0168, r24
28fc: 10 92 c9 01 sts 0x01C9, r1
2900: 10 92 c8 01 sts 0x01C8, r1
2904: 1f 91 pop r17
2906: 0f 91 pop r16
2908: ff 90 pop r15
290a: 08 95 ret
 
0000290c <__vector_19>:
290c: 1f 92 push r1
290e: 0f 92 push r0
2910: 0f b6 in r0, 0x3f ; 63
2912: 0f 92 push r0
2914: 11 24 eor r1, r1
2916: 2f 93 push r18
2918: 3f 93 push r19
291a: 4f 93 push r20
291c: 8f 93 push r24
291e: 9f 93 push r25
2920: 80 91 94 04 lds r24, 0x0494
2924: 84 30 cpi r24, 0x04 ; 4
2926: 21 f0 breq .+8 ; 0x2930 <__vector_19+0x24>
2928: 88 30 cpi r24, 0x08 ; 8
292a: 09 f0 breq .+2 ; 0x292e <__vector_19+0x22>
292c: 95 c0 rjmp .+298 ; 0x2a58 <__vector_19+0x14c>
292e: 25 c0 rjmp .+74 ; 0x297a <__vector_19+0x6e>
2930: 80 91 97 04 lds r24, 0x0497
2934: 80 31 cpi r24, 0x10 ; 16
2936: 49 f4 brne .+18 ; 0x294a <__vector_19+0x3e>
2938: 8e b5 in r24, 0x2e ; 46
293a: 99 27 eor r25, r25
293c: 98 2f mov r25, r24
293e: 88 27 eor r24, r24
2940: 90 93 99 04 sts 0x0499, r25
2944: 80 93 98 04 sts 0x0498, r24
2948: 13 c0 rjmp .+38 ; 0x2970 <__vector_19+0x64>
294a: 80 32 cpi r24, 0x20 ; 32
294c: 49 f4 brne .+18 ; 0x2960 <__vector_19+0x54>
294e: 8e b5 in r24, 0x2e ; 46
2950: 99 27 eor r25, r25
2952: 98 2f mov r25, r24
2954: 88 27 eor r24, r24
2956: 90 93 9d 04 sts 0x049D, r25
295a: 80 93 9c 04 sts 0x049C, r24
295e: 08 c0 rjmp .+16 ; 0x2970 <__vector_19+0x64>
2960: 8e b5 in r24, 0x2e ; 46
2962: 99 27 eor r25, r25
2964: 98 2f mov r25, r24
2966: 88 27 eor r24, r24
2968: 90 93 a1 04 sts 0x04A1, r25
296c: 80 93 a0 04 sts 0x04A0, r24
2970: 1e bc out 0x2e, r1 ; 46
2972: 88 e0 ldi r24, 0x08 ; 8
2974: 80 93 94 04 sts 0x0494, r24
2978: 6f c0 rjmp .+222 ; 0x2a58 <__vector_19+0x14c>
297a: 80 91 97 04 lds r24, 0x0497
297e: 80 31 cpi r24, 0x10 ; 16
2980: 11 f5 brne .+68 ; 0x29c6 <__vector_19+0xba>
2982: 8e b5 in r24, 0x2e ; 46
2984: 28 2f mov r18, r24
2986: 33 27 eor r19, r19
2988: 80 91 98 04 lds r24, 0x0498
298c: 90 91 99 04 lds r25, 0x0499
2990: 28 2b or r18, r24
2992: 39 2b or r19, r25
2994: 30 93 99 04 sts 0x0499, r19
2998: 20 93 98 04 sts 0x0498, r18
299c: c9 01 movw r24, r18
299e: 8d 50 subi r24, 0x0D ; 13
29a0: 9e 4f sbci r25, 0xFE ; 254
29a2: 87 5e subi r24, 0xE7 ; 231
29a4: 93 40 sbci r25, 0x03 ; 3
29a6: 28 f4 brcc .+10 ; 0x29b2 <__vector_19+0xa6>
29a8: 30 93 9b 04 sts 0x049B, r19
29ac: 20 93 9a 04 sts 0x049A, r18
29b0: 08 c0 rjmp .+16 ; 0x29c2 <__vector_19+0xb6>
29b2: 80 91 9a 04 lds r24, 0x049A
29b6: 90 91 9b 04 lds r25, 0x049B
29ba: 90 93 99 04 sts 0x0499, r25
29be: 80 93 98 04 sts 0x0498, r24
29c2: 80 e2 ldi r24, 0x20 ; 32
29c4: 45 c0 rjmp .+138 ; 0x2a50 <__vector_19+0x144>
29c6: 80 32 cpi r24, 0x20 ; 32
29c8: 11 f5 brne .+68 ; 0x2a0e <__vector_19+0x102>
29ca: 8e b5 in r24, 0x2e ; 46
29cc: 28 2f mov r18, r24
29ce: 33 27 eor r19, r19
29d0: 80 91 9c 04 lds r24, 0x049C
29d4: 90 91 9d 04 lds r25, 0x049D
29d8: 28 2b or r18, r24
29da: 39 2b or r19, r25
29dc: 30 93 9d 04 sts 0x049D, r19
29e0: 20 93 9c 04 sts 0x049C, r18
29e4: c9 01 movw r24, r18
29e6: 8d 50 subi r24, 0x0D ; 13
29e8: 9e 4f sbci r25, 0xFE ; 254
29ea: 87 5e subi r24, 0xE7 ; 231
29ec: 93 40 sbci r25, 0x03 ; 3
29ee: 28 f4 brcc .+10 ; 0x29fa <__vector_19+0xee>
29f0: 30 93 9f 04 sts 0x049F, r19
29f4: 20 93 9e 04 sts 0x049E, r18
29f8: 08 c0 rjmp .+16 ; 0x2a0a <__vector_19+0xfe>
29fa: 80 91 9e 04 lds r24, 0x049E
29fe: 90 91 9f 04 lds r25, 0x049F
2a02: 90 93 9d 04 sts 0x049D, r25
2a06: 80 93 9c 04 sts 0x049C, r24
2a0a: 80 e4 ldi r24, 0x40 ; 64
2a0c: 21 c0 rjmp .+66 ; 0x2a50 <__vector_19+0x144>
2a0e: 8e b5 in r24, 0x2e ; 46
2a10: 28 2f mov r18, r24
2a12: 33 27 eor r19, r19
2a14: 80 91 a0 04 lds r24, 0x04A0
2a18: 90 91 a1 04 lds r25, 0x04A1
2a1c: 28 2b or r18, r24
2a1e: 39 2b or r19, r25
2a20: 30 93 a1 04 sts 0x04A1, r19
2a24: 20 93 a0 04 sts 0x04A0, r18
2a28: c9 01 movw r24, r18
2a2a: 8d 50 subi r24, 0x0D ; 13
2a2c: 9e 4f sbci r25, 0xFE ; 254
2a2e: 87 5e subi r24, 0xE7 ; 231
2a30: 93 40 sbci r25, 0x03 ; 3
2a32: 28 f4 brcc .+10 ; 0x2a3e <__vector_19+0x132>
2a34: 30 93 a3 04 sts 0x04A3, r19
2a38: 20 93 a2 04 sts 0x04A2, r18
2a3c: 08 c0 rjmp .+16 ; 0x2a4e <__vector_19+0x142>
2a3e: 80 91 a2 04 lds r24, 0x04A2
2a42: 90 91 a3 04 lds r25, 0x04A3
2a46: 90 93 a1 04 sts 0x04A1, r25
2a4a: 80 93 a0 04 sts 0x04A0, r24
2a4e: 80 e1 ldi r24, 0x10 ; 16
2a50: 80 93 97 04 sts 0x0497, r24
2a54: 10 92 94 04 sts 0x0494, r1
2a58: 9f 91 pop r25
2a5a: 8f 91 pop r24
2a5c: 4f 91 pop r20
2a5e: 3f 91 pop r19
2a60: 2f 91 pop r18
2a62: 0f 90 pop r0
2a64: 0f be out 0x3f, r0 ; 63
2a66: 0f 90 pop r0
2a68: 1f 90 pop r1
2a6a: 18 95 reti
 
00002a6c <MM3_heading>:
2a6c: a0 e1 ldi r26, 0x10 ; 16
2a6e: b0 e0 ldi r27, 0x00 ; 0
2a70: ec e3 ldi r30, 0x3C ; 60
2a72: f5 e1 ldi r31, 0x15 ; 21
2a74: 0c 94 bb 2e jmp 0x5d76 ; 0x5d76 <__prologue_saves__>
2a78: 60 91 da 01 lds r22, 0x01DA
2a7c: 70 91 db 01 lds r23, 0x01DB
2a80: 80 91 dc 01 lds r24, 0x01DC
2a84: 90 91 dd 01 lds r25, 0x01DD
2a88: 20 91 f9 04 lds r18, 0x04F9
2a8c: 33 27 eor r19, r19
2a8e: e3 e0 ldi r30, 0x03 ; 3
2a90: 22 0f add r18, r18
2a92: 33 1f adc r19, r19
2a94: ea 95 dec r30
2a96: e1 f7 brne .-8 ; 0x2a90 <MM3_heading+0x24>
2a98: 44 27 eor r20, r20
2a9a: 37 fd sbrc r19, 7
2a9c: 40 95 com r20
2a9e: 54 2f mov r21, r20
2aa0: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
2aa4: 79 01 movw r14, r18
2aa6: 8a 01 movw r16, r20
2aa8: f0 94 com r15
2aaa: e1 94 neg r14
2aac: f1 08 sbc r15, r1
2aae: f3 94 inc r15
2ab0: f0 92 a5 04 sts 0x04A5, r15
2ab4: e0 92 a4 04 sts 0x04A4, r14
2ab8: 60 91 e2 01 lds r22, 0x01E2
2abc: 70 91 e3 01 lds r23, 0x01E3
2ac0: 80 91 e4 01 lds r24, 0x01E4
2ac4: 90 91 e5 01 lds r25, 0x01E5
2ac8: 20 91 fa 04 lds r18, 0x04FA
2acc: 33 27 eor r19, r19
2ace: 53 e0 ldi r21, 0x03 ; 3
2ad0: 22 0f add r18, r18
2ad2: 33 1f adc r19, r19
2ad4: 5a 95 dec r21
2ad6: e1 f7 brne .-8 ; 0x2ad0 <MM3_heading+0x64>
2ad8: 44 27 eor r20, r20
2ada: 37 fd sbrc r19, 7
2adc: 40 95 com r20
2ade: 54 2f mov r21, r20
2ae0: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
2ae4: 30 95 com r19
2ae6: 21 95 neg r18
2ae8: 3f 4f sbci r19, 0xFF ; 255
2aea: 30 93 a7 04 sts 0x04A7, r19
2aee: 20 93 a6 04 sts 0x04A6, r18
2af2: c7 01 movw r24, r14
2af4: 0e 94 b6 17 call 0x2f6c ; 0x2f6c <sin_f>
2af8: 69 87 std Y+9, r22 ; 0x09
2afa: 7a 87 std Y+10, r23 ; 0x0a
2afc: 8b 87 std Y+11, r24 ; 0x0b
2afe: 9c 87 std Y+12, r25 ; 0x0c
2b00: 80 91 a4 04 lds r24, 0x04A4
2b04: 90 91 a5 04 lds r25, 0x04A5
2b08: 0e 94 1a 18 call 0x3034 ; 0x3034 <cos_f>
2b0c: 5b 01 movw r10, r22
2b0e: 6c 01 movw r12, r24
2b10: 80 91 a6 04 lds r24, 0x04A6
2b14: 90 91 a7 04 lds r25, 0x04A7
2b18: 0e 94 b6 17 call 0x2f6c ; 0x2f6c <sin_f>
2b1c: 6d 83 std Y+5, r22 ; 0x05
2b1e: 7e 83 std Y+6, r23 ; 0x06
2b20: 8f 83 std Y+7, r24 ; 0x07
2b22: 98 87 std Y+8, r25 ; 0x08
2b24: 80 91 a6 04 lds r24, 0x04A6
2b28: 90 91 a7 04 lds r25, 0x04A7
2b2c: 0e 94 1a 18 call 0x3034 ; 0x3034 <cos_f>
2b30: 69 83 std Y+1, r22 ; 0x01
2b32: 7a 83 std Y+2, r23 ; 0x02
2b34: 8b 83 std Y+3, r24 ; 0x03
2b36: 9c 83 std Y+4, r25 ; 0x04
2b38: 20 91 92 04 lds r18, 0x0492
2b3c: 33 27 eor r19, r19
2b3e: 27 fd sbrc r18, 7
2b40: 30 95 com r19
2b42: 60 91 9c 04 lds r22, 0x049C
2b46: 70 91 9d 04 lds r23, 0x049D
2b4a: 62 1b sub r22, r18
2b4c: 73 0b sbc r23, r19
2b4e: 88 27 eor r24, r24
2b50: 77 fd sbrc r23, 7
2b52: 80 95 com r24
2b54: 98 2f mov r25, r24
2b56: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
2b5a: 1b 01 movw r2, r22
2b5c: 2c 01 movw r4, r24
2b5e: 20 91 93 04 lds r18, 0x0493
2b62: 33 27 eor r19, r19
2b64: 27 fd sbrc r18, 7
2b66: 30 95 com r19
2b68: 60 91 a0 04 lds r22, 0x04A0
2b6c: 70 91 a1 04 lds r23, 0x04A1
2b70: 62 1b sub r22, r18
2b72: 73 0b sbc r23, r19
2b74: 88 27 eor r24, r24
2b76: 77 fd sbrc r23, 7
2b78: 80 95 com r24
2b7a: 98 2f mov r25, r24
2b7c: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
2b80: 3b 01 movw r6, r22
2b82: 4c 01 movw r8, r24
2b84: a2 01 movw r20, r4
2b86: 91 01 movw r18, r2
2b88: 69 81 ldd r22, Y+1 ; 0x01
2b8a: 7a 81 ldd r23, Y+2 ; 0x02
2b8c: 8b 81 ldd r24, Y+3 ; 0x03
2b8e: 9c 81 ldd r25, Y+4 ; 0x04
2b90: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2b94: 7b 01 movw r14, r22
2b96: 8c 01 movw r16, r24
2b98: a4 01 movw r20, r8
2b9a: 93 01 movw r18, r6
2b9c: 6d 81 ldd r22, Y+5 ; 0x05
2b9e: 7e 81 ldd r23, Y+6 ; 0x06
2ba0: 8f 81 ldd r24, Y+7 ; 0x07
2ba2: 98 85 ldd r25, Y+8 ; 0x08
2ba4: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2ba8: 9b 01 movw r18, r22
2baa: ac 01 movw r20, r24
2bac: c8 01 movw r24, r16
2bae: b7 01 movw r22, r14
2bb0: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
2bb4: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
2bb8: 6d 87 std Y+13, r22 ; 0x0d
2bba: 7e 87 std Y+14, r23 ; 0x0e
2bbc: 8f 87 std Y+15, r24 ; 0x0f
2bbe: 98 8b std Y+16, r25 ; 0x10
2bc0: 20 91 91 04 lds r18, 0x0491
2bc4: 33 27 eor r19, r19
2bc6: 27 fd sbrc r18, 7
2bc8: 30 95 com r19
2bca: 60 91 98 04 lds r22, 0x0498
2bce: 70 91 99 04 lds r23, 0x0499
2bd2: 62 1b sub r22, r18
2bd4: 73 0b sbc r23, r19
2bd6: 88 27 eor r24, r24
2bd8: 77 fd sbrc r23, 7
2bda: 80 95 com r24
2bdc: 98 2f mov r25, r24
2bde: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
2be2: 9b 01 movw r18, r22
2be4: ac 01 movw r20, r24
2be6: c6 01 movw r24, r12
2be8: b5 01 movw r22, r10
2bea: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2bee: 5b 01 movw r10, r22
2bf0: 6c 01 movw r12, r24
2bf2: a2 01 movw r20, r4
2bf4: 91 01 movw r18, r2
2bf6: 6d 81 ldd r22, Y+5 ; 0x05
2bf8: 7e 81 ldd r23, Y+6 ; 0x06
2bfa: 8f 81 ldd r24, Y+7 ; 0x07
2bfc: 98 85 ldd r25, Y+8 ; 0x08
2bfe: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2c02: 7b 01 movw r14, r22
2c04: 8c 01 movw r16, r24
2c06: a4 01 movw r20, r8
2c08: 93 01 movw r18, r6
2c0a: 69 81 ldd r22, Y+1 ; 0x01
2c0c: 7a 81 ldd r23, Y+2 ; 0x02
2c0e: 8b 81 ldd r24, Y+3 ; 0x03
2c10: 9c 81 ldd r25, Y+4 ; 0x04
2c12: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2c16: 9b 01 movw r18, r22
2c18: ac 01 movw r20, r24
2c1a: c8 01 movw r24, r16
2c1c: b7 01 movw r22, r14
2c1e: 0e 94 d0 2c call 0x59a0 ; 0x59a0 <__subsf3>
2c22: 29 85 ldd r18, Y+9 ; 0x09
2c24: 3a 85 ldd r19, Y+10 ; 0x0a
2c26: 4b 85 ldd r20, Y+11 ; 0x0b
2c28: 5c 85 ldd r21, Y+12 ; 0x0c
2c2a: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2c2e: 9b 01 movw r18, r22
2c30: ac 01 movw r20, r24
2c32: c6 01 movw r24, r12
2c34: b5 01 movw r22, r10
2c36: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
2c3a: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
2c3e: dc 01 movw r26, r24
2c40: cb 01 movw r24, r22
2c42: 6d 85 ldd r22, Y+13 ; 0x0d
2c44: 7e 85 ldd r23, Y+14 ; 0x0e
2c46: 0e 94 fa 16 call 0x2df4 ; 0x2df4 <atan2_i>
2c4a: e2 e1 ldi r30, 0x12 ; 18
2c4c: c0 5f subi r28, 0xF0 ; 240
2c4e: 0c 94 d7 2e jmp 0x5dae ; 0x5dae <__epilogue_restores__>
 
00002c52 <MM3_timer0>:
2c52: 80 91 94 04 lds r24, 0x0494
2c56: 81 30 cpi r24, 0x01 ; 1
2c58: 41 f0 breq .+16 ; 0x2c6a <MM3_timer0+0x18>
2c5a: 81 30 cpi r24, 0x01 ; 1
2c5c: 18 f0 brcs .+6 ; 0x2c64 <MM3_timer0+0x12>
2c5e: 82 30 cpi r24, 0x02 ; 2
2c60: 59 f5 brne .+86 ; 0x2cb8 <MM3_timer0+0x66>
2c62: 1e c0 rjmp .+60 ; 0x2ca0 <MM3_timer0+0x4e>
2c64: 2a 9a sbi 0x05, 2 ; 5
2c66: 81 e0 ldi r24, 0x01 ; 1
2c68: 18 c0 rjmp .+48 ; 0x2c9a <MM3_timer0+0x48>
2c6a: 2a 98 cbi 0x05, 2 ; 5
2c6c: 80 91 97 04 lds r24, 0x0497
2c70: 80 31 cpi r24, 0x10 ; 16
2c72: 11 f4 brne .+4 ; 0x2c78 <MM3_timer0+0x26>
2c74: 81 e3 ldi r24, 0x31 ; 49
2c76: 07 c0 rjmp .+14 ; 0x2c86 <MM3_timer0+0x34>
2c78: 80 32 cpi r24, 0x20 ; 32
2c7a: 11 f4 brne .+4 ; 0x2c80 <MM3_timer0+0x2e>
2c7c: 82 e3 ldi r24, 0x32 ; 50
2c7e: 03 c0 rjmp .+6 ; 0x2c86 <MM3_timer0+0x34>
2c80: 80 34 cpi r24, 0x40 ; 64
2c82: 11 f4 brne .+4 ; 0x2c88 <MM3_timer0+0x36>
2c84: 83 e3 ldi r24, 0x33 ; 51
2c86: 8e bd out 0x2e, r24 ; 46
2c88: 88 e0 ldi r24, 0x08 ; 8
2c8a: 90 e0 ldi r25, 0x00 ; 0
2c8c: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
2c90: 90 93 96 04 sts 0x0496, r25
2c94: 80 93 95 04 sts 0x0495, r24
2c98: 82 e0 ldi r24, 0x02 ; 2
2c9a: 80 93 94 04 sts 0x0494, r24
2c9e: 08 95 ret
2ca0: 80 91 95 04 lds r24, 0x0495
2ca4: 90 91 96 04 lds r25, 0x0496
2ca8: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
2cac: 88 23 and r24, r24
2cae: 21 f0 breq .+8 ; 0x2cb8 <MM3_timer0+0x66>
2cb0: 1e bc out 0x2e, r1 ; 46
2cb2: 84 e0 ldi r24, 0x04 ; 4
2cb4: 80 93 94 04 sts 0x0494, r24
2cb8: 08 95 ret
 
00002cba <calib_MM3>:
2cba: a0 e0 ldi r26, 0x00 ; 0
2cbc: b0 e0 ldi r27, 0x00 ; 0
2cbe: e3 e6 ldi r30, 0x63 ; 99
2cc0: f6 e1 ldi r31, 0x16 ; 22
2cc2: 0c 94 bd 2e jmp 0x5d7a ; 0x5d7a <__prologue_saves__+0x4>
2cc6: ee 24 eor r14, r14
2cc8: ff 24 eor r15, r15
2cca: 00 e0 ldi r16, 0x00 ; 0
2ccc: 10 e0 ldi r17, 0x00 ; 0
2cce: aa 24 eor r10, r10
2cd0: bb 24 eor r11, r11
2cd2: cc 24 eor r12, r12
2cd4: dd 24 eor r13, r13
2cd6: 66 24 eor r6, r6
2cd8: 77 24 eor r7, r7
2cda: 88 24 eor r8, r8
2cdc: 99 24 eor r9, r9
2cde: 82 e3 ldi r24, 0x32 ; 50
2ce0: 48 2e mov r4, r24
2ce2: 55 24 eor r5, r5
2ce4: 80 91 98 04 lds r24, 0x0498
2ce8: 90 91 99 04 lds r25, 0x0499
2cec: 08 17 cp r16, r24
2cee: 19 07 cpc r17, r25
2cf0: 14 f4 brge .+4 ; 0x2cf6 <calib_MM3+0x3c>
2cf2: 8c 01 movw r16, r24
2cf4: 04 c0 rjmp .+8 ; 0x2cfe <calib_MM3+0x44>
2cf6: 8e 15 cp r24, r14
2cf8: 9f 05 cpc r25, r15
2cfa: 0c f4 brge .+2 ; 0x2cfe <calib_MM3+0x44>
2cfc: 7c 01 movw r14, r24
2cfe: 80 91 9c 04 lds r24, 0x049C
2d02: 90 91 9d 04 lds r25, 0x049D
2d06: c8 16 cp r12, r24
2d08: d9 06 cpc r13, r25
2d0a: 14 f4 brge .+4 ; 0x2d10 <calib_MM3+0x56>
2d0c: 6c 01 movw r12, r24
2d0e: 04 c0 rjmp .+8 ; 0x2d18 <calib_MM3+0x5e>
2d10: 8a 15 cp r24, r10
2d12: 9b 05 cpc r25, r11
2d14: 0c f4 brge .+2 ; 0x2d18 <calib_MM3+0x5e>
2d16: 5c 01 movw r10, r24
2d18: 80 91 a0 04 lds r24, 0x04A0
2d1c: 90 91 a1 04 lds r25, 0x04A1
2d20: 88 16 cp r8, r24
2d22: 99 06 cpc r9, r25
2d24: 14 f4 brge .+4 ; 0x2d2a <calib_MM3+0x70>
2d26: 4c 01 movw r8, r24
2d28: 04 c0 rjmp .+8 ; 0x2d32 <calib_MM3+0x78>
2d2a: 86 15 cp r24, r6
2d2c: 97 05 cpc r25, r7
2d2e: 0c f4 brge .+2 ; 0x2d32 <calib_MM3+0x78>
2d30: 3c 01 movw r6, r24
2d32: 55 20 and r5, r5
2d34: 41 f4 brne .+16 ; 0x2d46 <calib_MM3+0x8c>
2d36: 82 e3 ldi r24, 0x32 ; 50
2d38: 90 e0 ldi r25, 0x00 ; 0
2d3a: 90 93 a7 01 sts 0x01A7, r25
2d3e: 80 93 a6 01 sts 0x01A6, r24
2d42: b2 e3 ldi r27, 0x32 ; 50
2d44: 5b 2e mov r5, r27
2d46: 8a e0 ldi r24, 0x0A ; 10
2d48: 90 e0 ldi r25, 0x00 ; 0
2d4a: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
2d4e: ec 01 movw r28, r24
2d50: ce 01 movw r24, r28
2d52: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
2d56: 88 23 and r24, r24
2d58: d9 f3 breq .-10 ; 0x2d50 <calib_MM3+0x96>
2d5a: e0 91 de 04 lds r30, 0x04DE
2d5e: ff 27 eor r31, r31
2d60: ee 0f add r30, r30
2d62: ff 1f adc r31, r31
2d64: e0 55 subi r30, 0x50 ; 80
2d66: fb 4f sbci r31, 0xFB ; 251
2d68: 80 81 ld r24, Z
2d6a: 91 81 ldd r25, Z+1 ; 0x01
2d6c: 84 36 cpi r24, 0x64 ; 100
2d6e: 91 05 cpc r25, r1
2d70: 0c f4 brge .+2 ; 0x2d74 <calib_MM3+0xba>
2d72: 4a 94 dec r4
2d74: 44 20 and r4, r4
2d76: 11 f0 breq .+4 ; 0x2d7c <calib_MM3+0xc2>
2d78: 5a 94 dec r5
2d7a: b4 cf rjmp .-152 ; 0x2ce4 <calib_MM3+0x2a>
2d7c: e1 e9 ldi r30, 0x91 ; 145
2d7e: f4 e0 ldi r31, 0x04 ; 4
2d80: c8 01 movw r24, r16
2d82: 8e 0d add r24, r14
2d84: 9f 1d adc r25, r15
2d86: 62 e0 ldi r22, 0x02 ; 2
2d88: 70 e0 ldi r23, 0x00 ; 0
2d8a: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
2d8e: 60 93 91 04 sts 0x0491, r22
2d92: c6 01 movw r24, r12
2d94: 8a 0d add r24, r10
2d96: 9b 1d adc r25, r11
2d98: 62 e0 ldi r22, 0x02 ; 2
2d9a: 70 e0 ldi r23, 0x00 ; 0
2d9c: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
2da0: 60 93 92 04 sts 0x0492, r22
2da4: c4 01 movw r24, r8
2da6: 86 0d add r24, r6
2da8: 97 1d adc r25, r7
2daa: 62 e0 ldi r22, 0x02 ; 2
2dac: 70 e0 ldi r23, 0x00 ; 0
2dae: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
2db2: 60 93 93 04 sts 0x0493, r22
2db6: 83 e0 ldi r24, 0x03 ; 3
2db8: a5 ef ldi r26, 0xF5 ; 245
2dba: b1 e0 ldi r27, 0x01 ; 1
2dbc: 18 2e mov r1, r24
2dbe: 0e 94 11 2f call 0x5e22 ; 0x5e22 <__eeprom_write_block_1F2021>
2dc2: e0 e1 ldi r30, 0x10 ; 16
2dc4: cd b7 in r28, 0x3d ; 61
2dc6: de b7 in r29, 0x3e ; 62
2dc8: 0c 94 d9 2e jmp 0x5db2 ; 0x5db2 <__epilogue_restores__+0x4>
 
00002dcc <MM3_init>:
2dcc: 83 ed ldi r24, 0xD3 ; 211
2dce: 8c bd out 0x2c, r24 ; 44
2dd0: 84 b1 in r24, 0x04 ; 4
2dd2: 84 6a ori r24, 0xA4 ; 164
2dd4: 84 b9 out 0x04, r24 ; 4
2dd6: 5b 98 cbi 0x0b, 3 ; 11
2dd8: 80 e1 ldi r24, 0x10 ; 16
2dda: 80 93 97 04 sts 0x0497, r24
2dde: 10 92 94 04 sts 0x0494, r1
2de2: 83 e0 ldi r24, 0x03 ; 3
2de4: e1 e9 ldi r30, 0x91 ; 145
2de6: f4 e0 ldi r31, 0x04 ; 4
2de8: a5 ef ldi r26, 0xF5 ; 245
2dea: b1 e0 ldi r27, 0x01 ; 1
2dec: 18 2e mov r1, r24
2dee: 0e 94 00 2f call 0x5e00 ; 0x5e00 <__eeprom_read_block_1F2021>
2df2: 08 95 ret
 
00002df4 <atan2_i>:
2df4: a0 e0 ldi r26, 0x00 ; 0
2df6: b0 e0 ldi r27, 0x00 ; 0
2df8: e0 e0 ldi r30, 0x00 ; 0
2dfa: f7 e1 ldi r31, 0x17 ; 23
2dfc: 0c 94 c4 2e jmp 0x5d88 ; 0x5d88 <__prologue_saves__+0x12>
2e00: ec 01 movw r28, r24
2e02: 6b 01 movw r12, r22
2e04: 89 2b or r24, r25
2e06: 29 f4 brne .+10 ; 0x2e12 <atan2_i+0x1e>
2e08: 67 2b or r22, r23
2e0a: 19 f4 brne .+6 ; 0x2e12 <atan2_i+0x1e>
2e0c: 80 e0 ldi r24, 0x00 ; 0
2e0e: 90 e0 ldi r25, 0x00 ; 0
2e10: 9e c0 rjmp .+316 ; 0x2f4e <atan2_i+0x15a>
2e12: d7 fc sbrc r13, 7
2e14: 03 c0 rjmp .+6 ; 0x2e1c <atan2_i+0x28>
2e16: 91 e0 ldi r25, 0x01 ; 1
2e18: b9 2e mov r11, r25
2e1a: 02 c0 rjmp .+4 ; 0x2e20 <atan2_i+0x2c>
2e1c: 8f ef ldi r24, 0xFF ; 255
2e1e: b8 2e mov r11, r24
2e20: 20 97 sbiw r28, 0x00 ; 0
2e22: 31 f4 brne .+12 ; 0x2e30 <atan2_i+0x3c>
2e24: 8a e5 ldi r24, 0x5A ; 90
2e26: 2b 2d mov r18, r11
2e28: 28 02 muls r18, r24
2e2a: c0 01 movw r24, r0
2e2c: 11 24 eor r1, r1
2e2e: 8f c0 rjmp .+286 ; 0x2f4e <atan2_i+0x15a>
2e30: b6 01 movw r22, r12
2e32: 88 27 eor r24, r24
2e34: 77 fd sbrc r23, 7
2e36: 80 95 com r24
2e38: 98 2f mov r25, r24
2e3a: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
2e3e: 7b 01 movw r14, r22
2e40: 8c 01 movw r16, r24
2e42: be 01 movw r22, r28
2e44: 88 27 eor r24, r24
2e46: 77 fd sbrc r23, 7
2e48: 80 95 com r24
2e4a: 98 2f mov r25, r24
2e4c: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
2e50: 9b 01 movw r18, r22
2e52: ac 01 movw r20, r24
2e54: c8 01 movw r24, r16
2e56: b7 01 movw r22, r14
2e58: 0e 94 13 2d call 0x5a26 ; 0x5a26 <__divsf3>
2e5c: 20 e0 ldi r18, 0x00 ; 0
2e5e: 30 e0 ldi r19, 0x00 ; 0
2e60: 48 e4 ldi r20, 0x48 ; 72
2e62: 52 e4 ldi r21, 0x42 ; 66
2e64: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
2e68: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
2e6c: fb 01 movw r30, r22
2e6e: 77 ff sbrs r23, 7
2e70: 03 c0 rjmp .+6 ; 0x2e78 <atan2_i+0x84>
2e72: f0 95 com r31
2e74: e1 95 neg r30
2e76: ff 4f sbci r31, 0xFF ; 255
2e78: 31 e0 ldi r19, 0x01 ; 1
2e7a: ee 30 cpi r30, 0x0E ; 14
2e7c: f3 07 cpc r31, r19
2e7e: 34 f4 brge .+12 ; 0x2e8c <atan2_i+0x98>
2e80: e9 58 subi r30, 0x89 ; 137
2e82: fb 4f sbci r31, 0xFB ; 251
2e84: 84 91 lpm r24, Z
2e86: 68 2f mov r22, r24
2e88: 77 27 eor r23, r23
2e8a: 47 c0 rjmp .+142 ; 0x2f1a <atan2_i+0x126>
2e8c: 86 e1 ldi r24, 0x16 ; 22
2e8e: e7 37 cpi r30, 0x77 ; 119
2e90: f8 07 cpc r31, r24
2e92: 1c f0 brlt .+6 ; 0x2e9a <atan2_i+0xa6>
2e94: 6a e5 ldi r22, 0x5A ; 90
2e96: 70 e0 ldi r23, 0x00 ; 0
2e98: 40 c0 rjmp .+128 ; 0x2f1a <atan2_i+0x126>
2e9a: 27 e0 ldi r18, 0x07 ; 7
2e9c: e6 37 cpi r30, 0x76 ; 118
2e9e: f2 07 cpc r31, r18
2ea0: 1c f0 brlt .+6 ; 0x2ea8 <atan2_i+0xb4>
2ea2: 69 e5 ldi r22, 0x59 ; 89
2ea4: 70 e0 ldi r23, 0x00 ; 0
2ea6: 39 c0 rjmp .+114 ; 0x2f1a <atan2_i+0x126>
2ea8: 34 e0 ldi r19, 0x04 ; 4
2eaa: ee 37 cpi r30, 0x7E ; 126
2eac: f3 07 cpc r31, r19
2eae: 1c f0 brlt .+6 ; 0x2eb6 <atan2_i+0xc2>
2eb0: 68 e5 ldi r22, 0x58 ; 88
2eb2: 70 e0 ldi r23, 0x00 ; 0
2eb4: 32 c0 rjmp .+100 ; 0x2f1a <atan2_i+0x126>
2eb6: 83 e0 ldi r24, 0x03 ; 3
2eb8: e4 33 cpi r30, 0x34 ; 52
2eba: f8 07 cpc r31, r24
2ebc: 1c f0 brlt .+6 ; 0x2ec4 <atan2_i+0xd0>
2ebe: 67 e5 ldi r22, 0x57 ; 87
2ec0: 70 e0 ldi r23, 0x00 ; 0
2ec2: 2b c0 rjmp .+86 ; 0x2f1a <atan2_i+0x126>
2ec4: 22 e0 ldi r18, 0x02 ; 2
2ec6: e0 38 cpi r30, 0x80 ; 128
2ec8: f2 07 cpc r31, r18
2eca: 1c f0 brlt .+6 ; 0x2ed2 <atan2_i+0xde>
2ecc: 66 e5 ldi r22, 0x56 ; 86
2ece: 70 e0 ldi r23, 0x00 ; 0
2ed0: 24 c0 rjmp .+72 ; 0x2f1a <atan2_i+0x126>
2ed2: 32 e0 ldi r19, 0x02 ; 2
2ed4: e8 30 cpi r30, 0x08 ; 8
2ed6: f3 07 cpc r31, r19
2ed8: 1c f0 brlt .+6 ; 0x2ee0 <atan2_i+0xec>
2eda: 65 e5 ldi r22, 0x55 ; 85
2edc: 70 e0 ldi r23, 0x00 ; 0
2ede: 1d c0 rjmp .+58 ; 0x2f1a <atan2_i+0x126>
2ee0: 81 e0 ldi r24, 0x01 ; 1
2ee2: e8 3b cpi r30, 0xB8 ; 184
2ee4: f8 07 cpc r31, r24
2ee6: 1c f0 brlt .+6 ; 0x2eee <atan2_i+0xfa>
2ee8: 64 e5 ldi r22, 0x54 ; 84
2eea: 70 e0 ldi r23, 0x00 ; 0
2eec: 16 c0 rjmp .+44 ; 0x2f1a <atan2_i+0x126>
2eee: 21 e0 ldi r18, 0x01 ; 1
2ef0: ec 37 cpi r30, 0x7C ; 124
2ef2: f2 07 cpc r31, r18
2ef4: 1c f0 brlt .+6 ; 0x2efc <atan2_i+0x108>
2ef6: 63 e5 ldi r22, 0x53 ; 83
2ef8: 70 e0 ldi r23, 0x00 ; 0
2efa: 0f c0 rjmp .+30 ; 0x2f1a <atan2_i+0x126>
2efc: 31 e0 ldi r19, 0x01 ; 1
2efe: ef 34 cpi r30, 0x4F ; 79
2f00: f3 07 cpc r31, r19
2f02: 1c f0 brlt .+6 ; 0x2f0a <atan2_i+0x116>
2f04: 62 e5 ldi r22, 0x52 ; 82
2f06: 70 e0 ldi r23, 0x00 ; 0
2f08: 08 c0 rjmp .+16 ; 0x2f1a <atan2_i+0x126>
2f0a: eb 52 subi r30, 0x2B ; 43
2f0c: f1 40 sbci r31, 0x01 ; 1
2f0e: 1c f0 brlt .+6 ; 0x2f16 <atan2_i+0x122>
2f10: 61 e5 ldi r22, 0x51 ; 81
2f12: 70 e0 ldi r23, 0x00 ; 0
2f14: 02 c0 rjmp .+4 ; 0x2f1a <atan2_i+0x126>
2f16: 60 e5 ldi r22, 0x50 ; 80
2f18: 70 e0 ldi r23, 0x00 ; 0
2f1a: 1c 16 cp r1, r28
2f1c: 1d 06 cpc r1, r29
2f1e: 6c f4 brge .+26 ; 0x2f3a <atan2_i+0x146>
2f20: 8b 2d mov r24, r11
2f22: 99 27 eor r25, r25
2f24: 87 fd sbrc r24, 7
2f26: 90 95 com r25
2f28: 9c 01 movw r18, r24
2f2a: 62 9f mul r22, r18
2f2c: c0 01 movw r24, r0
2f2e: 63 9f mul r22, r19
2f30: 90 0d add r25, r0
2f32: 72 9f mul r23, r18
2f34: 90 0d add r25, r0
2f36: 11 24 eor r1, r1
2f38: 0a c0 rjmp .+20 ; 0x2f4e <atan2_i+0x15a>
2f3a: d7 fc sbrc r13, 7
2f3c: 05 c0 rjmp .+10 ; 0x2f48 <atan2_i+0x154>
2f3e: 84 eb ldi r24, 0xB4 ; 180
2f40: 90 e0 ldi r25, 0x00 ; 0
2f42: 86 1b sub r24, r22
2f44: 97 0b sbc r25, r23
2f46: 03 c0 rjmp .+6 ; 0x2f4e <atan2_i+0x15a>
2f48: cb 01 movw r24, r22
2f4a: 84 5b subi r24, 0xB4 ; 180
2f4c: 90 40 sbci r25, 0x00 ; 0
2f4e: e9 e0 ldi r30, 0x09 ; 9
2f50: cd b7 in r28, 0x3d ; 61
2f52: de b7 in r29, 0x3e ; 62
2f54: 0c 94 e0 2e jmp 0x5dc0 ; 0x5dc0 <__epilogue_restores__+0x12>
 
00002f58 <pgm_read_float>:
2f58: fc 01 movw r30, r24
2f5a: 25 91 lpm r18, Z+
2f5c: 34 91 lpm r19, Z
2f5e: fc 01 movw r30, r24
2f60: 32 96 adiw r30, 0x02 ; 2
2f62: 45 91 lpm r20, Z+
2f64: 54 91 lpm r21, Z
2f66: ca 01 movw r24, r20
2f68: b9 01 movw r22, r18
2f6a: 08 95 ret
 
00002f6c <sin_f>:
2f6c: a0 e0 ldi r26, 0x00 ; 0
2f6e: b0 e0 ldi r27, 0x00 ; 0
2f70: ec eb ldi r30, 0xBC ; 188
2f72: f7 e1 ldi r31, 0x17 ; 23
2f74: 0c 94 c5 2e jmp 0x5d8a ; 0x5d8a <__prologue_saves__+0x14>
2f78: 9c 01 movw r18, r24
2f7a: 97 fd sbrc r25, 7
2f7c: 04 c0 rjmp .+8 ; 0x2f86 <sin_f+0x1a>
2f7e: 61 e0 ldi r22, 0x01 ; 1
2f80: c6 2e mov r12, r22
2f82: d1 2c mov r13, r1
2f84: 06 c0 rjmp .+12 ; 0x2f92 <sin_f+0x26>
2f86: 30 95 com r19
2f88: 21 95 neg r18
2f8a: 3f 4f sbci r19, 0xFF ; 255
2f8c: 5f ef ldi r21, 0xFF ; 255
2f8e: c5 2e mov r12, r21
2f90: d5 2e mov r13, r21
2f92: c9 01 movw r24, r18
2f94: 8b 55 subi r24, 0x5B ; 91
2f96: 90 40 sbci r25, 0x00 ; 0
2f98: 8a 35 cpi r24, 0x5A ; 90
2f9a: 91 05 cpc r25, r1
2f9c: 30 f4 brcc .+12 ; 0x2faa <sin_f+0x3e>
2f9e: 84 eb ldi r24, 0xB4 ; 180
2fa0: 90 e0 ldi r25, 0x00 ; 0
2fa2: 82 1b sub r24, r18
2fa4: 93 0b sbc r25, r19
2fa6: 9c 01 movw r18, r24
2fa8: 0f c0 rjmp .+30 ; 0x2fc8 <sin_f+0x5c>
2faa: c9 01 movw r24, r18
2fac: 85 5b subi r24, 0xB5 ; 181
2fae: 90 40 sbci r25, 0x00 ; 0
2fb0: 8a 35 cpi r24, 0x5A ; 90
2fb2: 91 05 cpc r25, r1
2fb4: 18 f4 brcc .+6 ; 0x2fbc <sin_f+0x50>
2fb6: 24 5b subi r18, 0xB4 ; 180
2fb8: 30 40 sbci r19, 0x00 ; 0
2fba: 0e c0 rjmp .+28 ; 0x2fd8 <sin_f+0x6c>
2fbc: c9 01 movw r24, r18
2fbe: 8f 50 subi r24, 0x0F ; 15
2fc0: 91 40 sbci r25, 0x01 ; 1
2fc2: 8a 35 cpi r24, 0x5A ; 90
2fc4: 91 05 cpc r25, r1
2fc6: 18 f0 brcs .+6 ; 0x2fce <sin_f+0x62>
2fc8: c1 e0 ldi r28, 0x01 ; 1
2fca: d0 e0 ldi r29, 0x00 ; 0
2fcc: 07 c0 rjmp .+14 ; 0x2fdc <sin_f+0x70>
2fce: 88 e6 ldi r24, 0x68 ; 104
2fd0: 91 e0 ldi r25, 0x01 ; 1
2fd2: 82 1b sub r24, r18
2fd4: 93 0b sbc r25, r19
2fd6: 9c 01 movw r18, r24
2fd8: cf ef ldi r28, 0xFF ; 255
2fda: df ef ldi r29, 0xFF ; 255
2fdc: 22 0f add r18, r18
2fde: 33 1f adc r19, r19
2fe0: 22 0f add r18, r18
2fe2: 33 1f adc r19, r19
2fe4: c9 01 movw r24, r18
2fe6: 8b 57 subi r24, 0x7B ; 123
2fe8: 9a 4f sbci r25, 0xFA ; 250
2fea: 0e 94 ac 17 call 0x2f58 ; 0x2f58 <pgm_read_float>
2fee: 7b 01 movw r14, r22
2ff0: 8c 01 movw r16, r24
2ff2: b6 01 movw r22, r12
2ff4: 88 27 eor r24, r24
2ff6: 77 fd sbrc r23, 7
2ff8: 80 95 com r24
2ffa: 98 2f mov r25, r24
2ffc: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
3000: 9b 01 movw r18, r22
3002: ac 01 movw r20, r24
3004: c8 01 movw r24, r16
3006: b7 01 movw r22, r14
3008: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
300c: 7b 01 movw r14, r22
300e: 8c 01 movw r16, r24
3010: be 01 movw r22, r28
3012: 88 27 eor r24, r24
3014: 77 fd sbrc r23, 7
3016: 80 95 com r24
3018: 98 2f mov r25, r24
301a: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
301e: 9b 01 movw r18, r22
3020: ac 01 movw r20, r24
3022: c8 01 movw r24, r16
3024: b7 01 movw r22, r14
3026: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
302a: e8 e0 ldi r30, 0x08 ; 8
302c: cd b7 in r28, 0x3d ; 61
302e: de b7 in r29, 0x3e ; 62
3030: 0c 94 e1 2e jmp 0x5dc2 ; 0x5dc2 <__epilogue_restores__+0x14>
 
00003034 <cos_f>:
3034: 2a e5 ldi r18, 0x5A ; 90
3036: 30 e0 ldi r19, 0x00 ; 0
3038: 28 1b sub r18, r24
303a: 39 0b sbc r19, r25
303c: c9 01 movw r24, r18
303e: 0e 94 b6 17 call 0x2f6c ; 0x2f6c <sin_f>
3042: 08 95 ret
 
00003044 <asin_i>:
3044: fc 01 movw r30, r24
3046: 97 fd sbrc r25, 7
3048: 02 c0 rjmp .+4 ; 0x304e <asin_i+0xa>
304a: 91 e0 ldi r25, 0x01 ; 1
304c: 04 c0 rjmp .+8 ; 0x3056 <asin_i+0x12>
304e: f0 95 com r31
3050: e1 95 neg r30
3052: ff 4f sbci r31, 0xFF ; 255
3054: 9f ef ldi r25, 0xFF ; 255
3056: ef 50 subi r30, 0x0F ; 15
3058: f9 4f sbci r31, 0xF9 ; 249
305a: 84 91 lpm r24, Z
305c: 98 9f mul r25, r24
305e: 80 2d mov r24, r0
3060: 11 24 eor r1, r1
3062: 99 27 eor r25, r25
3064: 87 fd sbrc r24, 7
3066: 90 95 com r25
3068: 08 95 ret
 
0000306a <i2c_init>:
306a: 10 92 b9 00 sts 0x00B9, r1
306e: 8a e2 ldi r24, 0x2A ; 42
3070: 80 93 b8 00 sts 0x00B8, r24
3074: 08 95 ret
 
00003076 <i2c_start>:
3076: 85 ea ldi r24, 0xA5 ; 165
3078: 80 93 bc 00 sts 0x00BC, r24
307c: 80 e0 ldi r24, 0x00 ; 0
307e: 90 e0 ldi r25, 0x00 ; 0
3080: 08 95 ret
 
00003082 <i2c_stop>:
3082: 84 e9 ldi r24, 0x94 ; 148
3084: 80 93 bc 00 sts 0x00BC, r24
3088: 08 95 ret
 
0000308a <i2c_write_byte>:
308a: 10 92 b9 00 sts 0x00B9, r1
308e: 80 93 bb 00 sts 0x00BB, r24
3092: 85 e8 ldi r24, 0x85 ; 133
3094: 80 93 bc 00 sts 0x00BC, r24
3098: 80 e0 ldi r24, 0x00 ; 0
309a: 90 e0 ldi r25, 0x00 ; 0
309c: 08 95 ret
 
0000309e <__vector_26>:
309e: 1f 92 push r1
30a0: 0f 92 push r0
30a2: 0f b6 in r0, 0x3f ; 63
30a4: 0f 92 push r0
30a6: 11 24 eor r1, r1
30a8: 8f 93 push r24
30aa: 9f 93 push r25
30ac: ef 93 push r30
30ae: ff 93 push r31
30b0: 80 91 ca 01 lds r24, 0x01CA
30b4: 8f 5f subi r24, 0xFF ; 255
30b6: 80 93 ca 01 sts 0x01CA, r24
30ba: 81 50 subi r24, 0x01 ; 1
30bc: e8 2f mov r30, r24
30be: ff 27 eor r31, r31
30c0: e8 30 cpi r30, 0x08 ; 8
30c2: f1 05 cpc r31, r1
30c4: 08 f0 brcs .+2 ; 0x30c8 <__vector_26+0x2a>
30c6: 74 c0 rjmp .+232 ; 0x31b0 <__vector_26+0x112>
30c8: e0 5a subi r30, 0xA0 ; 160
30ca: ff 4f sbci r31, 0xFF ; 255
30cc: 0c 94 f2 2e jmp 0x5de4 ; 0x5de4 <__tablejump2__>
30d0: 80 91 cb 01 lds r24, 0x01CB
30d4: 88 0f add r24, r24
30d6: 8e 5a subi r24, 0xAE ; 174
30d8: 14 c0 rjmp .+40 ; 0x3102 <__vector_26+0x64>
30da: 80 91 cb 01 lds r24, 0x01CB
30de: 8f 5f subi r24, 0xFF ; 255
30e0: 80 93 cb 01 sts 0x01CB, r24
30e4: 81 50 subi r24, 0x01 ; 1
30e6: 81 30 cpi r24, 0x01 ; 1
30e8: 09 f4 brne .+2 ; 0x30ec <__vector_26+0x4e>
30ea: 44 c0 rjmp .+136 ; 0x3174 <__vector_26+0xd6>
30ec: 81 30 cpi r24, 0x01 ; 1
30ee: 38 f0 brcs .+14 ; 0x30fe <__vector_26+0x60>
30f0: 82 30 cpi r24, 0x02 ; 2
30f2: 09 f4 brne .+2 ; 0x30f6 <__vector_26+0x58>
30f4: 42 c0 rjmp .+132 ; 0x317a <__vector_26+0xdc>
30f6: 83 30 cpi r24, 0x03 ; 3
30f8: 09 f0 breq .+2 ; 0x30fc <__vector_26+0x5e>
30fa: 5a c0 rjmp .+180 ; 0x31b0 <__vector_26+0x112>
30fc: 41 c0 rjmp .+130 ; 0x3180 <__vector_26+0xe2>
30fe: 80 91 63 02 lds r24, 0x0263
3102: 10 92 b9 00 sts 0x00B9, r1
3106: 80 93 bb 00 sts 0x00BB, r24
310a: 85 e8 ldi r24, 0x85 ; 133
310c: 80 93 bc 00 sts 0x00BC, r24
3110: 4f c0 rjmp .+158 ; 0x31b0 <__vector_26+0x112>
3112: 84 e9 ldi r24, 0x94 ; 148
3114: 80 93 bc 00 sts 0x00BC, r24
3118: 80 91 cb 01 lds r24, 0x01CB
311c: 84 30 cpi r24, 0x04 ; 4
311e: 18 f4 brcc .+6 ; 0x3126 <__vector_26+0x88>
3120: 10 92 ca 01 sts 0x01CA, r1
3124: 02 c0 rjmp .+4 ; 0x312a <__vector_26+0x8c>
3126: 10 92 cb 01 sts 0x01CB, r1
312a: 85 ea ldi r24, 0xA5 ; 165
312c: ef cf rjmp .-34 ; 0x310c <__vector_26+0x6e>
312e: 80 91 cc 01 lds r24, 0x01CC
3132: 88 0f add r24, r24
3134: 8d 5a subi r24, 0xAD ; 173
3136: e5 cf rjmp .-54 ; 0x3102 <__vector_26+0x64>
3138: 80 91 cc 01 lds r24, 0x01CC
313c: 81 30 cpi r24, 0x01 ; 1
313e: d1 f0 breq .+52 ; 0x3174 <__vector_26+0xd6>
3140: 81 30 cpi r24, 0x01 ; 1
3142: e8 f2 brcs .-70 ; 0x30fe <__vector_26+0x60>
3144: 82 30 cpi r24, 0x02 ; 2
3146: c9 f0 breq .+50 ; 0x317a <__vector_26+0xdc>
3148: 83 30 cpi r24, 0x03 ; 3
314a: 91 f5 brne .+100 ; 0x31b0 <__vector_26+0x112>
314c: 19 c0 rjmp .+50 ; 0x3180 <__vector_26+0xe2>
314e: 80 91 bb 00 lds r24, 0x00BB
3152: e0 91 cc 01 lds r30, 0x01CC
3156: ff 27 eor r31, r31
3158: e8 55 subi r30, 0x58 ; 88
315a: fb 4f sbci r31, 0xFB ; 251
315c: 80 83 st Z, r24
315e: 80 91 cc 01 lds r24, 0x01CC
3162: 81 30 cpi r24, 0x01 ; 1
3164: 39 f0 breq .+14 ; 0x3174 <__vector_26+0xd6>
3166: 81 30 cpi r24, 0x01 ; 1
3168: 50 f2 brcs .-108 ; 0x30fe <__vector_26+0x60>
316a: 82 30 cpi r24, 0x02 ; 2
316c: 31 f0 breq .+12 ; 0x317a <__vector_26+0xdc>
316e: 83 30 cpi r24, 0x03 ; 3
3170: f9 f4 brne .+62 ; 0x31b0 <__vector_26+0x112>
3172: 06 c0 rjmp .+12 ; 0x3180 <__vector_26+0xe2>
3174: 80 91 64 02 lds r24, 0x0264
3178: c4 cf rjmp .-120 ; 0x3102 <__vector_26+0x64>
317a: 80 91 67 02 lds r24, 0x0267
317e: c1 cf rjmp .-126 ; 0x3102 <__vector_26+0x64>
3180: 80 91 69 02 lds r24, 0x0269
3184: be cf rjmp .-132 ; 0x3102 <__vector_26+0x64>
3186: 80 91 cc 01 lds r24, 0x01CC
318a: 90 91 bb 00 lds r25, 0x00BB
318e: e8 2f mov r30, r24
3190: ff 27 eor r31, r31
3192: e8 55 subi r30, 0x58 ; 88
3194: fb 4f sbci r31, 0xFB ; 251
3196: 94 83 std Z+4, r25 ; 0x04
3198: 8f 5f subi r24, 0xFF ; 255
319a: 80 93 cc 01 sts 0x01CC, r24
319e: 84 30 cpi r24, 0x04 ; 4
31a0: 10 f0 brcs .+4 ; 0x31a6 <__vector_26+0x108>
31a2: 10 92 cc 01 sts 0x01CC, r1
31a6: 84 e9 ldi r24, 0x94 ; 148
31a8: 80 93 bc 00 sts 0x00BC, r24
31ac: 10 92 ca 01 sts 0x01CA, r1
31b0: ff 91 pop r31
31b2: ef 91 pop r30
31b4: 9f 91 pop r25
31b6: 8f 91 pop r24
31b8: 0f 90 pop r0
31ba: 0f be out 0x3f, r0 ; 63
31bc: 0f 90 pop r0
31be: 1f 90 pop r1
31c0: 18 95 reti
 
000031c2 <rc_sum_init>:
31c2: 83 ec ldi r24, 0xC3 ; 195
31c4: 80 93 81 00 sts 0x0081, r24
31c8: ef e6 ldi r30, 0x6F ; 111
31ca: f0 e0 ldi r31, 0x00 ; 0
31cc: 80 81 ld r24, Z
31ce: 80 62 ori r24, 0x20 ; 32
31d0: 80 83 st Z, r24
31d2: 10 92 d7 01 sts 0x01D7, r1
31d6: 10 92 d6 01 sts 0x01D6, r1
31da: 10 92 d5 01 sts 0x01D5, r1
31de: 10 92 d4 01 sts 0x01D4, r1
31e2: 10 92 d3 01 sts 0x01D3, r1
31e6: 10 92 d2 01 sts 0x01D2, r1
31ea: 08 95 ret
 
000031ec <__vector_12>:
31ec: 1f 92 push r1
31ee: 0f 92 push r0
31f0: 0f b6 in r0, 0x3f ; 63
31f2: 0f 92 push r0
31f4: 11 24 eor r1, r1
31f6: 0f 93 push r16
31f8: 1f 93 push r17
31fa: 2f 93 push r18
31fc: 3f 93 push r19
31fe: 4f 93 push r20
3200: 5f 93 push r21
3202: 6f 93 push r22
3204: 7f 93 push r23
3206: 8f 93 push r24
3208: 9f 93 push r25
320a: af 93 push r26
320c: bf 93 push r27
320e: cf 93 push r28
3210: df 93 push r29
3212: ef 93 push r30
3214: ff 93 push r31
3216: 20 91 86 00 lds r18, 0x0086
321a: 30 91 87 00 lds r19, 0x0087
321e: 80 91 cf 01 lds r24, 0x01CF
3222: 90 91 d0 01 lds r25, 0x01D0
3226: 28 1b sub r18, r24
3228: 39 0b sbc r19, r25
322a: 80 91 86 00 lds r24, 0x0086
322e: 90 91 87 00 lds r25, 0x0087
3232: 90 93 d0 01 sts 0x01D0, r25
3236: 80 93 cf 01 sts 0x01CF, r24
323a: c9 01 movw r24, r18
323c: 8d 5d subi r24, 0xDD ; 221
323e: 95 40 sbci r25, 0x05 ; 5
3240: 83 56 subi r24, 0x63 ; 99
3242: 99 41 sbci r25, 0x19 ; 25
3244: 48 f4 brcc .+18 ; 0x3258 <__vector_12+0x6c>
3246: 81 e0 ldi r24, 0x01 ; 1
3248: 90 e0 ldi r25, 0x00 ; 0
324a: 90 93 ce 01 sts 0x01CE, r25
324e: 80 93 cd 01 sts 0x01CD, r24
3252: 10 92 69 01 sts 0x0169, r1
3256: 54 c0 rjmp .+168 ; 0x3300 <__vector_12+0x114>
3258: c0 91 cd 01 lds r28, 0x01CD
325c: d0 91 ce 01 lds r29, 0x01CE
3260: ca 30 cpi r28, 0x0A ; 10
3262: d1 05 cpc r29, r1
3264: 0c f0 brlt .+2 ; 0x3268 <__vector_12+0x7c>
3266: 4c c0 rjmp .+152 ; 0x3300 <__vector_12+0x114>
3268: c9 01 movw r24, r18
326a: 8b 5f subi r24, 0xFB ; 251
326c: 90 40 sbci r25, 0x00 ; 0
326e: 84 5b subi r24, 0xB4 ; 180
3270: 91 40 sbci r25, 0x01 ; 1
3272: 08 f0 brcs .+2 ; 0x3276 <__vector_12+0x8a>
3274: 40 c0 rjmp .+128 ; 0x32f6 <__vector_12+0x10a>
3276: a9 01 movw r20, r18
3278: 42 5d subi r20, 0xD2 ; 210
327a: 51 40 sbci r21, 0x01 ; 1
327c: fe 01 movw r30, r28
327e: ee 0f add r30, r30
3280: ff 1f adc r31, r31
3282: e0 55 subi r30, 0x50 ; 80
3284: fb 4f sbci r31, 0xFB ; 251
3286: 80 81 ld r24, Z
3288: 91 81 ldd r25, Z+1 ; 0x01
328a: fa 01 movw r30, r20
328c: e8 1b sub r30, r24
328e: f9 0b sbc r31, r25
3290: cf 01 movw r24, r30
3292: f7 ff sbrs r31, 7
3294: 03 c0 rjmp .+6 ; 0x329c <__vector_12+0xb0>
3296: 90 95 com r25
3298: 81 95 neg r24
329a: 9f 4f sbci r25, 0xFF ; 255
329c: 06 97 sbiw r24, 0x06 ; 6
329e: 4c f4 brge .+18 ; 0x32b2 <__vector_12+0xc6>
32a0: 80 91 1a 02 lds r24, 0x021A
32a4: 88 3c cpi r24, 0xC8 ; 200
32a6: 28 f4 brcc .+10 ; 0x32b2 <__vector_12+0xc6>
32a8: 80 91 1a 02 lds r24, 0x021A
32ac: 86 5f subi r24, 0xF6 ; 246
32ae: 80 93 1a 02 sts 0x021A, r24
32b2: fe 01 movw r30, r28
32b4: ee 0f add r30, r30
32b6: ff 1f adc r31, r31
32b8: 8f 01 movw r16, r30
32ba: 00 55 subi r16, 0x50 ; 80
32bc: 1b 4f sbci r17, 0xFB ; 251
32be: d8 01 movw r26, r16
32c0: 2d 91 ld r18, X+
32c2: 3c 91 ld r19, X
32c4: c9 01 movw r24, r18
32c6: 88 0f add r24, r24
32c8: 99 1f adc r25, r25
32ca: 82 0f add r24, r18
32cc: 93 1f adc r25, r19
32ce: 84 0f add r24, r20
32d0: 95 1f adc r25, r21
32d2: 64 e0 ldi r22, 0x04 ; 4
32d4: 70 e0 ldi r23, 0x00 ; 0
32d6: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
32da: d8 01 movw r26, r16
32dc: 8d 91 ld r24, X+
32de: 9c 91 ld r25, X
32e0: 11 97 sbiw r26, 0x01 ; 1
32e2: 9b 01 movw r18, r22
32e4: 28 1b sub r18, r24
32e6: 39 0b sbc r19, r25
32e8: ea 53 subi r30, 0x3A ; 58
32ea: fb 4f sbci r31, 0xFB ; 251
32ec: 31 83 std Z+1, r19 ; 0x01
32ee: 20 83 st Z, r18
32f0: 11 96 adiw r26, 0x01 ; 1
32f2: 7c 93 st X, r23
32f4: 6e 93 st -X, r22
32f6: 21 96 adiw r28, 0x01 ; 1
32f8: d0 93 ce 01 sts 0x01CE, r29
32fc: c0 93 cd 01 sts 0x01CD, r28
3300: ff 91 pop r31
3302: ef 91 pop r30
3304: df 91 pop r29
3306: cf 91 pop r28
3308: bf 91 pop r27
330a: af 91 pop r26
330c: 9f 91 pop r25
330e: 8f 91 pop r24
3310: 7f 91 pop r23
3312: 6f 91 pop r22
3314: 5f 91 pop r21
3316: 4f 91 pop r20
3318: 3f 91 pop r19
331a: 2f 91 pop r18
331c: 1f 91 pop r17
331e: 0f 91 pop r16
3320: 0f 90 pop r0
3322: 0f be out 0x3f, r0 ; 63
3324: 0f 90 pop r0
3326: 1f 90 pop r1
3328: 18 95 reti
 
0000332a <Mittelwert>:
332a: af 92 push r10
332c: bf 92 push r11
332e: cf 92 push r12
3330: df 92 push r13
3332: ef 92 push r14
3334: ff 92 push r15
3336: 0f 93 push r16
3338: 1f 93 push r17
333a: 10 92 7a 00 sts 0x007A, r1
333e: 80 91 b9 01 lds r24, 0x01B9
3342: 88 23 and r24, r24
3344: 69 f0 breq .+26 ; 0x3360 <Mittelwert+0x36>
3346: 80 91 ad 01 lds r24, 0x01AD
334a: 90 91 ae 01 lds r25, 0x01AE
334e: 60 91 b9 01 lds r22, 0x01B9
3352: 77 27 eor r23, r23
3354: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
3358: 70 93 19 05 sts 0x0519, r23
335c: 60 93 18 05 sts 0x0518, r22
3360: 80 91 ba 01 lds r24, 0x01BA
3364: 88 23 and r24, r24
3366: 69 f0 breq .+26 ; 0x3382 <Mittelwert+0x58>
3368: 80 91 af 01 lds r24, 0x01AF
336c: 90 91 b0 01 lds r25, 0x01B0
3370: 60 91 ba 01 lds r22, 0x01BA
3374: 77 27 eor r23, r23
3376: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
337a: 70 93 17 05 sts 0x0517, r23
337e: 60 93 16 05 sts 0x0516, r22
3382: 80 91 bb 01 lds r24, 0x01BB
3386: 88 23 and r24, r24
3388: 69 f0 breq .+26 ; 0x33a4 <Mittelwert+0x7a>
338a: 80 91 b1 01 lds r24, 0x01B1
338e: 90 91 b2 01 lds r25, 0x01B2
3392: 60 91 bb 01 lds r22, 0x01BB
3396: 77 27 eor r23, r23
3398: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
339c: 70 93 2d 05 sts 0x052D, r23
33a0: 60 93 2c 05 sts 0x052C, r22
33a4: 80 91 bc 01 lds r24, 0x01BC
33a8: 88 23 and r24, r24
33aa: d9 f1 breq .+118 ; 0x3422 <Mittelwert+0xf8>
33ac: e0 90 29 05 lds r14, 0x0529
33b0: f0 90 2a 05 lds r15, 0x052A
33b4: 60 91 b5 01 lds r22, 0x01B5
33b8: 70 91 b6 01 lds r23, 0x01B6
33bc: 20 91 bc 01 lds r18, 0x01BC
33c0: 00 27 eor r16, r16
33c2: f7 fc sbrc r15, 7
33c4: 00 95 com r16
33c6: 10 2f mov r17, r16
33c8: 57 01 movw r10, r14
33ca: 68 01 movw r12, r16
33cc: 43 e0 ldi r20, 0x03 ; 3
33ce: aa 0c add r10, r10
33d0: bb 1c adc r11, r11
33d2: cc 1c adc r12, r12
33d4: dd 1c adc r13, r13
33d6: 4a 95 dec r20
33d8: d1 f7 brne .-12 ; 0x33ce <Mittelwert+0xa4>
33da: ae 18 sub r10, r14
33dc: bf 08 sbc r11, r15
33de: c0 0a sbc r12, r16
33e0: d1 0a sbc r13, r17
33e2: 88 27 eor r24, r24
33e4: 77 fd sbrc r23, 7
33e6: 80 95 com r24
33e8: 98 2f mov r25, r24
33ea: 34 e0 ldi r19, 0x04 ; 4
33ec: 66 0f add r22, r22
33ee: 77 1f adc r23, r23
33f0: 88 1f adc r24, r24
33f2: 99 1f adc r25, r25
33f4: 3a 95 dec r19
33f6: d1 f7 brne .-12 ; 0x33ec <Mittelwert+0xc2>
33f8: 33 27 eor r19, r19
33fa: 44 27 eor r20, r20
33fc: 55 27 eor r21, r21
33fe: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
3402: a2 0e add r10, r18
3404: b3 1e adc r11, r19
3406: c4 1e adc r12, r20
3408: d5 1e adc r13, r21
340a: c6 01 movw r24, r12
340c: b5 01 movw r22, r10
340e: 28 e0 ldi r18, 0x08 ; 8
3410: 30 e0 ldi r19, 0x00 ; 0
3412: 40 e0 ldi r20, 0x00 ; 0
3414: 50 e0 ldi r21, 0x00 ; 0
3416: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
341a: 30 93 2a 05 sts 0x052A, r19
341e: 20 93 29 05 sts 0x0529, r18
3422: 80 91 bd 01 lds r24, 0x01BD
3426: 88 23 and r24, r24
3428: d9 f1 breq .+118 ; 0x34a0 <Mittelwert+0x176>
342a: e0 90 32 05 lds r14, 0x0532
342e: f0 90 33 05 lds r15, 0x0533
3432: 60 91 b3 01 lds r22, 0x01B3
3436: 70 91 b4 01 lds r23, 0x01B4
343a: 20 91 bd 01 lds r18, 0x01BD
343e: 00 27 eor r16, r16
3440: f7 fc sbrc r15, 7
3442: 00 95 com r16
3444: 10 2f mov r17, r16
3446: 57 01 movw r10, r14
3448: 68 01 movw r12, r16
344a: 83 e0 ldi r24, 0x03 ; 3
344c: aa 0c add r10, r10
344e: bb 1c adc r11, r11
3450: cc 1c adc r12, r12
3452: dd 1c adc r13, r13
3454: 8a 95 dec r24
3456: d1 f7 brne .-12 ; 0x344c <Mittelwert+0x122>
3458: ae 18 sub r10, r14
345a: bf 08 sbc r11, r15
345c: c0 0a sbc r12, r16
345e: d1 0a sbc r13, r17
3460: 88 27 eor r24, r24
3462: 77 fd sbrc r23, 7
3464: 80 95 com r24
3466: 98 2f mov r25, r24
3468: b4 e0 ldi r27, 0x04 ; 4
346a: 66 0f add r22, r22
346c: 77 1f adc r23, r23
346e: 88 1f adc r24, r24
3470: 99 1f adc r25, r25
3472: ba 95 dec r27
3474: d1 f7 brne .-12 ; 0x346a <Mittelwert+0x140>
3476: 33 27 eor r19, r19
3478: 44 27 eor r20, r20
347a: 55 27 eor r21, r21
347c: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
3480: a2 0e add r10, r18
3482: b3 1e adc r11, r19
3484: c4 1e adc r12, r20
3486: d5 1e adc r13, r21
3488: c6 01 movw r24, r12
348a: b5 01 movw r22, r10
348c: 28 e0 ldi r18, 0x08 ; 8
348e: 30 e0 ldi r19, 0x00 ; 0
3490: 40 e0 ldi r20, 0x00 ; 0
3492: 50 e0 ldi r21, 0x00 ; 0
3494: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
3498: 30 93 33 05 sts 0x0533, r19
349c: 20 93 32 05 sts 0x0532, r18
34a0: 80 91 be 01 lds r24, 0x01BE
34a4: 88 23 and r24, r24
34a6: a1 f1 breq .+104 ; 0x3510 <Mittelwert+0x1e6>
34a8: e0 90 1b 05 lds r14, 0x051B
34ac: f0 90 1c 05 lds r15, 0x051C
34b0: 60 91 b7 01 lds r22, 0x01B7
34b4: 70 91 b8 01 lds r23, 0x01B8
34b8: 20 91 be 01 lds r18, 0x01BE
34bc: 00 27 eor r16, r16
34be: f7 fc sbrc r15, 7
34c0: 00 95 com r16
34c2: 10 2f mov r17, r16
34c4: 57 01 movw r10, r14
34c6: 68 01 movw r12, r16
34c8: a3 e0 ldi r26, 0x03 ; 3
34ca: aa 0c add r10, r10
34cc: bb 1c adc r11, r11
34ce: cc 1c adc r12, r12
34d0: dd 1c adc r13, r13
34d2: aa 95 dec r26
34d4: d1 f7 brne .-12 ; 0x34ca <Mittelwert+0x1a0>
34d6: ae 18 sub r10, r14
34d8: bf 08 sbc r11, r15
34da: c0 0a sbc r12, r16
34dc: d1 0a sbc r13, r17
34de: 88 27 eor r24, r24
34e0: 77 fd sbrc r23, 7
34e2: 80 95 com r24
34e4: 98 2f mov r25, r24
34e6: 33 27 eor r19, r19
34e8: 44 27 eor r20, r20
34ea: 55 27 eor r21, r21
34ec: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
34f0: a2 0e add r10, r18
34f2: b3 1e adc r11, r19
34f4: c4 1e adc r12, r20
34f6: d5 1e adc r13, r21
34f8: c6 01 movw r24, r12
34fa: b5 01 movw r22, r10
34fc: 28 e0 ldi r18, 0x08 ; 8
34fe: 30 e0 ldi r19, 0x00 ; 0
3500: 40 e0 ldi r20, 0x00 ; 0
3502: 50 e0 ldi r21, 0x00 ; 0
3504: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
3508: 30 93 1c 05 sts 0x051C, r19
350c: 20 93 1b 05 sts 0x051B, r18
3510: 10 92 ae 01 sts 0x01AE, r1
3514: 10 92 ad 01 sts 0x01AD, r1
3518: 10 92 b9 01 sts 0x01B9, r1
351c: 10 92 b0 01 sts 0x01B0, r1
3520: 10 92 af 01 sts 0x01AF, r1
3524: 10 92 ba 01 sts 0x01BA, r1
3528: 10 92 b2 01 sts 0x01B2, r1
352c: 10 92 b1 01 sts 0x01B1, r1
3530: 10 92 bb 01 sts 0x01BB, r1
3534: 10 92 b4 01 sts 0x01B4, r1
3538: 10 92 b3 01 sts 0x01B3, r1
353c: 10 92 bd 01 sts 0x01BD, r1
3540: 10 92 b6 01 sts 0x01B6, r1
3544: 10 92 b5 01 sts 0x01B5, r1
3548: 10 92 bc 01 sts 0x01BC, r1
354c: 10 92 b8 01 sts 0x01B8, r1
3550: 10 92 b7 01 sts 0x01B7, r1
3554: 10 92 be 01 sts 0x01BE, r1
3558: 80 91 fe 01 lds r24, 0x01FE
355c: 90 91 ff 01 lds r25, 0x01FF
3560: a0 91 00 02 lds r26, 0x0200
3564: b0 91 01 02 lds r27, 0x0201
3568: 80 93 ea 01 sts 0x01EA, r24
356c: 90 93 eb 01 sts 0x01EB, r25
3570: a0 93 ec 01 sts 0x01EC, r26
3574: b0 93 ed 01 sts 0x01ED, r27
3578: 80 91 ee 01 lds r24, 0x01EE
357c: 90 91 ef 01 lds r25, 0x01EF
3580: a0 91 f0 01 lds r26, 0x01F0
3584: b0 91 f1 01 lds r27, 0x01F1
3588: 80 93 da 01 sts 0x01DA, r24
358c: 90 93 db 01 sts 0x01DB, r25
3590: a0 93 dc 01 sts 0x01DC, r26
3594: b0 93 dd 01 sts 0x01DD, r27
3598: 80 91 f6 01 lds r24, 0x01F6
359c: 90 91 f7 01 lds r25, 0x01F7
35a0: a0 91 f8 01 lds r26, 0x01F8
35a4: b0 91 f9 01 lds r27, 0x01F9
35a8: 80 93 e2 01 sts 0x01E2, r24
35ac: 90 93 e3 01 sts 0x01E3, r25
35b0: a0 93 e4 01 sts 0x01E4, r26
35b4: b0 93 e5 01 sts 0x01E5, r27
35b8: 80 91 f2 01 lds r24, 0x01F2
35bc: 90 91 f3 01 lds r25, 0x01F3
35c0: a0 91 f4 01 lds r26, 0x01F4
35c4: b0 91 f5 01 lds r27, 0x01F5
35c8: 80 93 de 01 sts 0x01DE, r24
35cc: 90 93 df 01 sts 0x01DF, r25
35d0: a0 93 e0 01 sts 0x01E0, r26
35d4: b0 93 e1 01 sts 0x01E1, r27
35d8: 80 91 fa 01 lds r24, 0x01FA
35dc: 90 91 fb 01 lds r25, 0x01FB
35e0: a0 91 fc 01 lds r26, 0x01FC
35e4: b0 91 fd 01 lds r27, 0x01FD
35e8: 80 93 e6 01 sts 0x01E6, r24
35ec: 90 93 e7 01 sts 0x01E7, r25
35f0: a0 93 e8 01 sts 0x01E8, r26
35f4: b0 93 e9 01 sts 0x01E9, r27
35f8: 8f ee ldi r24, 0xEF ; 239
35fa: 80 93 7a 00 sts 0x007A, r24
35fe: 80 91 18 05 lds r24, 0x0518
3602: 90 91 19 05 lds r25, 0x0519
3606: 89 3c cpi r24, 0xC9 ; 201
3608: 91 05 cpc r25, r1
360a: 7c f0 brlt .+30 ; 0x362a <Mittelwert+0x300>
360c: 20 91 18 05 lds r18, 0x0518
3610: 30 91 19 05 lds r19, 0x0519
3614: 80 91 18 05 lds r24, 0x0518
3618: 90 91 19 05 lds r25, 0x0519
361c: 88 0f add r24, r24
361e: 99 1f adc r25, r25
3620: 88 0f add r24, r24
3622: 99 1f adc r25, r25
3624: 20 52 subi r18, 0x20 ; 32
3626: 33 40 sbci r19, 0x03 ; 3
3628: 15 c0 rjmp .+42 ; 0x3654 <Mittelwert+0x32a>
362a: 80 91 18 05 lds r24, 0x0518
362e: 90 91 19 05 lds r25, 0x0519
3632: 88 53 subi r24, 0x38 ; 56
3634: 9f 4f sbci r25, 0xFF ; 255
3636: a4 f4 brge .+40 ; 0x3660 <Mittelwert+0x336>
3638: 20 91 18 05 lds r18, 0x0518
363c: 30 91 19 05 lds r19, 0x0519
3640: 80 91 18 05 lds r24, 0x0518
3644: 90 91 19 05 lds r25, 0x0519
3648: 88 0f add r24, r24
364a: 99 1f adc r25, r25
364c: 88 0f add r24, r24
364e: 99 1f adc r25, r25
3650: 20 5e subi r18, 0xE0 ; 224
3652: 3c 4f sbci r19, 0xFC ; 252
3654: 82 0f add r24, r18
3656: 93 1f adc r25, r19
3658: 90 93 19 05 sts 0x0519, r25
365c: 80 93 18 05 sts 0x0518, r24
3660: 80 91 16 05 lds r24, 0x0516
3664: 90 91 17 05 lds r25, 0x0517
3668: 89 3c cpi r24, 0xC9 ; 201
366a: 91 05 cpc r25, r1
366c: 7c f0 brlt .+30 ; 0x368c <Mittelwert+0x362>
366e: 20 91 16 05 lds r18, 0x0516
3672: 30 91 17 05 lds r19, 0x0517
3676: 80 91 16 05 lds r24, 0x0516
367a: 90 91 17 05 lds r25, 0x0517
367e: 88 0f add r24, r24
3680: 99 1f adc r25, r25
3682: 88 0f add r24, r24
3684: 99 1f adc r25, r25
3686: 20 52 subi r18, 0x20 ; 32
3688: 33 40 sbci r19, 0x03 ; 3
368a: 15 c0 rjmp .+42 ; 0x36b6 <Mittelwert+0x38c>
368c: 80 91 16 05 lds r24, 0x0516
3690: 90 91 17 05 lds r25, 0x0517
3694: 88 53 subi r24, 0x38 ; 56
3696: 9f 4f sbci r25, 0xFF ; 255
3698: a4 f4 brge .+40 ; 0x36c2 <Mittelwert+0x398>
369a: 20 91 16 05 lds r18, 0x0516
369e: 30 91 17 05 lds r19, 0x0517
36a2: 80 91 16 05 lds r24, 0x0516
36a6: 90 91 17 05 lds r25, 0x0517
36aa: 88 0f add r24, r24
36ac: 99 1f adc r25, r25
36ae: 88 0f add r24, r24
36b0: 99 1f adc r25, r25
36b2: 20 5e subi r18, 0xE0 ; 224
36b4: 3c 4f sbci r19, 0xFC ; 252
36b6: 82 0f add r24, r18
36b8: 93 1f adc r25, r19
36ba: 90 93 17 05 sts 0x0517, r25
36be: 80 93 16 05 sts 0x0516, r24
36c2: 20 91 12 02 lds r18, 0x0212
36c6: 30 91 13 02 lds r19, 0x0213
36ca: 80 91 e0 04 lds r24, 0x04E0
36ce: e8 2f mov r30, r24
36d0: ff 27 eor r31, r31
36d2: ee 0f add r30, r30
36d4: ff 1f adc r31, r31
36d6: e0 55 subi r30, 0x50 ; 80
36d8: fb 4f sbci r31, 0xFB ; 251
36da: 80 81 ld r24, Z
36dc: 91 81 ldd r25, Z+1 ; 0x01
36de: 82 59 subi r24, 0x92 ; 146
36e0: 9f 4f sbci r25, 0xFF ; 255
36e2: 28 17 cp r18, r24
36e4: 39 07 cpc r19, r25
36e6: 1c f4 brge .+6 ; 0x36ee <Mittelwert+0x3c4>
36e8: 2f 5f subi r18, 0xFF ; 255
36ea: 3f 4f sbci r19, 0xFF ; 255
36ec: 0c c0 rjmp .+24 ; 0x3706 <Mittelwert+0x3dc>
36ee: 80 81 ld r24, Z
36f0: 91 81 ldd r25, Z+1 ; 0x01
36f2: 82 59 subi r24, 0x92 ; 146
36f4: 9f 4f sbci r25, 0xFF ; 255
36f6: 82 17 cp r24, r18
36f8: 93 07 cpc r25, r19
36fa: 4c f4 brge .+18 ; 0x370e <Mittelwert+0x3e4>
36fc: 21 15 cp r18, r1
36fe: 31 05 cpc r19, r1
3700: 31 f0 breq .+12 ; 0x370e <Mittelwert+0x3e4>
3702: 21 50 subi r18, 0x01 ; 1
3704: 30 40 sbci r19, 0x00 ; 0
3706: 30 93 13 02 sts 0x0213, r19
370a: 20 93 12 02 sts 0x0212, r18
370e: 20 91 14 02 lds r18, 0x0214
3712: 30 91 15 02 lds r19, 0x0215
3716: 80 91 e1 04 lds r24, 0x04E1
371a: e8 2f mov r30, r24
371c: ff 27 eor r31, r31
371e: ee 0f add r30, r30
3720: ff 1f adc r31, r31
3722: e0 55 subi r30, 0x50 ; 80
3724: fb 4f sbci r31, 0xFB ; 251
3726: 80 81 ld r24, Z
3728: 91 81 ldd r25, Z+1 ; 0x01
372a: 82 59 subi r24, 0x92 ; 146
372c: 9f 4f sbci r25, 0xFF ; 255
372e: 28 17 cp r18, r24
3730: 39 07 cpc r19, r25
3732: 1c f4 brge .+6 ; 0x373a <Mittelwert+0x410>
3734: 2f 5f subi r18, 0xFF ; 255
3736: 3f 4f sbci r19, 0xFF ; 255
3738: 0c c0 rjmp .+24 ; 0x3752 <Mittelwert+0x428>
373a: 80 81 ld r24, Z
373c: 91 81 ldd r25, Z+1 ; 0x01
373e: 82 59 subi r24, 0x92 ; 146
3740: 9f 4f sbci r25, 0xFF ; 255
3742: 82 17 cp r24, r18
3744: 93 07 cpc r25, r19
3746: 4c f4 brge .+18 ; 0x375a <Mittelwert+0x430>
3748: 21 15 cp r18, r1
374a: 31 05 cpc r19, r1
374c: 31 f0 breq .+12 ; 0x375a <Mittelwert+0x430>
374e: 21 50 subi r18, 0x01 ; 1
3750: 30 40 sbci r19, 0x00 ; 0
3752: 30 93 15 02 sts 0x0215, r19
3756: 20 93 14 02 sts 0x0214, r18
375a: 20 91 16 02 lds r18, 0x0216
375e: 30 91 17 02 lds r19, 0x0217
3762: 80 91 e2 04 lds r24, 0x04E2
3766: e8 2f mov r30, r24
3768: ff 27 eor r31, r31
376a: ee 0f add r30, r30
376c: ff 1f adc r31, r31
376e: e0 55 subi r30, 0x50 ; 80
3770: fb 4f sbci r31, 0xFB ; 251
3772: 80 81 ld r24, Z
3774: 91 81 ldd r25, Z+1 ; 0x01
3776: 82 59 subi r24, 0x92 ; 146
3778: 9f 4f sbci r25, 0xFF ; 255
377a: 28 17 cp r18, r24
377c: 39 07 cpc r19, r25
377e: 1c f4 brge .+6 ; 0x3786 <Mittelwert+0x45c>
3780: 2f 5f subi r18, 0xFF ; 255
3782: 3f 4f sbci r19, 0xFF ; 255
3784: 0c c0 rjmp .+24 ; 0x379e <Mittelwert+0x474>
3786: 80 81 ld r24, Z
3788: 91 81 ldd r25, Z+1 ; 0x01
378a: 82 59 subi r24, 0x92 ; 146
378c: 9f 4f sbci r25, 0xFF ; 255
378e: 82 17 cp r24, r18
3790: 93 07 cpc r25, r19
3792: 4c f4 brge .+18 ; 0x37a6 <Mittelwert+0x47c>
3794: 21 15 cp r18, r1
3796: 31 05 cpc r19, r1
3798: 31 f0 breq .+12 ; 0x37a6 <Mittelwert+0x47c>
379a: 21 50 subi r18, 0x01 ; 1
379c: 30 40 sbci r19, 0x00 ; 0
379e: 30 93 17 02 sts 0x0217, r19
37a2: 20 93 16 02 sts 0x0216, r18
37a6: 20 91 18 02 lds r18, 0x0218
37aa: 30 91 19 02 lds r19, 0x0219
37ae: 80 91 e3 04 lds r24, 0x04E3
37b2: e8 2f mov r30, r24
37b4: ff 27 eor r31, r31
37b6: ee 0f add r30, r30
37b8: ff 1f adc r31, r31
37ba: e0 55 subi r30, 0x50 ; 80
37bc: fb 4f sbci r31, 0xFB ; 251
37be: 80 81 ld r24, Z
37c0: 91 81 ldd r25, Z+1 ; 0x01
37c2: 82 59 subi r24, 0x92 ; 146
37c4: 9f 4f sbci r25, 0xFF ; 255
37c6: 28 17 cp r18, r24
37c8: 39 07 cpc r19, r25
37ca: 1c f4 brge .+6 ; 0x37d2 <Mittelwert+0x4a8>
37cc: 2f 5f subi r18, 0xFF ; 255
37ce: 3f 4f sbci r19, 0xFF ; 255
37d0: 0c c0 rjmp .+24 ; 0x37ea <Mittelwert+0x4c0>
37d2: 80 81 ld r24, Z
37d4: 91 81 ldd r25, Z+1 ; 0x01
37d6: 82 59 subi r24, 0x92 ; 146
37d8: 9f 4f sbci r25, 0xFF ; 255
37da: 82 17 cp r24, r18
37dc: 93 07 cpc r25, r19
37de: 4c f4 brge .+18 ; 0x37f2 <Mittelwert+0x4c8>
37e0: 21 15 cp r18, r1
37e2: 31 05 cpc r19, r1
37e4: 31 f0 breq .+12 ; 0x37f2 <Mittelwert+0x4c8>
37e6: 21 50 subi r18, 0x01 ; 1
37e8: 30 40 sbci r19, 0x00 ; 0
37ea: 30 93 19 02 sts 0x0219, r19
37ee: 20 93 18 02 sts 0x0218, r18
37f2: 80 91 12 02 lds r24, 0x0212
37f6: 90 91 13 02 lds r25, 0x0213
37fa: 97 ff sbrs r25, 7
37fc: 05 c0 rjmp .+10 ; 0x3808 <Mittelwert+0x4de>
37fe: 10 92 13 02 sts 0x0213, r1
3802: 10 92 12 02 sts 0x0212, r1
3806: 0a c0 rjmp .+20 ; 0x381c <Mittelwert+0x4f2>
3808: 8f 3f cpi r24, 0xFF ; 255
380a: 91 05 cpc r25, r1
380c: 39 f0 breq .+14 ; 0x381c <Mittelwert+0x4f2>
380e: 34 f0 brlt .+12 ; 0x381c <Mittelwert+0x4f2>
3810: 8f ef ldi r24, 0xFF ; 255
3812: 90 e0 ldi r25, 0x00 ; 0
3814: 90 93 13 02 sts 0x0213, r25
3818: 80 93 12 02 sts 0x0212, r24
381c: 80 91 14 02 lds r24, 0x0214
3820: 90 91 15 02 lds r25, 0x0215
3824: 97 ff sbrs r25, 7
3826: 05 c0 rjmp .+10 ; 0x3832 <Mittelwert+0x508>
3828: 10 92 15 02 sts 0x0215, r1
382c: 10 92 14 02 sts 0x0214, r1
3830: 0a c0 rjmp .+20 ; 0x3846 <Mittelwert+0x51c>
3832: 8f 3f cpi r24, 0xFF ; 255
3834: 91 05 cpc r25, r1
3836: 39 f0 breq .+14 ; 0x3846 <Mittelwert+0x51c>
3838: 34 f0 brlt .+12 ; 0x3846 <Mittelwert+0x51c>
383a: 8f ef ldi r24, 0xFF ; 255
383c: 90 e0 ldi r25, 0x00 ; 0
383e: 90 93 15 02 sts 0x0215, r25
3842: 80 93 14 02 sts 0x0214, r24
3846: 80 91 16 02 lds r24, 0x0216
384a: 90 91 17 02 lds r25, 0x0217
384e: 97 ff sbrs r25, 7
3850: 05 c0 rjmp .+10 ; 0x385c <Mittelwert+0x532>
3852: 10 92 17 02 sts 0x0217, r1
3856: 10 92 16 02 sts 0x0216, r1
385a: 0a c0 rjmp .+20 ; 0x3870 <Mittelwert+0x546>
385c: 8f 3f cpi r24, 0xFF ; 255
385e: 91 05 cpc r25, r1
3860: 39 f0 breq .+14 ; 0x3870 <Mittelwert+0x546>
3862: 34 f0 brlt .+12 ; 0x3870 <Mittelwert+0x546>
3864: 8f ef ldi r24, 0xFF ; 255
3866: 90 e0 ldi r25, 0x00 ; 0
3868: 90 93 17 02 sts 0x0217, r25
386c: 80 93 16 02 sts 0x0216, r24
3870: 80 91 18 02 lds r24, 0x0218
3874: 90 91 19 02 lds r25, 0x0219
3878: 97 ff sbrs r25, 7
387a: 05 c0 rjmp .+10 ; 0x3886 <Mittelwert+0x55c>
387c: 10 92 19 02 sts 0x0219, r1
3880: 10 92 18 02 sts 0x0218, r1
3884: 0a c0 rjmp .+20 ; 0x389a <Mittelwert+0x570>
3886: 8f 3f cpi r24, 0xFF ; 255
3888: 91 05 cpc r25, r1
388a: 39 f0 breq .+14 ; 0x389a <Mittelwert+0x570>
388c: 34 f0 brlt .+12 ; 0x389a <Mittelwert+0x570>
388e: 8f ef ldi r24, 0xFF ; 255
3890: 90 e0 ldi r25, 0x00 ; 0
3892: 90 93 19 02 sts 0x0219, r25
3896: 80 93 18 02 sts 0x0218, r24
389a: 1f 91 pop r17
389c: 0f 91 pop r16
389e: ff 90 pop r15
38a0: ef 90 pop r14
38a2: df 90 pop r13
38a4: cf 90 pop r12
38a6: bf 90 pop r11
38a8: af 90 pop r10
38aa: 08 95 ret
 
000038ac <CalibrierMittelwert>:
38ac: 10 92 7a 00 sts 0x007A, r1
38b0: 80 91 b9 01 lds r24, 0x01B9
38b4: 88 23 and r24, r24
38b6: 69 f0 breq .+26 ; 0x38d2 <CalibrierMittelwert+0x26>
38b8: 80 91 ad 01 lds r24, 0x01AD
38bc: 90 91 ae 01 lds r25, 0x01AE
38c0: 60 91 b9 01 lds r22, 0x01B9
38c4: 77 27 eor r23, r23
38c6: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
38ca: 70 93 19 05 sts 0x0519, r23
38ce: 60 93 18 05 sts 0x0518, r22
38d2: 80 91 ba 01 lds r24, 0x01BA
38d6: 88 23 and r24, r24
38d8: 69 f0 breq .+26 ; 0x38f4 <CalibrierMittelwert+0x48>
38da: 80 91 af 01 lds r24, 0x01AF
38de: 90 91 b0 01 lds r25, 0x01B0
38e2: 60 91 ba 01 lds r22, 0x01BA
38e6: 77 27 eor r23, r23
38e8: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
38ec: 70 93 17 05 sts 0x0517, r23
38f0: 60 93 16 05 sts 0x0516, r22
38f4: 80 91 bb 01 lds r24, 0x01BB
38f8: 88 23 and r24, r24
38fa: 69 f0 breq .+26 ; 0x3916 <CalibrierMittelwert+0x6a>
38fc: 80 91 b1 01 lds r24, 0x01B1
3900: 90 91 b2 01 lds r25, 0x01B2
3904: 60 91 bb 01 lds r22, 0x01BB
3908: 77 27 eor r23, r23
390a: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
390e: 70 93 2d 05 sts 0x052D, r23
3912: 60 93 2c 05 sts 0x052C, r22
3916: 80 91 bc 01 lds r24, 0x01BC
391a: 88 23 and r24, r24
391c: d1 f0 breq .+52 ; 0x3952 <CalibrierMittelwert+0xa6>
391e: 60 91 b5 01 lds r22, 0x01B5
3922: 70 91 b6 01 lds r23, 0x01B6
3926: 20 91 bc 01 lds r18, 0x01BC
392a: 88 27 eor r24, r24
392c: 77 fd sbrc r23, 7
392e: 80 95 com r24
3930: 98 2f mov r25, r24
3932: 34 e0 ldi r19, 0x04 ; 4
3934: 66 0f add r22, r22
3936: 77 1f adc r23, r23
3938: 88 1f adc r24, r24
393a: 99 1f adc r25, r25
393c: 3a 95 dec r19
393e: d1 f7 brne .-12 ; 0x3934 <CalibrierMittelwert+0x88>
3940: 33 27 eor r19, r19
3942: 44 27 eor r20, r20
3944: 55 27 eor r21, r21
3946: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
394a: 30 93 2a 05 sts 0x052A, r19
394e: 20 93 29 05 sts 0x0529, r18
3952: 80 91 bd 01 lds r24, 0x01BD
3956: 88 23 and r24, r24
3958: d1 f0 breq .+52 ; 0x398e <CalibrierMittelwert+0xe2>
395a: 60 91 b3 01 lds r22, 0x01B3
395e: 70 91 b4 01 lds r23, 0x01B4
3962: 20 91 bd 01 lds r18, 0x01BD
3966: 88 27 eor r24, r24
3968: 77 fd sbrc r23, 7
396a: 80 95 com r24
396c: 98 2f mov r25, r24
396e: b4 e0 ldi r27, 0x04 ; 4
3970: 66 0f add r22, r22
3972: 77 1f adc r23, r23
3974: 88 1f adc r24, r24
3976: 99 1f adc r25, r25
3978: ba 95 dec r27
397a: d1 f7 brne .-12 ; 0x3970 <CalibrierMittelwert+0xc4>
397c: 33 27 eor r19, r19
397e: 44 27 eor r20, r20
3980: 55 27 eor r21, r21
3982: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
3986: 30 93 33 05 sts 0x0533, r19
398a: 20 93 32 05 sts 0x0532, r18
398e: 80 91 be 01 lds r24, 0x01BE
3992: 88 23 and r24, r24
3994: 99 f0 breq .+38 ; 0x39bc <CalibrierMittelwert+0x110>
3996: 60 91 b7 01 lds r22, 0x01B7
399a: 70 91 b8 01 lds r23, 0x01B8
399e: 20 91 be 01 lds r18, 0x01BE
39a2: 88 27 eor r24, r24
39a4: 77 fd sbrc r23, 7
39a6: 80 95 com r24
39a8: 98 2f mov r25, r24
39aa: 33 27 eor r19, r19
39ac: 44 27 eor r20, r20
39ae: 55 27 eor r21, r21
39b0: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
39b4: 30 93 1c 05 sts 0x051C, r19
39b8: 20 93 1b 05 sts 0x051B, r18
39bc: 10 92 ae 01 sts 0x01AE, r1
39c0: 10 92 ad 01 sts 0x01AD, r1
39c4: 10 92 b9 01 sts 0x01B9, r1
39c8: 10 92 b0 01 sts 0x01B0, r1
39cc: 10 92 af 01 sts 0x01AF, r1
39d0: 10 92 ba 01 sts 0x01BA, r1
39d4: 10 92 b2 01 sts 0x01B2, r1
39d8: 10 92 b1 01 sts 0x01B1, r1
39dc: 10 92 bb 01 sts 0x01BB, r1
39e0: 10 92 b4 01 sts 0x01B4, r1
39e4: 10 92 b3 01 sts 0x01B3, r1
39e8: 10 92 bd 01 sts 0x01BD, r1
39ec: 10 92 b6 01 sts 0x01B6, r1
39f0: 10 92 b5 01 sts 0x01B5, r1
39f4: 10 92 bc 01 sts 0x01BC, r1
39f8: 10 92 b8 01 sts 0x01B8, r1
39fc: 10 92 b7 01 sts 0x01B7, r1
3a00: 10 92 be 01 sts 0x01BE, r1
3a04: 8f ee ldi r24, 0xEF ; 239
3a06: 80 93 7a 00 sts 0x007A, r24
3a0a: 20 91 12 02 lds r18, 0x0212
3a0e: 30 91 13 02 lds r19, 0x0213
3a12: 80 91 e0 04 lds r24, 0x04E0
3a16: e8 2f mov r30, r24
3a18: ff 27 eor r31, r31
3a1a: ee 0f add r30, r30
3a1c: ff 1f adc r31, r31
3a1e: e0 55 subi r30, 0x50 ; 80
3a20: fb 4f sbci r31, 0xFB ; 251
3a22: 80 81 ld r24, Z
3a24: 91 81 ldd r25, Z+1 ; 0x01
3a26: 82 59 subi r24, 0x92 ; 146
3a28: 9f 4f sbci r25, 0xFF ; 255
3a2a: 28 17 cp r18, r24
3a2c: 39 07 cpc r19, r25
3a2e: 1c f4 brge .+6 ; 0x3a36 <CalibrierMittelwert+0x18a>
3a30: 2f 5f subi r18, 0xFF ; 255
3a32: 3f 4f sbci r19, 0xFF ; 255
3a34: 0c c0 rjmp .+24 ; 0x3a4e <CalibrierMittelwert+0x1a2>
3a36: 80 81 ld r24, Z
3a38: 91 81 ldd r25, Z+1 ; 0x01
3a3a: 82 59 subi r24, 0x92 ; 146
3a3c: 9f 4f sbci r25, 0xFF ; 255
3a3e: 82 17 cp r24, r18
3a40: 93 07 cpc r25, r19
3a42: 4c f4 brge .+18 ; 0x3a56 <CalibrierMittelwert+0x1aa>
3a44: 21 15 cp r18, r1
3a46: 31 05 cpc r19, r1
3a48: 31 f0 breq .+12 ; 0x3a56 <CalibrierMittelwert+0x1aa>
3a4a: 21 50 subi r18, 0x01 ; 1
3a4c: 30 40 sbci r19, 0x00 ; 0
3a4e: 30 93 13 02 sts 0x0213, r19
3a52: 20 93 12 02 sts 0x0212, r18
3a56: 20 91 14 02 lds r18, 0x0214
3a5a: 30 91 15 02 lds r19, 0x0215
3a5e: 80 91 e1 04 lds r24, 0x04E1
3a62: e8 2f mov r30, r24
3a64: ff 27 eor r31, r31
3a66: ee 0f add r30, r30
3a68: ff 1f adc r31, r31
3a6a: e0 55 subi r30, 0x50 ; 80
3a6c: fb 4f sbci r31, 0xFB ; 251
3a6e: 80 81 ld r24, Z
3a70: 91 81 ldd r25, Z+1 ; 0x01
3a72: 82 59 subi r24, 0x92 ; 146
3a74: 9f 4f sbci r25, 0xFF ; 255
3a76: 28 17 cp r18, r24
3a78: 39 07 cpc r19, r25
3a7a: 1c f4 brge .+6 ; 0x3a82 <CalibrierMittelwert+0x1d6>
3a7c: 2f 5f subi r18, 0xFF ; 255
3a7e: 3f 4f sbci r19, 0xFF ; 255
3a80: 0c c0 rjmp .+24 ; 0x3a9a <CalibrierMittelwert+0x1ee>
3a82: 80 81 ld r24, Z
3a84: 91 81 ldd r25, Z+1 ; 0x01
3a86: 82 59 subi r24, 0x92 ; 146
3a88: 9f 4f sbci r25, 0xFF ; 255
3a8a: 82 17 cp r24, r18
3a8c: 93 07 cpc r25, r19
3a8e: 4c f4 brge .+18 ; 0x3aa2 <CalibrierMittelwert+0x1f6>
3a90: 21 15 cp r18, r1
3a92: 31 05 cpc r19, r1
3a94: 31 f0 breq .+12 ; 0x3aa2 <CalibrierMittelwert+0x1f6>
3a96: 21 50 subi r18, 0x01 ; 1
3a98: 30 40 sbci r19, 0x00 ; 0
3a9a: 30 93 15 02 sts 0x0215, r19
3a9e: 20 93 14 02 sts 0x0214, r18
3aa2: 20 91 16 02 lds r18, 0x0216
3aa6: 30 91 17 02 lds r19, 0x0217
3aaa: 80 91 e2 04 lds r24, 0x04E2
3aae: e8 2f mov r30, r24
3ab0: ff 27 eor r31, r31
3ab2: ee 0f add r30, r30
3ab4: ff 1f adc r31, r31
3ab6: e0 55 subi r30, 0x50 ; 80
3ab8: fb 4f sbci r31, 0xFB ; 251
3aba: 80 81 ld r24, Z
3abc: 91 81 ldd r25, Z+1 ; 0x01
3abe: 82 59 subi r24, 0x92 ; 146
3ac0: 9f 4f sbci r25, 0xFF ; 255
3ac2: 28 17 cp r18, r24
3ac4: 39 07 cpc r19, r25
3ac6: 1c f4 brge .+6 ; 0x3ace <CalibrierMittelwert+0x222>
3ac8: 2f 5f subi r18, 0xFF ; 255
3aca: 3f 4f sbci r19, 0xFF ; 255
3acc: 0c c0 rjmp .+24 ; 0x3ae6 <CalibrierMittelwert+0x23a>
3ace: 80 81 ld r24, Z
3ad0: 91 81 ldd r25, Z+1 ; 0x01
3ad2: 82 59 subi r24, 0x92 ; 146
3ad4: 9f 4f sbci r25, 0xFF ; 255
3ad6: 82 17 cp r24, r18
3ad8: 93 07 cpc r25, r19
3ada: 4c f4 brge .+18 ; 0x3aee <CalibrierMittelwert+0x242>
3adc: 21 15 cp r18, r1
3ade: 31 05 cpc r19, r1
3ae0: 31 f0 breq .+12 ; 0x3aee <CalibrierMittelwert+0x242>
3ae2: 21 50 subi r18, 0x01 ; 1
3ae4: 30 40 sbci r19, 0x00 ; 0
3ae6: 30 93 17 02 sts 0x0217, r19
3aea: 20 93 16 02 sts 0x0216, r18
3aee: 20 91 18 02 lds r18, 0x0218
3af2: 30 91 19 02 lds r19, 0x0219
3af6: 80 91 e3 04 lds r24, 0x04E3
3afa: e8 2f mov r30, r24
3afc: ff 27 eor r31, r31
3afe: ee 0f add r30, r30
3b00: ff 1f adc r31, r31
3b02: e0 55 subi r30, 0x50 ; 80
3b04: fb 4f sbci r31, 0xFB ; 251
3b06: 80 81 ld r24, Z
3b08: 91 81 ldd r25, Z+1 ; 0x01
3b0a: 82 59 subi r24, 0x92 ; 146
3b0c: 9f 4f sbci r25, 0xFF ; 255
3b0e: 28 17 cp r18, r24
3b10: 39 07 cpc r19, r25
3b12: 1c f4 brge .+6 ; 0x3b1a <CalibrierMittelwert+0x26e>
3b14: 2f 5f subi r18, 0xFF ; 255
3b16: 3f 4f sbci r19, 0xFF ; 255
3b18: 0c c0 rjmp .+24 ; 0x3b32 <CalibrierMittelwert+0x286>
3b1a: 80 81 ld r24, Z
3b1c: 91 81 ldd r25, Z+1 ; 0x01
3b1e: 82 59 subi r24, 0x92 ; 146
3b20: 9f 4f sbci r25, 0xFF ; 255
3b22: 82 17 cp r24, r18
3b24: 93 07 cpc r25, r19
3b26: 4c f4 brge .+18 ; 0x3b3a <CalibrierMittelwert+0x28e>
3b28: 21 15 cp r18, r1
3b2a: 31 05 cpc r19, r1
3b2c: 31 f0 breq .+12 ; 0x3b3a <CalibrierMittelwert+0x28e>
3b2e: 21 50 subi r18, 0x01 ; 1
3b30: 30 40 sbci r19, 0x00 ; 0
3b32: 30 93 19 02 sts 0x0219, r19
3b36: 20 93 18 02 sts 0x0218, r18
3b3a: 80 91 12 02 lds r24, 0x0212
3b3e: 90 91 13 02 lds r25, 0x0213
3b42: 97 ff sbrs r25, 7
3b44: 05 c0 rjmp .+10 ; 0x3b50 <CalibrierMittelwert+0x2a4>
3b46: 10 92 13 02 sts 0x0213, r1
3b4a: 10 92 12 02 sts 0x0212, r1
3b4e: 0a c0 rjmp .+20 ; 0x3b64 <CalibrierMittelwert+0x2b8>
3b50: 8f 3f cpi r24, 0xFF ; 255
3b52: 91 05 cpc r25, r1
3b54: 39 f0 breq .+14 ; 0x3b64 <CalibrierMittelwert+0x2b8>
3b56: 34 f0 brlt .+12 ; 0x3b64 <CalibrierMittelwert+0x2b8>
3b58: 8f ef ldi r24, 0xFF ; 255
3b5a: 90 e0 ldi r25, 0x00 ; 0
3b5c: 90 93 13 02 sts 0x0213, r25
3b60: 80 93 12 02 sts 0x0212, r24
3b64: 80 91 14 02 lds r24, 0x0214
3b68: 90 91 15 02 lds r25, 0x0215
3b6c: 97 ff sbrs r25, 7
3b6e: 05 c0 rjmp .+10 ; 0x3b7a <CalibrierMittelwert+0x2ce>
3b70: 10 92 15 02 sts 0x0215, r1
3b74: 10 92 14 02 sts 0x0214, r1
3b78: 0a c0 rjmp .+20 ; 0x3b8e <CalibrierMittelwert+0x2e2>
3b7a: 8f 3f cpi r24, 0xFF ; 255
3b7c: 91 05 cpc r25, r1
3b7e: 39 f0 breq .+14 ; 0x3b8e <CalibrierMittelwert+0x2e2>
3b80: 34 f0 brlt .+12 ; 0x3b8e <CalibrierMittelwert+0x2e2>
3b82: 8f ef ldi r24, 0xFF ; 255
3b84: 90 e0 ldi r25, 0x00 ; 0
3b86: 90 93 15 02 sts 0x0215, r25
3b8a: 80 93 14 02 sts 0x0214, r24
3b8e: 80 91 16 02 lds r24, 0x0216
3b92: 90 91 17 02 lds r25, 0x0217
3b96: 97 ff sbrs r25, 7
3b98: 05 c0 rjmp .+10 ; 0x3ba4 <CalibrierMittelwert+0x2f8>
3b9a: 10 92 17 02 sts 0x0217, r1
3b9e: 10 92 16 02 sts 0x0216, r1
3ba2: 0a c0 rjmp .+20 ; 0x3bb8 <CalibrierMittelwert+0x30c>
3ba4: 8f 3f cpi r24, 0xFF ; 255
3ba6: 91 05 cpc r25, r1
3ba8: 39 f0 breq .+14 ; 0x3bb8 <CalibrierMittelwert+0x30c>
3baa: 34 f0 brlt .+12 ; 0x3bb8 <CalibrierMittelwert+0x30c>
3bac: 8f ef ldi r24, 0xFF ; 255
3bae: 90 e0 ldi r25, 0x00 ; 0
3bb0: 90 93 17 02 sts 0x0217, r25
3bb4: 80 93 16 02 sts 0x0216, r24
3bb8: 80 91 18 02 lds r24, 0x0218
3bbc: 90 91 19 02 lds r25, 0x0219
3bc0: 97 ff sbrs r25, 7
3bc2: 05 c0 rjmp .+10 ; 0x3bce <CalibrierMittelwert+0x322>
3bc4: 10 92 19 02 sts 0x0219, r1
3bc8: 10 92 18 02 sts 0x0218, r1
3bcc: 08 95 ret
3bce: 8f 3f cpi r24, 0xFF ; 255
3bd0: 91 05 cpc r25, r1
3bd2: 39 f0 breq .+14 ; 0x3be2 <CalibrierMittelwert+0x336>
3bd4: 34 f0 brlt .+12 ; 0x3be2 <CalibrierMittelwert+0x336>
3bd6: 8f ef ldi r24, 0xFF ; 255
3bd8: 90 e0 ldi r25, 0x00 ; 0
3bda: 90 93 19 02 sts 0x0219, r25
3bde: 80 93 18 02 sts 0x0218, r24
3be2: 08 95 ret
 
00003be4 <ParameterZuordnung>:
3be4: 1f 93 push r17
3be6: 80 91 e7 04 lds r24, 0x04E7
3bea: 8b 3f cpi r24, 0xFB ; 251
3bec: 98 f0 brcs .+38 ; 0x3c14 <ParameterZuordnung+0x30>
3bee: 8b 3f cpi r24, 0xFB ; 251
3bf0: 19 f4 brne .+6 ; 0x3bf8 <ParameterZuordnung+0x14>
3bf2: 80 91 12 02 lds r24, 0x0212
3bf6: 0e c0 rjmp .+28 ; 0x3c14 <ParameterZuordnung+0x30>
3bf8: 8c 3f cpi r24, 0xFC ; 252
3bfa: 19 f4 brne .+6 ; 0x3c02 <ParameterZuordnung+0x1e>
3bfc: 80 91 14 02 lds r24, 0x0214
3c00: 09 c0 rjmp .+18 ; 0x3c14 <ParameterZuordnung+0x30>
3c02: 8d 3f cpi r24, 0xFD ; 253
3c04: 19 f4 brne .+6 ; 0x3c0c <ParameterZuordnung+0x28>
3c06: 80 91 16 02 lds r24, 0x0216
3c0a: 04 c0 rjmp .+8 ; 0x3c14 <ParameterZuordnung+0x30>
3c0c: 8e 3f cpi r24, 0xFE ; 254
3c0e: 21 f4 brne .+8 ; 0x3c18 <ParameterZuordnung+0x34>
3c10: 80 91 18 02 lds r24, 0x0218
3c14: 80 93 83 01 sts 0x0183, r24
3c18: 80 91 83 01 lds r24, 0x0183
3c1c: 88 23 and r24, r24
3c1e: 19 f4 brne .+6 ; 0x3c26 <ParameterZuordnung+0x42>
3c20: 10 92 83 01 sts 0x0183, r1
3c24: 04 c0 rjmp .+8 ; 0x3c2e <ParameterZuordnung+0x4a>
3c26: 8f 3f cpi r24, 0xFF ; 255
3c28: 11 f4 brne .+4 ; 0x3c2e <ParameterZuordnung+0x4a>
3c2a: 80 93 83 01 sts 0x0183, r24
3c2e: 80 91 e6 04 lds r24, 0x04E6
3c32: 8b 3f cpi r24, 0xFB ; 251
3c34: 98 f0 brcs .+38 ; 0x3c5c <ParameterZuordnung+0x78>
3c36: 8b 3f cpi r24, 0xFB ; 251
3c38: 19 f4 brne .+6 ; 0x3c40 <ParameterZuordnung+0x5c>
3c3a: 80 91 12 02 lds r24, 0x0212
3c3e: 0e c0 rjmp .+28 ; 0x3c5c <ParameterZuordnung+0x78>
3c40: 8c 3f cpi r24, 0xFC ; 252
3c42: 19 f4 brne .+6 ; 0x3c4a <ParameterZuordnung+0x66>
3c44: 80 91 14 02 lds r24, 0x0214
3c48: 09 c0 rjmp .+18 ; 0x3c5c <ParameterZuordnung+0x78>
3c4a: 8d 3f cpi r24, 0xFD ; 253
3c4c: 19 f4 brne .+6 ; 0x3c54 <ParameterZuordnung+0x70>
3c4e: 80 91 16 02 lds r24, 0x0216
3c52: 04 c0 rjmp .+8 ; 0x3c5c <ParameterZuordnung+0x78>
3c54: 8e 3f cpi r24, 0xFE ; 254
3c56: 21 f4 brne .+8 ; 0x3c60 <ParameterZuordnung+0x7c>
3c58: 80 91 18 02 lds r24, 0x0218
3c5c: 80 93 82 01 sts 0x0182, r24
3c60: 80 91 82 01 lds r24, 0x0182
3c64: 88 23 and r24, r24
3c66: 19 f4 brne .+6 ; 0x3c6e <ParameterZuordnung+0x8a>
3c68: 10 92 82 01 sts 0x0182, r1
3c6c: 05 c0 rjmp .+10 ; 0x3c78 <ParameterZuordnung+0x94>
3c6e: 84 36 cpi r24, 0x64 ; 100
3c70: 18 f0 brcs .+6 ; 0x3c78 <ParameterZuordnung+0x94>
3c72: 84 e6 ldi r24, 0x64 ; 100
3c74: 80 93 82 01 sts 0x0182, r24
3c78: 80 91 e8 04 lds r24, 0x04E8
3c7c: 8b 3f cpi r24, 0xFB ; 251
3c7e: 98 f0 brcs .+38 ; 0x3ca6 <ParameterZuordnung+0xc2>
3c80: 8b 3f cpi r24, 0xFB ; 251
3c82: 19 f4 brne .+6 ; 0x3c8a <ParameterZuordnung+0xa6>
3c84: 80 91 12 02 lds r24, 0x0212
3c88: 0e c0 rjmp .+28 ; 0x3ca6 <ParameterZuordnung+0xc2>
3c8a: 8c 3f cpi r24, 0xFC ; 252
3c8c: 19 f4 brne .+6 ; 0x3c94 <ParameterZuordnung+0xb0>
3c8e: 80 91 14 02 lds r24, 0x0214
3c92: 09 c0 rjmp .+18 ; 0x3ca6 <ParameterZuordnung+0xc2>
3c94: 8d 3f cpi r24, 0xFD ; 253
3c96: 19 f4 brne .+6 ; 0x3c9e <ParameterZuordnung+0xba>
3c98: 80 91 16 02 lds r24, 0x0216
3c9c: 04 c0 rjmp .+8 ; 0x3ca6 <ParameterZuordnung+0xc2>
3c9e: 8e 3f cpi r24, 0xFE ; 254
3ca0: 21 f4 brne .+8 ; 0x3caa <ParameterZuordnung+0xc6>
3ca2: 80 91 18 02 lds r24, 0x0218
3ca6: 80 93 84 01 sts 0x0184, r24
3caa: 80 91 84 01 lds r24, 0x0184
3cae: 88 23 and r24, r24
3cb0: 19 f4 brne .+6 ; 0x3cb8 <ParameterZuordnung+0xd4>
3cb2: 10 92 84 01 sts 0x0184, r1
3cb6: 05 c0 rjmp .+10 ; 0x3cc2 <ParameterZuordnung+0xde>
3cb8: 84 36 cpi r24, 0x64 ; 100
3cba: 18 f0 brcs .+6 ; 0x3cc2 <ParameterZuordnung+0xde>
3cbc: 84 e6 ldi r24, 0x64 ; 100
3cbe: 80 93 84 01 sts 0x0184, r24
3cc2: 80 91 ea 04 lds r24, 0x04EA
3cc6: 8b 3f cpi r24, 0xFB ; 251
3cc8: 98 f0 brcs .+38 ; 0x3cf0 <ParameterZuordnung+0x10c>
3cca: 8b 3f cpi r24, 0xFB ; 251
3ccc: 19 f4 brne .+6 ; 0x3cd4 <ParameterZuordnung+0xf0>
3cce: 80 91 12 02 lds r24, 0x0212
3cd2: 0e c0 rjmp .+28 ; 0x3cf0 <ParameterZuordnung+0x10c>
3cd4: 8c 3f cpi r24, 0xFC ; 252
3cd6: 19 f4 brne .+6 ; 0x3cde <ParameterZuordnung+0xfa>
3cd8: 80 91 14 02 lds r24, 0x0214
3cdc: 09 c0 rjmp .+18 ; 0x3cf0 <ParameterZuordnung+0x10c>
3cde: 8d 3f cpi r24, 0xFD ; 253
3ce0: 19 f4 brne .+6 ; 0x3ce8 <ParameterZuordnung+0x104>
3ce2: 80 91 16 02 lds r24, 0x0216
3ce6: 04 c0 rjmp .+8 ; 0x3cf0 <ParameterZuordnung+0x10c>
3ce8: 8e 3f cpi r24, 0xFE ; 254
3cea: 21 f4 brne .+8 ; 0x3cf4 <ParameterZuordnung+0x110>
3cec: 80 91 18 02 lds r24, 0x0218
3cf0: 80 93 85 01 sts 0x0185, r24
3cf4: 80 91 85 01 lds r24, 0x0185
3cf8: 88 23 and r24, r24
3cfa: 19 f4 brne .+6 ; 0x3d02 <ParameterZuordnung+0x11e>
3cfc: 10 92 85 01 sts 0x0185, r1
3d00: 04 c0 rjmp .+8 ; 0x3d0a <ParameterZuordnung+0x126>
3d02: 8f 3f cpi r24, 0xFF ; 255
3d04: 11 f4 brne .+4 ; 0x3d0a <ParameterZuordnung+0x126>
3d06: 80 93 85 01 sts 0x0185, r24
3d0a: 80 91 f1 04 lds r24, 0x04F1
3d0e: 8b 3f cpi r24, 0xFB ; 251
3d10: 98 f0 brcs .+38 ; 0x3d38 <ParameterZuordnung+0x154>
3d12: 8b 3f cpi r24, 0xFB ; 251
3d14: 19 f4 brne .+6 ; 0x3d1c <ParameterZuordnung+0x138>
3d16: 80 91 12 02 lds r24, 0x0212
3d1a: 0e c0 rjmp .+28 ; 0x3d38 <ParameterZuordnung+0x154>
3d1c: 8c 3f cpi r24, 0xFC ; 252
3d1e: 19 f4 brne .+6 ; 0x3d26 <ParameterZuordnung+0x142>
3d20: 80 91 14 02 lds r24, 0x0214
3d24: 09 c0 rjmp .+18 ; 0x3d38 <ParameterZuordnung+0x154>
3d26: 8d 3f cpi r24, 0xFD ; 253
3d28: 19 f4 brne .+6 ; 0x3d30 <ParameterZuordnung+0x14c>
3d2a: 80 91 16 02 lds r24, 0x0216
3d2e: 04 c0 rjmp .+8 ; 0x3d38 <ParameterZuordnung+0x154>
3d30: 8e 3f cpi r24, 0xFE ; 254
3d32: 21 f4 brne .+8 ; 0x3d3c <ParameterZuordnung+0x158>
3d34: 80 91 18 02 lds r24, 0x0218
3d38: 80 93 86 01 sts 0x0186, r24
3d3c: 80 91 86 01 lds r24, 0x0186
3d40: 88 23 and r24, r24
3d42: 19 f4 brne .+6 ; 0x3d4a <ParameterZuordnung+0x166>
3d44: 10 92 86 01 sts 0x0186, r1
3d48: 04 c0 rjmp .+8 ; 0x3d52 <ParameterZuordnung+0x16e>
3d4a: 8f 3f cpi r24, 0xFF ; 255
3d4c: 11 f4 brne .+4 ; 0x3d52 <ParameterZuordnung+0x16e>
3d4e: 80 93 86 01 sts 0x0186, r24
3d52: 80 91 f2 04 lds r24, 0x04F2
3d56: 8b 3f cpi r24, 0xFB ; 251
3d58: 98 f0 brcs .+38 ; 0x3d80 <ParameterZuordnung+0x19c>
3d5a: 8b 3f cpi r24, 0xFB ; 251
3d5c: 19 f4 brne .+6 ; 0x3d64 <ParameterZuordnung+0x180>
3d5e: 80 91 12 02 lds r24, 0x0212
3d62: 0e c0 rjmp .+28 ; 0x3d80 <ParameterZuordnung+0x19c>
3d64: 8c 3f cpi r24, 0xFC ; 252
3d66: 19 f4 brne .+6 ; 0x3d6e <ParameterZuordnung+0x18a>
3d68: 80 91 14 02 lds r24, 0x0214
3d6c: 09 c0 rjmp .+18 ; 0x3d80 <ParameterZuordnung+0x19c>
3d6e: 8d 3f cpi r24, 0xFD ; 253
3d70: 19 f4 brne .+6 ; 0x3d78 <ParameterZuordnung+0x194>
3d72: 80 91 16 02 lds r24, 0x0216
3d76: 04 c0 rjmp .+8 ; 0x3d80 <ParameterZuordnung+0x19c>
3d78: 8e 3f cpi r24, 0xFE ; 254
3d7a: 21 f4 brne .+8 ; 0x3d84 <ParameterZuordnung+0x1a0>
3d7c: 80 91 18 02 lds r24, 0x0218
3d80: 80 93 87 01 sts 0x0187, r24
3d84: 80 91 87 01 lds r24, 0x0187
3d88: 8b 30 cpi r24, 0x0B ; 11
3d8a: 10 f4 brcc .+4 ; 0x3d90 <ParameterZuordnung+0x1ac>
3d8c: 8a e0 ldi r24, 0x0A ; 10
3d8e: 02 c0 rjmp .+4 ; 0x3d94 <ParameterZuordnung+0x1b0>
3d90: 8f 3f cpi r24, 0xFF ; 255
3d92: 11 f4 brne .+4 ; 0x3d98 <ParameterZuordnung+0x1b4>
3d94: 80 93 87 01 sts 0x0187, r24
3d98: 80 91 f3 04 lds r24, 0x04F3
3d9c: 8b 3f cpi r24, 0xFB ; 251
3d9e: 98 f0 brcs .+38 ; 0x3dc6 <ParameterZuordnung+0x1e2>
3da0: 8b 3f cpi r24, 0xFB ; 251
3da2: 19 f4 brne .+6 ; 0x3daa <ParameterZuordnung+0x1c6>
3da4: 80 91 12 02 lds r24, 0x0212
3da8: 0e c0 rjmp .+28 ; 0x3dc6 <ParameterZuordnung+0x1e2>
3daa: 8c 3f cpi r24, 0xFC ; 252
3dac: 19 f4 brne .+6 ; 0x3db4 <ParameterZuordnung+0x1d0>
3dae: 80 91 14 02 lds r24, 0x0214
3db2: 09 c0 rjmp .+18 ; 0x3dc6 <ParameterZuordnung+0x1e2>
3db4: 8d 3f cpi r24, 0xFD ; 253
3db6: 19 f4 brne .+6 ; 0x3dbe <ParameterZuordnung+0x1da>
3db8: 80 91 16 02 lds r24, 0x0216
3dbc: 04 c0 rjmp .+8 ; 0x3dc6 <ParameterZuordnung+0x1e2>
3dbe: 8e 3f cpi r24, 0xFE ; 254
3dc0: 21 f4 brne .+8 ; 0x3dca <ParameterZuordnung+0x1e6>
3dc2: 80 91 18 02 lds r24, 0x0218
3dc6: 80 93 88 01 sts 0x0188, r24
3dca: 80 91 88 01 lds r24, 0x0188
3dce: 88 23 and r24, r24
3dd0: 19 f4 brne .+6 ; 0x3dd8 <ParameterZuordnung+0x1f4>
3dd2: 10 92 88 01 sts 0x0188, r1
3dd6: 04 c0 rjmp .+8 ; 0x3de0 <ParameterZuordnung+0x1fc>
3dd8: 8f 3f cpi r24, 0xFF ; 255
3dda: 11 f4 brne .+4 ; 0x3de0 <ParameterZuordnung+0x1fc>
3ddc: 80 93 88 01 sts 0x0188, r24
3de0: 80 91 f8 04 lds r24, 0x04F8
3de4: 8b 3f cpi r24, 0xFB ; 251
3de6: 98 f0 brcs .+38 ; 0x3e0e <ParameterZuordnung+0x22a>
3de8: 8b 3f cpi r24, 0xFB ; 251
3dea: 19 f4 brne .+6 ; 0x3df2 <ParameterZuordnung+0x20e>
3dec: 80 91 12 02 lds r24, 0x0212
3df0: 0e c0 rjmp .+28 ; 0x3e0e <ParameterZuordnung+0x22a>
3df2: 8c 3f cpi r24, 0xFC ; 252
3df4: 19 f4 brne .+6 ; 0x3dfc <ParameterZuordnung+0x218>
3df6: 80 91 14 02 lds r24, 0x0214
3dfa: 09 c0 rjmp .+18 ; 0x3e0e <ParameterZuordnung+0x22a>
3dfc: 8d 3f cpi r24, 0xFD ; 253
3dfe: 19 f4 brne .+6 ; 0x3e06 <ParameterZuordnung+0x222>
3e00: 80 91 16 02 lds r24, 0x0216
3e04: 04 c0 rjmp .+8 ; 0x3e0e <ParameterZuordnung+0x22a>
3e06: 8e 3f cpi r24, 0xFE ; 254
3e08: 21 f4 brne .+8 ; 0x3e12 <ParameterZuordnung+0x22e>
3e0a: 80 91 18 02 lds r24, 0x0218
3e0e: 80 93 8a 01 sts 0x018A, r24
3e12: 80 91 8a 01 lds r24, 0x018A
3e16: 88 23 and r24, r24
3e18: 19 f4 brne .+6 ; 0x3e20 <ParameterZuordnung+0x23c>
3e1a: 10 92 8a 01 sts 0x018A, r1
3e1e: 04 c0 rjmp .+8 ; 0x3e28 <ParameterZuordnung+0x244>
3e20: 8f 3f cpi r24, 0xFF ; 255
3e22: 11 f4 brne .+4 ; 0x3e28 <ParameterZuordnung+0x244>
3e24: 80 93 8a 01 sts 0x018A, r24
3e28: 80 91 f9 04 lds r24, 0x04F9
3e2c: 8b 3f cpi r24, 0xFB ; 251
3e2e: 98 f0 brcs .+38 ; 0x3e56 <ParameterZuordnung+0x272>
3e30: 8b 3f cpi r24, 0xFB ; 251
3e32: 19 f4 brne .+6 ; 0x3e3a <ParameterZuordnung+0x256>
3e34: 80 91 12 02 lds r24, 0x0212
3e38: 0e c0 rjmp .+28 ; 0x3e56 <ParameterZuordnung+0x272>
3e3a: 8c 3f cpi r24, 0xFC ; 252
3e3c: 19 f4 brne .+6 ; 0x3e44 <ParameterZuordnung+0x260>
3e3e: 80 91 14 02 lds r24, 0x0214
3e42: 09 c0 rjmp .+18 ; 0x3e56 <ParameterZuordnung+0x272>
3e44: 8d 3f cpi r24, 0xFD ; 253
3e46: 19 f4 brne .+6 ; 0x3e4e <ParameterZuordnung+0x26a>
3e48: 80 91 16 02 lds r24, 0x0216
3e4c: 04 c0 rjmp .+8 ; 0x3e56 <ParameterZuordnung+0x272>
3e4e: 8e 3f cpi r24, 0xFE ; 254
3e50: 21 f4 brne .+8 ; 0x3e5a <ParameterZuordnung+0x276>
3e52: 80 91 18 02 lds r24, 0x0218
3e56: 80 93 26 02 sts 0x0226, r24
3e5a: 80 91 26 02 lds r24, 0x0226
3e5e: 88 23 and r24, r24
3e60: 19 f4 brne .+6 ; 0x3e68 <ParameterZuordnung+0x284>
3e62: 10 92 26 02 sts 0x0226, r1
3e66: 04 c0 rjmp .+8 ; 0x3e70 <ParameterZuordnung+0x28c>
3e68: 8f 3f cpi r24, 0xFF ; 255
3e6a: 11 f4 brne .+4 ; 0x3e70 <ParameterZuordnung+0x28c>
3e6c: 80 93 26 02 sts 0x0226, r24
3e70: 80 91 fa 04 lds r24, 0x04FA
3e74: 8b 3f cpi r24, 0xFB ; 251
3e76: 98 f0 brcs .+38 ; 0x3e9e <ParameterZuordnung+0x2ba>
3e78: 8b 3f cpi r24, 0xFB ; 251
3e7a: 19 f4 brne .+6 ; 0x3e82 <ParameterZuordnung+0x29e>
3e7c: 80 91 12 02 lds r24, 0x0212
3e80: 0e c0 rjmp .+28 ; 0x3e9e <ParameterZuordnung+0x2ba>
3e82: 8c 3f cpi r24, 0xFC ; 252
3e84: 19 f4 brne .+6 ; 0x3e8c <ParameterZuordnung+0x2a8>
3e86: 80 91 14 02 lds r24, 0x0214
3e8a: 09 c0 rjmp .+18 ; 0x3e9e <ParameterZuordnung+0x2ba>
3e8c: 8d 3f cpi r24, 0xFD ; 253
3e8e: 19 f4 brne .+6 ; 0x3e96 <ParameterZuordnung+0x2b2>
3e90: 80 91 16 02 lds r24, 0x0216
3e94: 04 c0 rjmp .+8 ; 0x3e9e <ParameterZuordnung+0x2ba>
3e96: 8e 3f cpi r24, 0xFE ; 254
3e98: 21 f4 brne .+8 ; 0x3ea2 <ParameterZuordnung+0x2be>
3e9a: 80 91 18 02 lds r24, 0x0218
3e9e: 80 93 27 02 sts 0x0227, r24
3ea2: 80 91 27 02 lds r24, 0x0227
3ea6: 88 23 and r24, r24
3ea8: 19 f4 brne .+6 ; 0x3eb0 <ParameterZuordnung+0x2cc>
3eaa: 10 92 27 02 sts 0x0227, r1
3eae: 04 c0 rjmp .+8 ; 0x3eb8 <ParameterZuordnung+0x2d4>
3eb0: 8f 3f cpi r24, 0xFF ; 255
3eb2: 11 f4 brne .+4 ; 0x3eb8 <ParameterZuordnung+0x2d4>
3eb4: 80 93 27 02 sts 0x0227, r24
3eb8: 80 91 fb 04 lds r24, 0x04FB
3ebc: 8b 3f cpi r24, 0xFB ; 251
3ebe: 98 f0 brcs .+38 ; 0x3ee6 <ParameterZuordnung+0x302>
3ec0: 8b 3f cpi r24, 0xFB ; 251
3ec2: 19 f4 brne .+6 ; 0x3eca <ParameterZuordnung+0x2e6>
3ec4: 80 91 12 02 lds r24, 0x0212
3ec8: 0e c0 rjmp .+28 ; 0x3ee6 <ParameterZuordnung+0x302>
3eca: 8c 3f cpi r24, 0xFC ; 252
3ecc: 19 f4 brne .+6 ; 0x3ed4 <ParameterZuordnung+0x2f0>
3ece: 80 91 14 02 lds r24, 0x0214
3ed2: 09 c0 rjmp .+18 ; 0x3ee6 <ParameterZuordnung+0x302>
3ed4: 8d 3f cpi r24, 0xFD ; 253
3ed6: 19 f4 brne .+6 ; 0x3ede <ParameterZuordnung+0x2fa>
3ed8: 80 91 16 02 lds r24, 0x0216
3edc: 04 c0 rjmp .+8 ; 0x3ee6 <ParameterZuordnung+0x302>
3ede: 8e 3f cpi r24, 0xFE ; 254
3ee0: 21 f4 brne .+8 ; 0x3eea <ParameterZuordnung+0x306>
3ee2: 80 91 18 02 lds r24, 0x0218
3ee6: 80 93 28 02 sts 0x0228, r24
3eea: 80 91 28 02 lds r24, 0x0228
3eee: 88 23 and r24, r24
3ef0: 19 f4 brne .+6 ; 0x3ef8 <ParameterZuordnung+0x314>
3ef2: 10 92 28 02 sts 0x0228, r1
3ef6: 04 c0 rjmp .+8 ; 0x3f00 <ParameterZuordnung+0x31c>
3ef8: 8f 3f cpi r24, 0xFF ; 255
3efa: 11 f4 brne .+4 ; 0x3f00 <ParameterZuordnung+0x31c>
3efc: 80 93 28 02 sts 0x0228, r24
3f00: 80 91 fc 04 lds r24, 0x04FC
3f04: 8b 3f cpi r24, 0xFB ; 251
3f06: 98 f0 brcs .+38 ; 0x3f2e <ParameterZuordnung+0x34a>
3f08: 8b 3f cpi r24, 0xFB ; 251
3f0a: 19 f4 brne .+6 ; 0x3f12 <ParameterZuordnung+0x32e>
3f0c: 80 91 12 02 lds r24, 0x0212
3f10: 0e c0 rjmp .+28 ; 0x3f2e <ParameterZuordnung+0x34a>
3f12: 8c 3f cpi r24, 0xFC ; 252
3f14: 19 f4 brne .+6 ; 0x3f1c <ParameterZuordnung+0x338>
3f16: 80 91 14 02 lds r24, 0x0214
3f1a: 09 c0 rjmp .+18 ; 0x3f2e <ParameterZuordnung+0x34a>
3f1c: 8d 3f cpi r24, 0xFD ; 253
3f1e: 19 f4 brne .+6 ; 0x3f26 <ParameterZuordnung+0x342>
3f20: 80 91 16 02 lds r24, 0x0216
3f24: 04 c0 rjmp .+8 ; 0x3f2e <ParameterZuordnung+0x34a>
3f26: 8e 3f cpi r24, 0xFE ; 254
3f28: 21 f4 brne .+8 ; 0x3f32 <ParameterZuordnung+0x34e>
3f2a: 80 91 18 02 lds r24, 0x0218
3f2e: 80 93 29 02 sts 0x0229, r24
3f32: 80 91 29 02 lds r24, 0x0229
3f36: 88 23 and r24, r24
3f38: 19 f4 brne .+6 ; 0x3f40 <ParameterZuordnung+0x35c>
3f3a: 10 92 29 02 sts 0x0229, r1
3f3e: 04 c0 rjmp .+8 ; 0x3f48 <ParameterZuordnung+0x364>
3f40: 8f 3f cpi r24, 0xFF ; 255
3f42: 11 f4 brne .+4 ; 0x3f48 <ParameterZuordnung+0x364>
3f44: 80 93 29 02 sts 0x0229, r24
3f48: 90 91 fd 04 lds r25, 0x04FD
3f4c: 9b 3f cpi r25, 0xFB ; 251
3f4e: b0 f0 brcs .+44 ; 0x3f7c <ParameterZuordnung+0x398>
3f50: 9b 3f cpi r25, 0xFB ; 251
3f52: 19 f4 brne .+6 ; 0x3f5a <ParameterZuordnung+0x376>
3f54: 80 91 12 02 lds r24, 0x0212
3f58: 04 c0 rjmp .+8 ; 0x3f62 <ParameterZuordnung+0x37e>
3f5a: 9c 3f cpi r25, 0xFC ; 252
3f5c: 29 f4 brne .+10 ; 0x3f68 <ParameterZuordnung+0x384>
3f5e: 80 91 14 02 lds r24, 0x0214
3f62: 80 93 8b 01 sts 0x018B, r24
3f66: 0c c0 rjmp .+24 ; 0x3f80 <ParameterZuordnung+0x39c>
3f68: 9d 3f cpi r25, 0xFD ; 253
3f6a: 19 f4 brne .+6 ; 0x3f72 <ParameterZuordnung+0x38e>
3f6c: 80 91 16 02 lds r24, 0x0216
3f70: f8 cf rjmp .-16 ; 0x3f62 <ParameterZuordnung+0x37e>
3f72: 9e 3f cpi r25, 0xFE ; 254
3f74: 29 f4 brne .+10 ; 0x3f80 <ParameterZuordnung+0x39c>
3f76: 80 91 18 02 lds r24, 0x0218
3f7a: f3 cf rjmp .-26 ; 0x3f62 <ParameterZuordnung+0x37e>
3f7c: 90 93 8b 01 sts 0x018B, r25
3f80: 80 91 8b 01 lds r24, 0x018B
3f84: 88 23 and r24, r24
3f86: 19 f4 brne .+6 ; 0x3f8e <ParameterZuordnung+0x3aa>
3f88: 10 92 8b 01 sts 0x018B, r1
3f8c: 04 c0 rjmp .+8 ; 0x3f96 <ParameterZuordnung+0x3b2>
3f8e: 8f 3f cpi r24, 0xFF ; 255
3f90: 11 f4 brne .+4 ; 0x3f96 <ParameterZuordnung+0x3b2>
3f92: 80 93 8b 01 sts 0x018B, r24
3f96: 9b 3f cpi r25, 0xFB ; 251
3f98: b0 f0 brcs .+44 ; 0x3fc6 <ParameterZuordnung+0x3e2>
3f9a: 9b 3f cpi r25, 0xFB ; 251
3f9c: 19 f4 brne .+6 ; 0x3fa4 <ParameterZuordnung+0x3c0>
3f9e: 80 91 12 02 lds r24, 0x0212
3fa2: 04 c0 rjmp .+8 ; 0x3fac <ParameterZuordnung+0x3c8>
3fa4: 9c 3f cpi r25, 0xFC ; 252
3fa6: 29 f4 brne .+10 ; 0x3fb2 <ParameterZuordnung+0x3ce>
3fa8: 80 91 14 02 lds r24, 0x0214
3fac: 80 93 8b 01 sts 0x018B, r24
3fb0: 0c c0 rjmp .+24 ; 0x3fca <ParameterZuordnung+0x3e6>
3fb2: 9d 3f cpi r25, 0xFD ; 253
3fb4: 19 f4 brne .+6 ; 0x3fbc <ParameterZuordnung+0x3d8>
3fb6: 80 91 16 02 lds r24, 0x0216
3fba: f8 cf rjmp .-16 ; 0x3fac <ParameterZuordnung+0x3c8>
3fbc: 9e 3f cpi r25, 0xFE ; 254
3fbe: 29 f4 brne .+10 ; 0x3fca <ParameterZuordnung+0x3e6>
3fc0: 80 91 18 02 lds r24, 0x0218
3fc4: f3 cf rjmp .-26 ; 0x3fac <ParameterZuordnung+0x3c8>
3fc6: 90 93 8b 01 sts 0x018B, r25
3fca: 80 91 8b 01 lds r24, 0x018B
3fce: 88 23 and r24, r24
3fd0: 19 f4 brne .+6 ; 0x3fd8 <ParameterZuordnung+0x3f4>
3fd2: 10 92 8b 01 sts 0x018B, r1
3fd6: 04 c0 rjmp .+8 ; 0x3fe0 <ParameterZuordnung+0x3fc>
3fd8: 8f 3f cpi r24, 0xFF ; 255
3fda: 11 f4 brne .+4 ; 0x3fe0 <ParameterZuordnung+0x3fc>
3fdc: 80 93 8b 01 sts 0x018B, r24
3fe0: 9b 3f cpi r25, 0xFB ; 251
3fe2: b0 f0 brcs .+44 ; 0x4010 <ParameterZuordnung+0x42c>
3fe4: 9b 3f cpi r25, 0xFB ; 251
3fe6: 19 f4 brne .+6 ; 0x3fee <ParameterZuordnung+0x40a>
3fe8: 80 91 12 02 lds r24, 0x0212
3fec: 04 c0 rjmp .+8 ; 0x3ff6 <ParameterZuordnung+0x412>
3fee: 9c 3f cpi r25, 0xFC ; 252
3ff0: 29 f4 brne .+10 ; 0x3ffc <ParameterZuordnung+0x418>
3ff2: 80 91 14 02 lds r24, 0x0214
3ff6: 80 93 8b 01 sts 0x018B, r24
3ffa: 0c c0 rjmp .+24 ; 0x4014 <ParameterZuordnung+0x430>
3ffc: 9d 3f cpi r25, 0xFD ; 253
3ffe: 19 f4 brne .+6 ; 0x4006 <ParameterZuordnung+0x422>
4000: 80 91 16 02 lds r24, 0x0216
4004: f8 cf rjmp .-16 ; 0x3ff6 <ParameterZuordnung+0x412>
4006: 9e 3f cpi r25, 0xFE ; 254
4008: 29 f4 brne .+10 ; 0x4014 <ParameterZuordnung+0x430>
400a: 80 91 18 02 lds r24, 0x0218
400e: f3 cf rjmp .-26 ; 0x3ff6 <ParameterZuordnung+0x412>
4010: 90 93 8b 01 sts 0x018B, r25
4014: 80 91 8b 01 lds r24, 0x018B
4018: 88 23 and r24, r24
401a: 19 f4 brne .+6 ; 0x4022 <ParameterZuordnung+0x43e>
401c: 10 92 8b 01 sts 0x018B, r1
4020: 04 c0 rjmp .+8 ; 0x402a <ParameterZuordnung+0x446>
4022: 8f 3f cpi r24, 0xFF ; 255
4024: 11 f4 brne .+4 ; 0x402a <ParameterZuordnung+0x446>
4026: 80 93 8b 01 sts 0x018B, r24
402a: 10 91 8a 01 lds r17, 0x018A
402e: 61 2f mov r22, r17
4030: 77 27 eor r23, r23
4032: 67 fd sbrc r22, 7
4034: 70 95 com r23
4036: 87 2f mov r24, r23
4038: 97 2f mov r25, r23
403a: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
403e: 17 ff sbrs r17, 7
4040: 06 c0 rjmp .+12 ; 0x404e <ParameterZuordnung+0x46a>
4042: 20 e0 ldi r18, 0x00 ; 0
4044: 30 e0 ldi r19, 0x00 ; 0
4046: 40 e8 ldi r20, 0x80 ; 128
4048: 53 e4 ldi r21, 0x43 ; 67
404a: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
404e: 27 e1 ldi r18, 0x17 ; 23
4050: 37 eb ldi r19, 0xB7 ; 183
4052: 41 ed ldi r20, 0xD1 ; 209
4054: 58 e3 ldi r21, 0x38 ; 56
4056: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
405a: 60 93 7e 01 sts 0x017E, r22
405e: 70 93 7f 01 sts 0x017F, r23
4062: 80 93 80 01 sts 0x0180, r24
4066: 90 93 81 01 sts 0x0181, r25
406a: 80 91 ef 04 lds r24, 0x04EF
406e: 80 93 2b 05 sts 0x052B, r24
4072: 80 91 ee 04 lds r24, 0x04EE
4076: 80 93 1a 05 sts 0x051A, r24
407a: 1f 91 pop r17
407c: 08 95 ret
 
0000407e <DefaultKonstanten2>:
407e: 81 e0 ldi r24, 0x01 ; 1
4080: 80 93 dc 04 sts 0x04DC, r24
4084: 42 e0 ldi r20, 0x02 ; 2
4086: 40 93 dd 04 sts 0x04DD, r20
408a: 83 e0 ldi r24, 0x03 ; 3
408c: 80 93 de 04 sts 0x04DE, r24
4090: 94 e0 ldi r25, 0x04 ; 4
4092: 90 93 df 04 sts 0x04DF, r25
4096: 35 e0 ldi r19, 0x05 ; 5
4098: 30 93 e0 04 sts 0x04E0, r19
409c: 86 e0 ldi r24, 0x06 ; 6
409e: 80 93 e1 04 sts 0x04E1, r24
40a2: 87 e0 ldi r24, 0x07 ; 7
40a4: 80 93 e2 04 sts 0x04E2, r24
40a8: 10 92 e4 04 sts 0x04E4, r1
40ac: 8e e1 ldi r24, 0x1E ; 30
40ae: 80 93 e5 04 sts 0x04E5, r24
40b2: 8b ef ldi r24, 0xFB ; 251
40b4: 80 93 e7 04 sts 0x04E7, r24
40b8: 8a e0 ldi r24, 0x0A ; 10
40ba: 80 93 e8 04 sts 0x04E8, r24
40be: 22 e3 ldi r18, 0x32 ; 50
40c0: 20 93 e6 04 sts 0x04E6, r18
40c4: 20 93 ea 04 sts 0x04EA, r18
40c8: 40 93 e9 04 sts 0x04E9, r20
40cc: 90 93 eb 04 sts 0x04EB, r25
40d0: 10 92 ec 04 sts 0x04EC, r1
40d4: 90 e1 ldi r25, 0x10 ; 16
40d6: 90 93 ed 04 sts 0x04ED, r25
40da: 8f e0 ldi r24, 0x0F ; 15
40dc: 80 93 ee 04 sts 0x04EE, r24
40e0: 8a ef ldi r24, 0xFA ; 250
40e2: 80 93 ef 04 sts 0x04EF, r24
40e6: 8a e1 ldi r24, 0x1A ; 26
40e8: 80 93 f0 04 sts 0x04F0, r24
40ec: 90 93 f1 04 sts 0x04F1, r25
40f0: 8f ea ldi r24, 0xAF ; 175
40f2: 80 93 f2 04 sts 0x04F2, r24
40f6: 80 93 f3 04 sts 0x04F3, r24
40fa: 8a e5 ldi r24, 0x5A ; 90
40fc: 80 93 f4 04 sts 0x04F4, r24
4100: 83 e2 ldi r24, 0x23 ; 35
4102: 80 93 f5 04 sts 0x04F5, r24
4106: 84 e1 ldi r24, 0x14 ; 20
4108: 80 93 f6 04 sts 0x04F6, r24
410c: 10 92 f7 04 sts 0x04F7, r1
4110: 30 93 f8 04 sts 0x04F8, r19
4114: 88 e7 ldi r24, 0x78 ; 120
4116: 80 93 f9 04 sts 0x04F9, r24
411a: 80 93 fa 04 sts 0x04FA, r24
411e: 10 92 fb 04 sts 0x04FB, r1
4122: 10 92 fc 04 sts 0x04FC, r1
4126: 84 e6 ldi r24, 0x64 ; 100
4128: 80 93 fd 04 sts 0x04FD, r24
412c: 88 e2 ldi r24, 0x28 ; 40
412e: 80 93 fe 04 sts 0x04FE, r24
4132: 10 92 02 05 sts 0x0502, r1
4136: 20 93 ff 04 sts 0x04FF, r18
413a: 86 e9 ldi r24, 0x96 ; 150
413c: 80 93 00 05 sts 0x0500, r24
4140: 30 93 01 05 sts 0x0501, r19
4144: aa e0 ldi r26, 0x0A ; 10
4146: b5 e0 ldi r27, 0x05 ; 5
4148: ea e6 ldi r30, 0x6A ; 106
414a: f1 e0 ldi r31, 0x01 ; 1
414c: 8c e0 ldi r24, 0x0C ; 12
414e: 01 90 ld r0, Z+
4150: 0d 92 st X+, r0
4152: 81 50 subi r24, 0x01 ; 1
4154: e1 f7 brne .-8 ; 0x414e <DefaultKonstanten2+0xd0>
4156: 08 95 ret
 
00004158 <DefaultKonstanten1>:
4158: 81 e0 ldi r24, 0x01 ; 1
415a: 80 93 dc 04 sts 0x04DC, r24
415e: 52 e0 ldi r21, 0x02 ; 2
4160: 50 93 dd 04 sts 0x04DD, r21
4164: 83 e0 ldi r24, 0x03 ; 3
4166: 80 93 de 04 sts 0x04DE, r24
416a: 44 e0 ldi r20, 0x04 ; 4
416c: 40 93 df 04 sts 0x04DF, r20
4170: 35 e0 ldi r19, 0x05 ; 5
4172: 30 93 e0 04 sts 0x04E0, r19
4176: 86 e0 ldi r24, 0x06 ; 6
4178: 80 93 e1 04 sts 0x04E1, r24
417c: 87 e0 ldi r24, 0x07 ; 7
417e: 80 93 e2 04 sts 0x04E2, r24
4182: 28 e0 ldi r18, 0x08 ; 8
4184: 20 93 e3 04 sts 0x04E3, r18
4188: 10 92 e4 04 sts 0x04E4, r1
418c: 9e e1 ldi r25, 0x1E ; 30
418e: 90 93 e5 04 sts 0x04E5, r25
4192: 8b ef ldi r24, 0xFB ; 251
4194: 80 93 e7 04 sts 0x04E7, r24
4198: 8a e0 ldi r24, 0x0A ; 10
419a: 80 93 e8 04 sts 0x04E8, r24
419e: 86 e4 ldi r24, 0x46 ; 70
41a0: 80 93 e6 04 sts 0x04E6, r24
41a4: 90 93 ea 04 sts 0x04EA, r25
41a8: 50 93 e9 04 sts 0x04E9, r21
41ac: 40 93 eb 04 sts 0x04EB, r20
41b0: 20 93 ec 04 sts 0x04EC, r18
41b4: 90 e1 ldi r25, 0x10 ; 16
41b6: 90 93 ed 04 sts 0x04ED, r25
41ba: 8f e0 ldi r24, 0x0F ; 15
41bc: 80 93 ee 04 sts 0x04EE, r24
41c0: 8a ef ldi r24, 0xFA ; 250
41c2: 80 93 ef 04 sts 0x04EF, r24
41c6: 8a e1 ldi r24, 0x1A ; 26
41c8: 80 93 f0 04 sts 0x04F0, r24
41cc: 90 93 f1 04 sts 0x04F1, r25
41d0: 98 e7 ldi r25, 0x78 ; 120
41d2: 90 93 f2 04 sts 0x04F2, r25
41d6: 26 e9 ldi r18, 0x96 ; 150
41d8: 20 93 f3 04 sts 0x04F3, r18
41dc: 8a e5 ldi r24, 0x5A ; 90
41de: 80 93 f4 04 sts 0x04F4, r24
41e2: 83 e2 ldi r24, 0x23 ; 35
41e4: 80 93 f5 04 sts 0x04F5, r24
41e8: 84 e1 ldi r24, 0x14 ; 20
41ea: 80 93 f6 04 sts 0x04F6, r24
41ee: 10 92 f7 04 sts 0x04F7, r1
41f2: 30 93 f8 04 sts 0x04F8, r19
41f6: 90 93 f9 04 sts 0x04F9, r25
41fa: 90 93 fa 04 sts 0x04FA, r25
41fe: 10 92 fb 04 sts 0x04FB, r1
4202: 10 92 fc 04 sts 0x04FC, r1
4206: 84 e6 ldi r24, 0x64 ; 100
4208: 80 93 fd 04 sts 0x04FD, r24
420c: 88 e2 ldi r24, 0x28 ; 40
420e: 80 93 fe 04 sts 0x04FE, r24
4212: 10 92 02 05 sts 0x0502, r1
4216: 82 e3 ldi r24, 0x32 ; 50
4218: 80 93 ff 04 sts 0x04FF, r24
421c: 20 93 00 05 sts 0x0500, r18
4220: 30 93 01 05 sts 0x0501, r19
4224: aa e0 ldi r26, 0x0A ; 10
4226: b5 e0 ldi r27, 0x05 ; 5
4228: e2 e7 ldi r30, 0x72 ; 114
422a: f1 e0 ldi r31, 0x01 ; 1
422c: 8c e0 ldi r24, 0x0C ; 12
422e: 01 90 ld r0, Z+
4230: 0d 92 st X+, r0
4232: 81 50 subi r24, 0x01 ; 1
4234: e1 f7 brne .-8 ; 0x422e <DefaultKonstanten1+0xd6>
4236: 08 95 ret
 
00004238 <SendMotorData>:
4238: 80 91 21 02 lds r24, 0x0221
423c: 88 23 and r24, r24
423e: 01 f5 brne .+64 ; 0x4280 <SendMotorData+0x48>
4240: 10 92 64 02 sts 0x0264, r1
4244: 10 92 63 02 sts 0x0263, r1
4248: 10 92 67 02 sts 0x0267, r1
424c: 10 92 69 02 sts 0x0269, r1
4250: 80 91 96 01 lds r24, 0x0196
4254: 88 23 and r24, r24
4256: 11 f0 breq .+4 ; 0x425c <SendMotorData+0x24>
4258: 80 93 63 02 sts 0x0263, r24
425c: 80 91 97 01 lds r24, 0x0197
4260: 88 23 and r24, r24
4262: 11 f0 breq .+4 ; 0x4268 <SendMotorData+0x30>
4264: 80 93 64 02 sts 0x0264, r24
4268: 80 91 98 01 lds r24, 0x0198
426c: 88 23 and r24, r24
426e: 11 f0 breq .+4 ; 0x4274 <SendMotorData+0x3c>
4270: 80 93 69 02 sts 0x0269, r24
4274: 80 91 99 01 lds r24, 0x0199
4278: 88 23 and r24, r24
427a: 11 f0 breq .+4 ; 0x4280 <SendMotorData+0x48>
427c: 80 93 67 02 sts 0x0267, r24
4280: 80 91 63 02 lds r24, 0x0263
4284: 99 27 eor r25, r25
4286: 90 93 77 04 sts 0x0477, r25
428a: 80 93 76 04 sts 0x0476, r24
428e: 80 91 64 02 lds r24, 0x0264
4292: 99 27 eor r25, r25
4294: 90 93 79 04 sts 0x0479, r25
4298: 80 93 78 04 sts 0x0478, r24
429c: 80 91 69 02 lds r24, 0x0269
42a0: 99 27 eor r25, r25
42a2: 90 93 7b 04 sts 0x047B, r25
42a6: 80 93 7a 04 sts 0x047A, r24
42aa: 80 91 67 02 lds r24, 0x0267
42ae: 99 27 eor r25, r25
42b0: 90 93 7d 04 sts 0x047D, r25
42b4: 80 93 7c 04 sts 0x047C, r24
42b8: 10 92 ca 01 sts 0x01CA, r1
42bc: 10 92 cb 01 sts 0x01CB, r1
42c0: 0e 94 3b 18 call 0x3076 ; 0x3076 <i2c_start>
42c4: 08 95 ret
 
000042c6 <SetNeutral>:
42c6: cf 93 push r28
42c8: df 93 push r29
42ca: 10 92 22 05 sts 0x0522, r1
42ce: 10 92 21 05 sts 0x0521, r1
42d2: 10 92 24 05 sts 0x0524, r1
42d6: 10 92 23 05 sts 0x0523, r1
42da: 80 e0 ldi r24, 0x00 ; 0
42dc: 90 e0 ldi r25, 0x00 ; 0
42de: a0 e0 ldi r26, 0x00 ; 0
42e0: b0 e0 ldi r27, 0x00 ; 0
42e2: 80 93 25 05 sts 0x0525, r24
42e6: 90 93 26 05 sts 0x0526, r25
42ea: a0 93 27 05 sts 0x0527, r26
42ee: b0 93 28 05 sts 0x0528, r27
42f2: 10 92 d3 01 sts 0x01D3, r1
42f6: 10 92 d2 01 sts 0x01D2, r1
42fa: 10 92 d5 01 sts 0x01D5, r1
42fe: 10 92 d4 01 sts 0x01D4, r1
4302: 10 92 d7 01 sts 0x01D7, r1
4306: 10 92 d6 01 sts 0x01D6, r1
430a: 0e 94 56 1c call 0x38ac ; 0x38ac <CalibrierMittelwert>
430e: 85 e0 ldi r24, 0x05 ; 5
4310: 90 e0 ldi r25, 0x00 ; 0
4312: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
4316: ec 01 movw r28, r24
4318: ce 01 movw r24, r28
431a: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
431e: 88 23 and r24, r24
4320: d9 f3 breq .-10 ; 0x4318 <SetNeutral+0x52>
4322: 0e 94 56 1c call 0x38ac ; 0x38ac <CalibrierMittelwert>
4326: 80 91 e4 04 lds r24, 0x04E4
432a: 80 ff sbrs r24, 0
432c: 10 c0 rjmp .+32 ; 0x434e <SetNeutral+0x88>
432e: 80 91 0c 01 lds r24, 0x010C
4332: 90 91 0d 01 lds r25, 0x010D
4336: 87 5b subi r24, 0xB7 ; 183
4338: 93 40 sbci r25, 0x03 ; 3
433a: 38 f4 brcc .+14 ; 0x434a <SetNeutral+0x84>
433c: 80 91 0c 01 lds r24, 0x010C
4340: 90 91 0d 01 lds r25, 0x010D
4344: 8e 5e subi r24, 0xEE ; 238
4346: 92 40 sbci r25, 0x02 ; 2
4348: 10 f4 brcc .+4 ; 0x434e <SetNeutral+0x88>
434a: 0e 94 71 10 call 0x20e2 ; 0x20e2 <SucheLuftruckOffset>
434e: 80 91 18 05 lds r24, 0x0518
4352: 90 91 19 05 lds r25, 0x0519
4356: 97 ff sbrs r25, 7
4358: 03 c0 rjmp .+6 ; 0x4360 <SetNeutral+0x9a>
435a: 90 95 com r25
435c: 81 95 neg r24
435e: 9f 4f sbci r25, 0xFF ; 255
4360: 90 93 d3 01 sts 0x01D3, r25
4364: 80 93 d2 01 sts 0x01D2, r24
4368: 80 91 16 05 lds r24, 0x0516
436c: 90 91 17 05 lds r25, 0x0517
4370: 97 ff sbrs r25, 7
4372: 03 c0 rjmp .+6 ; 0x437a <SetNeutral+0xb4>
4374: 90 95 com r25
4376: 81 95 neg r24
4378: 9f 4f sbci r25, 0xFF ; 255
437a: 90 93 d5 01 sts 0x01D5, r25
437e: 80 93 d4 01 sts 0x01D4, r24
4382: 80 91 2c 05 lds r24, 0x052C
4386: 90 91 2d 05 lds r25, 0x052D
438a: 97 ff sbrs r25, 7
438c: 03 c0 rjmp .+6 ; 0x4394 <SetNeutral+0xce>
438e: 90 95 com r25
4390: 81 95 neg r24
4392: 9f 4f sbci r25, 0xFF ; 255
4394: 90 93 d7 01 sts 0x01D7, r25
4398: 80 93 d6 01 sts 0x01D6, r24
439c: 88 e0 ldi r24, 0x08 ; 8
439e: e1 e2 ldi r30, 0x21 ; 33
43a0: f5 e0 ldi r31, 0x05 ; 5
43a2: a8 ef ldi r26, 0xF8 ; 248
43a4: b1 e0 ldi r27, 0x01 ; 1
43a6: 18 2e mov r1, r24
43a8: 0e 94 00 2f call 0x5e00 ; 0x5e00 <__eeprom_read_block_1F2021>
43ac: 10 92 ee 01 sts 0x01EE, r1
43b0: 10 92 ef 01 sts 0x01EF, r1
43b4: 10 92 f0 01 sts 0x01F0, r1
43b8: 10 92 f1 01 sts 0x01F1, r1
43bc: 10 92 f2 01 sts 0x01F2, r1
43c0: 10 92 f3 01 sts 0x01F3, r1
43c4: 10 92 f4 01 sts 0x01F4, r1
43c8: 10 92 f5 01 sts 0x01F5, r1
43cc: 10 92 f6 01 sts 0x01F6, r1
43d0: 10 92 f7 01 sts 0x01F7, r1
43d4: 10 92 f8 01 sts 0x01F8, r1
43d8: 10 92 f9 01 sts 0x01F9, r1
43dc: 10 92 fa 01 sts 0x01FA, r1
43e0: 10 92 fb 01 sts 0x01FB, r1
43e4: 10 92 fc 01 sts 0x01FC, r1
43e8: 10 92 fd 01 sts 0x01FD, r1
43ec: 10 92 fe 01 sts 0x01FE, r1
43f0: 10 92 ff 01 sts 0x01FF, r1
43f4: 10 92 00 02 sts 0x0200, r1
43f8: 10 92 01 02 sts 0x0201, r1
43fc: 10 92 19 05 sts 0x0519, r1
4400: 10 92 18 05 sts 0x0518, r1
4404: 10 92 17 05 sts 0x0517, r1
4408: 10 92 16 05 sts 0x0516, r1
440c: 10 92 2d 05 sts 0x052D, r1
4410: 10 92 2c 05 sts 0x052C, r1
4414: 80 91 08 01 lds r24, 0x0108
4418: 90 91 09 01 lds r25, 0x0109
441c: a0 91 0a 01 lds r26, 0x010A
4420: b0 91 0b 01 lds r27, 0x010B
4424: 90 93 84 04 sts 0x0484, r25
4428: 80 93 83 04 sts 0x0483, r24
442c: 10 92 c0 01 sts 0x01C0, r1
4430: 10 92 bf 01 sts 0x01BF, r1
4434: 10 92 06 02 sts 0x0206, r1
4438: 10 92 07 02 sts 0x0207, r1
443c: 10 92 08 02 sts 0x0208, r1
4440: 10 92 09 02 sts 0x0209, r1
4444: 80 91 0a 02 lds r24, 0x020A
4448: 90 91 0b 02 lds r25, 0x020B
444c: 90 93 0d 02 sts 0x020D, r25
4450: 80 93 0c 02 sts 0x020C, r24
4454: 0e 94 99 2c call 0x5932 ; 0x5932 <GPS_Neutral>
4458: 82 e3 ldi r24, 0x32 ; 50
445a: 90 e0 ldi r25, 0x00 ; 0
445c: 90 93 a7 01 sts 0x01A7, r25
4460: 80 93 a6 01 sts 0x01A6, r24
4464: df 91 pop r29
4466: cf 91 pop r28
4468: 08 95 ret
 
0000446a <Neutral_calib>:
446a: cf 93 push r28
446c: df 93 push r29
446e: 0e 94 56 1c call 0x38ac ; 0x38ac <CalibrierMittelwert>
4472: 85 e0 ldi r24, 0x05 ; 5
4474: 90 e0 ldi r25, 0x00 ; 0
4476: 0e 94 e9 0b call 0x17d2 ; 0x17d2 <SetDelay>
447a: ec 01 movw r28, r24
447c: ce 01 movw r24, r28
447e: 0e 94 f2 0b call 0x17e4 ; 0x17e4 <CheckDelay>
4482: 88 23 and r24, r24
4484: d9 f3 breq .-10 ; 0x447c <Neutral_calib+0x12>
4486: 0e 94 56 1c call 0x38ac ; 0x38ac <CalibrierMittelwert>
448a: 80 91 29 05 lds r24, 0x0529
448e: 90 91 2a 05 lds r25, 0x052A
4492: c1 e2 ldi r28, 0x21 ; 33
4494: d5 e0 ldi r29, 0x05 ; 5
4496: 97 ff sbrs r25, 7
4498: 03 c0 rjmp .+6 ; 0x44a0 <Neutral_calib+0x36>
449a: 90 95 com r25
449c: 81 95 neg r24
449e: 9f 4f sbci r25, 0xFF ; 255
44a0: 60 e1 ldi r22, 0x10 ; 16
44a2: 70 e0 ldi r23, 0x00 ; 0
44a4: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
44a8: 70 93 22 05 sts 0x0522, r23
44ac: 60 93 21 05 sts 0x0521, r22
44b0: 80 91 32 05 lds r24, 0x0532
44b4: 90 91 33 05 lds r25, 0x0533
44b8: 97 ff sbrs r25, 7
44ba: 03 c0 rjmp .+6 ; 0x44c2 <Neutral_calib+0x58>
44bc: 90 95 com r25
44be: 81 95 neg r24
44c0: 9f 4f sbci r25, 0xFF ; 255
44c2: 60 e1 ldi r22, 0x10 ; 16
44c4: 70 e0 ldi r23, 0x00 ; 0
44c6: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
44ca: 70 93 24 05 sts 0x0524, r23
44ce: 60 93 23 05 sts 0x0523, r22
44d2: 60 91 81 04 lds r22, 0x0481
44d6: 70 91 82 04 lds r23, 0x0482
44da: 88 27 eor r24, r24
44dc: 77 fd sbrc r23, 7
44de: 80 95 com r24
44e0: 98 2f mov r25, r24
44e2: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
44e6: 60 93 25 05 sts 0x0525, r22
44ea: 70 93 26 05 sts 0x0526, r23
44ee: 80 93 27 05 sts 0x0527, r24
44f2: 90 93 28 05 sts 0x0528, r25
44f6: 88 e0 ldi r24, 0x08 ; 8
44f8: a8 ef ldi r26, 0xF8 ; 248
44fa: b1 e0 ldi r27, 0x01 ; 1
44fc: fe 01 movw r30, r28
44fe: 18 2e mov r1, r24
4500: 0e 94 11 2f call 0x5e22 ; 0x5e22 <__eeprom_write_block_1F2021>
4504: df 91 pop r29
4506: cf 91 pop r28
4508: 08 95 ret
 
0000450a <Piep>:
450a: 1f 93 push r17
450c: 18 2f mov r17, r24
450e: 0e c0 rjmp .+28 ; 0x452c <Piep+0x22>
4510: 80 91 21 02 lds r24, 0x0221
4514: 88 23 and r24, r24
4516: 61 f4 brne .+24 ; 0x4530 <Piep+0x26>
4518: 84 e6 ldi r24, 0x64 ; 100
451a: 90 e0 ldi r25, 0x00 ; 0
451c: 90 93 a7 01 sts 0x01A7, r25
4520: 80 93 a6 01 sts 0x01A6, r24
4524: 8a ef ldi r24, 0xFA ; 250
4526: 90 e0 ldi r25, 0x00 ; 0
4528: 0e 94 5c 0d call 0x1ab8 ; 0x1ab8 <Delay_ms>
452c: 11 50 subi r17, 0x01 ; 1
452e: 80 f7 brcc .-32 ; 0x4510 <Piep+0x6>
4530: 1f 91 pop r17
4532: 08 95 ret
 
00004534 <MotorRegler>:
4534: a8 e0 ldi r26, 0x08 ; 8
4536: b0 e0 ldi r27, 0x00 ; 0
4538: e0 ea ldi r30, 0xA0 ; 160
453a: f2 e2 ldi r31, 0x22 ; 34
453c: 0c 94 bb 2e jmp 0x5d76 ; 0x5d76 <__prologue_saves__>
4540: 0e 94 95 19 call 0x332a ; 0x332a <Mittelwert>
4544: 29 9a sbi 0x05, 1 ; 5
4546: e0 91 de 04 lds r30, 0x04DE
454a: ae 2f mov r26, r30
454c: bb 27 eor r27, r27
454e: aa 0f add r26, r26
4550: bb 1f adc r27, r27
4552: a0 55 subi r26, 0x50 ; 80
4554: bb 4f sbci r27, 0xFB ; 251
4556: 0d 90 ld r0, X+
4558: bc 91 ld r27, X
455a: a0 2d mov r26, r0
455c: 9d 01 movw r18, r26
455e: 28 58 subi r18, 0x88 ; 136
4560: 3f 4f sbci r19, 0xFF ; 255
4562: 3a 83 std Y+2, r19 ; 0x02
4564: 29 83 std Y+1, r18 ; 0x01
4566: 37 ff sbrs r19, 7
4568: 02 c0 rjmp .+4 ; 0x456e <MotorRegler+0x3a>
456a: 1a 82 std Y+2, r1 ; 0x02
456c: 19 82 std Y+1, r1 ; 0x01
456e: 80 91 1a 02 lds r24, 0x021A
4572: 84 36 cpi r24, 0x64 ; 100
4574: 08 f0 brcs .+2 ; 0x4578 <MotorRegler+0x44>
4576: 4a c0 rjmp .+148 ; 0x460c <MotorRegler+0xd8>
4578: 80 91 01 01 lds r24, 0x0101
457c: 88 23 and r24, r24
457e: 31 f4 brne .+12 ; 0x458c <MotorRegler+0x58>
4580: 84 ef ldi r24, 0xF4 ; 244
4582: 91 e0 ldi r25, 0x01 ; 1
4584: 90 93 a7 01 sts 0x01A7, r25
4588: 80 93 a6 01 sts 0x01A6, r24
458c: 80 91 33 02 lds r24, 0x0233
4590: 90 91 34 02 lds r25, 0x0234
4594: 00 97 sbiw r24, 0x00 ; 0
4596: 31 f0 breq .+12 ; 0x45a4 <MotorRegler+0x70>
4598: 01 97 sbiw r24, 0x01 ; 1
459a: 90 93 34 02 sts 0x0234, r25
459e: 80 93 33 02 sts 0x0233, r24
45a2: 04 c0 rjmp .+8 ; 0x45ac <MotorRegler+0x78>
45a4: 10 92 21 02 sts 0x0221, r1
45a8: 10 92 10 02 sts 0x0210, r1
45ac: 28 9a sbi 0x05, 0 ; 5
45ae: 80 91 2e 02 lds r24, 0x022E
45b2: 90 91 2f 02 lds r25, 0x022F
45b6: 81 5d subi r24, 0xD1 ; 209
45b8: 97 40 sbci r25, 0x07 ; 7
45ba: 28 f1 brcs .+74 ; 0x4606 <MotorRegler+0xd2>
45bc: 80 91 f5 04 lds r24, 0x04F5
45c0: 48 2f mov r20, r24
45c2: 55 27 eor r21, r21
45c4: 5a 83 std Y+2, r21 ; 0x02
45c6: 49 83 std Y+1, r20 ; 0x01
45c8: 81 e0 ldi r24, 0x01 ; 1
45ca: 80 93 10 02 sts 0x0210, r24
45ce: e0 91 dc 04 lds r30, 0x04DC
45d2: ff 27 eor r31, r31
45d4: ee 0f add r30, r30
45d6: ff 1f adc r31, r31
45d8: e0 55 subi r30, 0x50 ; 80
45da: fb 4f sbci r31, 0xFB ; 251
45dc: 11 82 std Z+1, r1 ; 0x01
45de: 10 82 st Z, r1
45e0: e0 91 dd 04 lds r30, 0x04DD
45e4: ff 27 eor r31, r31
45e6: ee 0f add r30, r30
45e8: ff 1f adc r31, r31
45ea: e0 55 subi r30, 0x50 ; 80
45ec: fb 4f sbci r31, 0xFB ; 251
45ee: 11 82 std Z+1, r1 ; 0x01
45f0: 10 82 st Z, r1
45f2: e0 91 df 04 lds r30, 0x04DF
45f6: ff 27 eor r31, r31
45f8: ee 0f add r30, r30
45fa: ff 1f adc r31, r31
45fc: e0 55 subi r30, 0x50 ; 80
45fe: fb 4f sbci r31, 0xFB ; 251
4600: 11 82 std Z+1, r1 ; 0x01
4602: 10 82 st Z, r1
4604: ce c1 rjmp .+924 ; 0x49a2 <MotorRegler+0x46e>
4606: 10 92 21 02 sts 0x0221, r1
460a: cb c1 rjmp .+918 ; 0x49a2 <MotorRegler+0x46e>
460c: 80 91 1a 02 lds r24, 0x021A
4610: 8d 38 cpi r24, 0x8D ; 141
4612: 08 f4 brcc .+2 ; 0x4616 <MotorRegler+0xe2>
4614: c6 c1 rjmp .+908 ; 0x49a2 <MotorRegler+0x46e>
4616: 10 92 10 02 sts 0x0210, r1
461a: 80 91 f6 04 lds r24, 0x04F6
461e: 22 e3 ldi r18, 0x32 ; 50
4620: 82 9f mul r24, r18
4622: c0 01 movw r24, r0
4624: 11 24 eor r1, r1
4626: 90 93 34 02 sts 0x0234, r25
462a: 80 93 33 02 sts 0x0233, r24
462e: 69 81 ldd r22, Y+1 ; 0x01
4630: 7a 81 ldd r23, Y+2 ; 0x02
4632: 69 32 cpi r22, 0x29 ; 41
4634: 71 05 cpc r23, r1
4636: 6c f0 brlt .+26 ; 0x4652 <MotorRegler+0x11e>
4638: 80 91 2e 02 lds r24, 0x022E
463c: 90 91 2f 02 lds r25, 0x022F
4640: 7f ef ldi r23, 0xFF ; 255
4642: 8f 3f cpi r24, 0xFF ; 255
4644: 97 07 cpc r25, r23
4646: 81 f1 breq .+96 ; 0x46a8 <MotorRegler+0x174>
4648: 01 96 adiw r24, 0x01 ; 1
464a: 90 93 2f 02 sts 0x022F, r25
464e: 80 93 2e 02 sts 0x022E, r24
4652: 80 91 2e 02 lds r24, 0x022E
4656: 90 91 2f 02 lds r25, 0x022F
465a: 88 3c cpi r24, 0xC8 ; 200
465c: 91 05 cpc r25, r1
465e: 20 f0 brcs .+8 ; 0x4668 <MotorRegler+0x134>
4660: 89 81 ldd r24, Y+1 ; 0x01
4662: 9a 81 ldd r25, Y+2 ; 0x02
4664: 88 97 sbiw r24, 0x28 ; 40
4666: 04 f5 brge .+64 ; 0x46a8 <MotorRegler+0x174>
4668: 10 92 49 02 sts 0x0249, r1
466c: 10 92 4a 02 sts 0x024A, r1
4670: 10 92 4b 02 sts 0x024B, r1
4674: 10 92 4c 02 sts 0x024C, r1
4678: 10 92 45 02 sts 0x0245, r1
467c: 10 92 46 02 sts 0x0246, r1
4680: 10 92 47 02 sts 0x0247, r1
4684: 10 92 48 02 sts 0x0248, r1
4688: 10 92 fe 01 sts 0x01FE, r1
468c: 10 92 ff 01 sts 0x01FF, r1
4690: 10 92 00 02 sts 0x0200, r1
4694: 10 92 01 02 sts 0x0201, r1
4698: 10 92 02 02 sts 0x0202, r1
469c: 10 92 03 02 sts 0x0203, r1
46a0: 10 92 04 02 sts 0x0204, r1
46a4: 10 92 05 02 sts 0x0205, r1
46a8: e9 81 ldd r30, Y+1 ; 0x01
46aa: fa 81 ldd r31, Y+2 ; 0x02
46ac: e9 3c cpi r30, 0xC9 ; 201
46ae: f1 05 cpc r31, r1
46b0: 0c f4 brge .+2 ; 0x46b4 <MotorRegler+0x180>
46b2: d6 c0 rjmp .+428 ; 0x4860 <MotorRegler+0x32c>
46b4: 80 91 21 02 lds r24, 0x0221
46b8: 88 23 and r24, r24
46ba: 09 f0 breq .+2 ; 0x46be <MotorRegler+0x18a>
46bc: 72 c1 rjmp .+740 ; 0x49a2 <MotorRegler+0x46e>
46be: e0 91 df 04 lds r30, 0x04DF
46c2: ff 27 eor r31, r31
46c4: ee 0f add r30, r30
46c6: ff 1f adc r31, r31
46c8: e0 55 subi r30, 0x50 ; 80
46ca: fb 4f sbci r31, 0xFB ; 251
46cc: 80 81 ld r24, Z
46ce: 91 81 ldd r25, Z+1 ; 0x01
46d0: 8c 34 cpi r24, 0x4C ; 76
46d2: 91 05 cpc r25, r1
46d4: 0c f4 brge .+2 ; 0x46d8 <MotorRegler+0x1a4>
46d6: c1 c0 rjmp .+386 ; 0x485a <MotorRegler+0x326>
46d8: 80 91 32 02 lds r24, 0x0232
46dc: 8f 5f subi r24, 0xFF ; 255
46de: 80 93 32 02 sts 0x0232, r24
46e2: 89 3c cpi r24, 0xC9 ; 201
46e4: 08 f4 brcc .+2 ; 0x46e8 <MotorRegler+0x1b4>
46e6: 5d c1 rjmp .+698 ; 0x49a2 <MotorRegler+0x46e>
46e8: 29 98 cbi 0x05, 1 ; 5
46ea: 0e 94 63 21 call 0x42c6 ; 0x42c6 <SetNeutral>
46ee: 10 92 21 02 sts 0x0221, r1
46f2: 10 92 32 02 sts 0x0232, r1
46f6: 10 92 2f 02 sts 0x022F, r1
46fa: 10 92 2e 02 sts 0x022E, r1
46fe: 80 91 dc 04 lds r24, 0x04DC
4702: 28 2f mov r18, r24
4704: 33 27 eor r19, r19
4706: f9 01 movw r30, r18
4708: ee 0f add r30, r30
470a: ff 1f adc r31, r31
470c: e0 55 subi r30, 0x50 ; 80
470e: fb 4f sbci r31, 0xFB ; 251
4710: 80 81 ld r24, Z
4712: 91 81 ldd r25, Z+1 ; 0x01
4714: 87 34 cpi r24, 0x47 ; 71
4716: 91 05 cpc r25, r1
4718: 9c f4 brge .+38 ; 0x4740 <MotorRegler+0x20c>
471a: e0 91 dd 04 lds r30, 0x04DD
471e: ff 27 eor r31, r31
4720: ee 0f add r30, r30
4722: ff 1f adc r31, r31
4724: e0 55 subi r30, 0x50 ; 80
4726: fb 4f sbci r31, 0xFB ; 251
4728: 01 90 ld r0, Z+
472a: f0 81 ld r31, Z
472c: e0 2d mov r30, r0
472e: f7 ff sbrs r31, 7
4730: 03 c0 rjmp .+6 ; 0x4738 <MotorRegler+0x204>
4732: f0 95 com r31
4734: e1 95 neg r30
4736: ff 4f sbci r31, 0xFF ; 255
4738: e7 34 cpi r30, 0x47 ; 71
473a: f1 05 cpc r31, r1
473c: 0c f4 brge .+2 ; 0x4740 <MotorRegler+0x20c>
473e: 6c c0 rjmp .+216 ; 0x4818 <MotorRegler+0x2e4>
4740: 80 91 dd 04 lds r24, 0x04DD
4744: 68 2f mov r22, r24
4746: 77 27 eor r23, r23
4748: db 01 movw r26, r22
474a: aa 0f add r26, r26
474c: bb 1f adc r27, r27
474e: a0 55 subi r26, 0x50 ; 80
4750: bb 4f sbci r27, 0xFB ; 251
4752: 8d 91 ld r24, X+
4754: 9c 91 ld r25, X
4756: 11 97 sbiw r26, 0x01 ; 1
4758: 87 34 cpi r24, 0x47 ; 71
475a: 91 05 cpc r25, r1
475c: 3c f0 brlt .+14 ; 0x476c <MotorRegler+0x238>
475e: f9 01 movw r30, r18
4760: ee 0f add r30, r30
4762: ff 1f adc r31, r31
4764: e0 55 subi r30, 0x50 ; 80
4766: fb 4f sbci r31, 0xFB ; 251
4768: 80 81 ld r24, Z
476a: 91 81 ldd r25, Z+1 ; 0x01
476c: 8d 91 ld r24, X+
476e: 9c 91 ld r25, X
4770: 87 34 cpi r24, 0x47 ; 71
4772: 91 05 cpc r25, r1
4774: 64 f0 brlt .+24 ; 0x478e <MotorRegler+0x25a>
4776: f9 01 movw r30, r18
4778: ee 0f add r30, r30
477a: ff 1f adc r31, r31
477c: e0 55 subi r30, 0x50 ; 80
477e: fb 4f sbci r31, 0xFB ; 251
4780: 80 81 ld r24, Z
4782: 91 81 ldd r25, Z+1 ; 0x01
4784: 87 34 cpi r24, 0x47 ; 71
4786: 91 05 cpc r25, r1
4788: 14 f0 brlt .+4 ; 0x478e <MotorRegler+0x25a>
478a: 42 e0 ldi r20, 0x02 ; 2
478c: 01 c0 rjmp .+2 ; 0x4790 <MotorRegler+0x25c>
478e: 41 e0 ldi r20, 0x01 ; 1
4790: fb 01 movw r30, r22
4792: ee 0f add r30, r30
4794: ff 1f adc r31, r31
4796: e0 55 subi r30, 0x50 ; 80
4798: fb 4f sbci r31, 0xFB ; 251
479a: 80 81 ld r24, Z
479c: 91 81 ldd r25, Z+1 ; 0x01
479e: 86 34 cpi r24, 0x46 ; 70
47a0: 91 05 cpc r25, r1
47a2: 5c f4 brge .+22 ; 0x47ba <MotorRegler+0x286>
47a4: f9 01 movw r30, r18
47a6: ee 0f add r30, r30
47a8: ff 1f adc r31, r31
47aa: e0 55 subi r30, 0x50 ; 80
47ac: fb 4f sbci r31, 0xFB ; 251
47ae: 80 81 ld r24, Z
47b0: 91 81 ldd r25, Z+1 ; 0x01
47b2: 87 34 cpi r24, 0x47 ; 71
47b4: 91 05 cpc r25, r1
47b6: 0c f0 brlt .+2 ; 0x47ba <MotorRegler+0x286>
47b8: 43 e0 ldi r20, 0x03 ; 3
47ba: fb 01 movw r30, r22
47bc: ee 0f add r30, r30
47be: ff 1f adc r31, r31
47c0: e0 55 subi r30, 0x50 ; 80
47c2: fb 4f sbci r31, 0xFB ; 251
47c4: 80 81 ld r24, Z
47c6: 91 81 ldd r25, Z+1 ; 0x01
47c8: 8a 5b subi r24, 0xBA ; 186
47ca: 9f 4f sbci r25, 0xFF ; 255
47cc: 5c f4 brge .+22 ; 0x47e4 <MotorRegler+0x2b0>
47ce: f9 01 movw r30, r18
47d0: ee 0f add r30, r30
47d2: ff 1f adc r31, r31
47d4: e0 55 subi r30, 0x50 ; 80
47d6: fb 4f sbci r31, 0xFB ; 251
47d8: 80 81 ld r24, Z
47da: 91 81 ldd r25, Z+1 ; 0x01
47dc: 87 34 cpi r24, 0x47 ; 71
47de: 91 05 cpc r25, r1
47e0: 0c f0 brlt .+2 ; 0x47e4 <MotorRegler+0x2b0>
47e2: 44 e0 ldi r20, 0x04 ; 4
47e4: 66 0f add r22, r22
47e6: 77 1f adc r23, r23
47e8: 60 55 subi r22, 0x50 ; 80
47ea: 7b 4f sbci r23, 0xFB ; 251
47ec: fb 01 movw r30, r22
47ee: 80 81 ld r24, Z
47f0: 91 81 ldd r25, Z+1 ; 0x01
47f2: 8a 5b subi r24, 0xBA ; 186
47f4: 9f 4f sbci r25, 0xFF ; 255
47f6: 5c f4 brge .+22 ; 0x480e <MotorRegler+0x2da>
47f8: 22 0f add r18, r18
47fa: 33 1f adc r19, r19
47fc: 20 55 subi r18, 0x50 ; 80
47fe: 3b 4f sbci r19, 0xFB ; 251
4800: f9 01 movw r30, r18
4802: 80 81 ld r24, Z
4804: 91 81 ldd r25, Z+1 ; 0x01
4806: 86 34 cpi r24, 0x46 ; 70
4808: 91 05 cpc r25, r1
480a: 0c f4 brge .+2 ; 0x480e <MotorRegler+0x2da>
480c: 45 e0 ldi r20, 0x05 ; 5
480e: a2 e0 ldi r26, 0x02 ; 2
4810: b0 e0 ldi r27, 0x00 ; 0
4812: 04 2e mov r0, r20
4814: 0e 94 05 2f call 0x5e0a ; 0x5e0a <__eeprom_write_byte_1F2021>
4818: 0e 94 fc 03 call 0x7f8 ; 0x7f8 <GetActiveParamSetNumber>
481c: 4a e3 ldi r20, 0x3A ; 58
481e: 6c ed ldi r22, 0xDC ; 220
4820: 74 e0 ldi r23, 0x04 ; 4
4822: 0e 94 1b 04 call 0x836 ; 0x836 <ReadParameterSet>
4826: 0e 94 fc 03 call 0x7f8 ; 0x7f8 <GetActiveParamSetNumber>
482a: 0e 94 85 22 call 0x450a ; 0x450a <Piep>
482e: 80 91 e4 04 lds r24, 0x04E4
4832: 80 ff sbrs r24, 0
4834: b6 c0 rjmp .+364 ; 0x49a2 <MotorRegler+0x46e>
4836: 80 91 0c 01 lds r24, 0x010C
483a: 90 91 0d 01 lds r25, 0x010D
483e: 87 5b subi r24, 0xB7 ; 183
4840: 93 40 sbci r25, 0x03 ; 3
4842: 40 f4 brcc .+16 ; 0x4854 <MotorRegler+0x320>
4844: 80 91 0c 01 lds r24, 0x010C
4848: 90 91 0d 01 lds r25, 0x010D
484c: 8e 5e subi r24, 0xEE ; 238
484e: 92 40 sbci r25, 0x02 ; 2
4850: 08 f0 brcs .+2 ; 0x4854 <MotorRegler+0x320>
4852: a7 c0 rjmp .+334 ; 0x49a2 <MotorRegler+0x46e>
4854: 0e 94 71 10 call 0x20e2 ; 0x20e2 <SucheLuftruckOffset>
4858: a4 c0 rjmp .+328 ; 0x49a2 <MotorRegler+0x46e>
485a: 10 92 32 02 sts 0x0232, r1
485e: a1 c0 rjmp .+322 ; 0x49a2 <MotorRegler+0x46e>
4860: 49 81 ldd r20, Y+1 ; 0x01
4862: 5a 81 ldd r21, Y+2 ; 0x02
4864: 43 32 cpi r20, 0x23 ; 35
4866: 51 05 cpc r21, r1
4868: 0c f0 brlt .+2 ; 0x486c <MotorRegler+0x338>
486a: 9b c0 rjmp .+310 ; 0x49a2 <MotorRegler+0x46e>
486c: 80 91 df 04 lds r24, 0x04DF
4870: 48 2f mov r20, r24
4872: 55 27 eor r21, r21
4874: fa 01 movw r30, r20
4876: ee 0f add r30, r30
4878: ff 1f adc r31, r31
487a: e0 55 subi r30, 0x50 ; 80
487c: fb 4f sbci r31, 0xFB ; 251
487e: 80 81 ld r24, Z
4880: 91 81 ldd r25, Z+1 ; 0x01
4882: 85 5b subi r24, 0xB5 ; 181
4884: 9f 4f sbci r25, 0xFF ; 255
4886: 0c f0 brlt .+2 ; 0x488a <MotorRegler+0x356>
4888: 6d c0 rjmp .+218 ; 0x4964 <MotorRegler+0x430>
488a: 80 91 31 02 lds r24, 0x0231
488e: 8f 5f subi r24, 0xFF ; 255
4890: 80 93 31 02 sts 0x0231, r24
4894: 89 3c cpi r24, 0xC9 ; 201
4896: 08 f4 brcc .+2 ; 0x489a <MotorRegler+0x366>
4898: 67 c0 rjmp .+206 ; 0x4968 <MotorRegler+0x434>
489a: 88 ec ldi r24, 0xC8 ; 200
489c: 80 93 31 02 sts 0x0231, r24
48a0: 81 e0 ldi r24, 0x01 ; 1
48a2: 90 e0 ldi r25, 0x00 ; 0
48a4: 90 93 2f 02 sts 0x022F, r25
48a8: 80 93 2e 02 sts 0x022E, r24
48ac: 81 e0 ldi r24, 0x01 ; 1
48ae: 80 93 21 02 sts 0x0221, r24
48b2: 10 92 41 02 sts 0x0241, r1
48b6: 10 92 42 02 sts 0x0242, r1
48ba: 10 92 43 02 sts 0x0243, r1
48be: 10 92 44 02 sts 0x0244, r1
48c2: 10 92 fe 01 sts 0x01FE, r1
48c6: 10 92 ff 01 sts 0x01FF, r1
48ca: 10 92 00 02 sts 0x0200, r1
48ce: 10 92 01 02 sts 0x0201, r1
48d2: 10 92 02 02 sts 0x0202, r1
48d6: 10 92 03 02 sts 0x0203, r1
48da: 10 92 04 02 sts 0x0204, r1
48de: 10 92 05 02 sts 0x0205, r1
48e2: 10 92 ee 01 sts 0x01EE, r1
48e6: 10 92 ef 01 sts 0x01EF, r1
48ea: 10 92 f0 01 sts 0x01F0, r1
48ee: 10 92 f1 01 sts 0x01F1, r1
48f2: 10 92 f6 01 sts 0x01F6, r1
48f6: 10 92 f7 01 sts 0x01F7, r1
48fa: 10 92 f8 01 sts 0x01F8, r1
48fe: 10 92 f9 01 sts 0x01F9, r1
4902: 80 91 da 01 lds r24, 0x01DA
4906: 90 91 db 01 lds r25, 0x01DB
490a: a0 91 dc 01 lds r26, 0x01DC
490e: b0 91 dd 01 lds r27, 0x01DD
4912: 80 93 f2 01 sts 0x01F2, r24
4916: 90 93 f3 01 sts 0x01F3, r25
491a: a0 93 f4 01 sts 0x01F4, r26
491e: b0 93 f5 01 sts 0x01F5, r27
4922: 80 91 e2 01 lds r24, 0x01E2
4926: 90 91 e3 01 lds r25, 0x01E3
492a: a0 91 e4 01 lds r26, 0x01E4
492e: b0 91 e5 01 lds r27, 0x01E5
4932: 80 93 fa 01 sts 0x01FA, r24
4936: 90 93 fb 01 sts 0x01FB, r25
493a: a0 93 fc 01 sts 0x01FC, r26
493e: b0 93 fd 01 sts 0x01FD, r27
4942: 10 92 49 02 sts 0x0249, r1
4946: 10 92 4a 02 sts 0x024A, r1
494a: 10 92 4b 02 sts 0x024B, r1
494e: 10 92 4c 02 sts 0x024C, r1
4952: 10 92 45 02 sts 0x0245, r1
4956: 10 92 46 02 sts 0x0246, r1
495a: 10 92 47 02 sts 0x0247, r1
495e: 10 92 48 02 sts 0x0248, r1
4962: 02 c0 rjmp .+4 ; 0x4968 <MotorRegler+0x434>
4964: 10 92 31 02 sts 0x0231, r1
4968: 44 0f add r20, r20
496a: 55 1f adc r21, r21
496c: 40 55 subi r20, 0x50 ; 80
496e: 5b 4f sbci r21, 0xFB ; 251
4970: fa 01 movw r30, r20
4972: 80 81 ld r24, Z
4974: 91 81 ldd r25, Z+1 ; 0x01
4976: 8c 34 cpi r24, 0x4C ; 76
4978: 91 05 cpc r25, r1
497a: 8c f0 brlt .+34 ; 0x499e <MotorRegler+0x46a>
497c: 80 91 30 02 lds r24, 0x0230
4980: 8f 5f subi r24, 0xFF ; 255
4982: 80 93 30 02 sts 0x0230, r24
4986: 89 3c cpi r24, 0xC9 ; 201
4988: 60 f0 brcs .+24 ; 0x49a2 <MotorRegler+0x46e>
498a: 10 92 21 02 sts 0x0221, r1
498e: 88 ec ldi r24, 0xC8 ; 200
4990: 80 93 30 02 sts 0x0230, r24
4994: 10 92 2f 02 sts 0x022F, r1
4998: 10 92 2e 02 sts 0x022E, r1
499c: 02 c0 rjmp .+4 ; 0x49a2 <MotorRegler+0x46e>
499e: 10 92 30 02 sts 0x0230, r1
49a2: 80 91 69 01 lds r24, 0x0169
49a6: 81 50 subi r24, 0x01 ; 1
49a8: 80 93 69 01 sts 0x0169, r24
49ac: 80 91 69 01 lds r24, 0x0169
49b0: 8f 3f cpi r24, 0xFF ; 255
49b2: 29 f0 breq .+10 ; 0x49be <MotorRegler+0x48a>
49b4: 80 91 10 02 lds r24, 0x0210
49b8: 88 23 and r24, r24
49ba: 09 f4 brne .+2 ; 0x49be <MotorRegler+0x48a>
49bc: 12 c1 rjmp .+548 ; 0x4be2 <MotorRegler+0x6ae>
49be: 0e 94 f2 1d call 0x3be4 ; 0x3be4 <ParameterZuordnung>
49c2: e0 91 dc 04 lds r30, 0x04DC
49c6: ff 27 eor r31, r31
49c8: ee 0f add r30, r30
49ca: ff 1f adc r31, r31
49cc: df 01 movw r26, r30
49ce: a0 55 subi r26, 0x50 ; 80
49d0: bb 4f sbci r27, 0xFB ; 251
49d2: 8d 91 ld r24, X+
49d4: 9c 91 ld r25, X
49d6: 60 91 eb 04 lds r22, 0x04EB
49da: 77 27 eor r23, r23
49dc: ea 53 subi r30, 0x3A ; 58
49de: fb 4f sbci r31, 0xFB ; 251
49e0: 20 81 ld r18, Z
49e2: 31 81 ldd r19, Z+1 ; 0x01
49e4: 40 91 ec 04 lds r20, 0x04EC
49e8: 55 27 eor r21, r21
49ea: fc 01 movw r30, r24
49ec: e6 9f mul r30, r22
49ee: c0 01 movw r24, r0
49f0: e7 9f mul r30, r23
49f2: 90 0d add r25, r0
49f4: f6 9f mul r31, r22
49f6: 90 0d add r25, r0
49f8: 11 24 eor r1, r1
49fa: f9 01 movw r30, r18
49fc: e4 9f mul r30, r20
49fe: 90 01 movw r18, r0
4a00: e5 9f mul r30, r21
4a02: 30 0d add r19, r0
4a04: f4 9f mul r31, r20
4a06: 30 0d add r19, r0
4a08: 11 24 eor r1, r1
4a0a: 82 0f add r24, r18
4a0c: 93 1f adc r25, r19
4a0e: 90 93 1c 02 sts 0x021C, r25
4a12: 80 93 1b 02 sts 0x021B, r24
4a16: e0 91 dd 04 lds r30, 0x04DD
4a1a: ff 27 eor r31, r31
4a1c: ee 0f add r30, r30
4a1e: ff 1f adc r31, r31
4a20: df 01 movw r26, r30
4a22: a0 55 subi r26, 0x50 ; 80
4a24: bb 4f sbci r27, 0xFB ; 251
4a26: 8d 91 ld r24, X+
4a28: 9c 91 ld r25, X
4a2a: ea 53 subi r30, 0x3A ; 58
4a2c: fb 4f sbci r31, 0xFB ; 251
4a2e: 20 81 ld r18, Z
4a30: 31 81 ldd r19, Z+1 ; 0x01
4a32: fc 01 movw r30, r24
4a34: e6 9f mul r30, r22
4a36: c0 01 movw r24, r0
4a38: e7 9f mul r30, r23
4a3a: 90 0d add r25, r0
4a3c: f6 9f mul r31, r22
4a3e: 90 0d add r25, r0
4a40: 11 24 eor r1, r1
4a42: b9 01 movw r22, r18
4a44: 64 9f mul r22, r20
4a46: 90 01 movw r18, r0
4a48: 65 9f mul r22, r21
4a4a: 30 0d add r19, r0
4a4c: 74 9f mul r23, r20
4a4e: 30 0d add r19, r0
4a50: 11 24 eor r1, r1
4a52: 82 0f add r24, r18
4a54: 93 1f adc r25, r19
4a56: 90 93 1e 02 sts 0x021E, r25
4a5a: 80 93 1d 02 sts 0x021D, r24
4a5e: e0 91 df 04 lds r30, 0x04DF
4a62: ff 27 eor r31, r31
4a64: ee 0f add r30, r30
4a66: ff 1f adc r31, r31
4a68: e0 55 subi r30, 0x50 ; 80
4a6a: fb 4f sbci r31, 0xFB ; 251
4a6c: 80 81 ld r24, Z
4a6e: 91 81 ldd r25, Z+1 ; 0x01
4a70: 90 95 com r25
4a72: 81 95 neg r24
4a74: 9f 4f sbci r25, 0xFF ; 255
4a76: 90 93 20 02 sts 0x0220, r25
4a7a: 80 93 1f 02 sts 0x021F, r24
4a7e: 10 91 87 01 lds r17, 0x0187
4a82: 61 2f mov r22, r17
4a84: 77 27 eor r23, r23
4a86: 67 fd sbrc r22, 7
4a88: 70 95 com r23
4a8a: 87 2f mov r24, r23
4a8c: 97 2f mov r25, r23
4a8e: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
4a92: 17 ff sbrs r17, 7
4a94: 06 c0 rjmp .+12 ; 0x4aa2 <MotorRegler+0x56e>
4a96: 20 e0 ldi r18, 0x00 ; 0
4a98: 30 e0 ldi r19, 0x00 ; 0
4a9a: 40 e8 ldi r20, 0x80 ; 128
4a9c: 53 e4 ldi r21, 0x43 ; 67
4a9e: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
4aa2: 20 e0 ldi r18, 0x00 ; 0
4aa4: 30 e0 ldi r19, 0x00 ; 0
4aa6: 40 e2 ldi r20, 0x20 ; 32
4aa8: 51 e4 ldi r21, 0x41 ; 65
4aaa: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
4aae: 20 e0 ldi r18, 0x00 ; 0
4ab0: 30 e0 ldi r19, 0x00 ; 0
4ab2: 40 e8 ldi r20, 0x80 ; 128
4ab4: 5b e3 ldi r21, 0x3B ; 59
4ab6: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
4aba: 3b 01 movw r6, r22
4abc: 4c 01 movw r8, r24
4abe: 60 93 2e 05 sts 0x052E, r22
4ac2: 70 93 2f 05 sts 0x052F, r23
4ac6: 80 93 30 05 sts 0x0530, r24
4aca: 90 93 31 05 sts 0x0531, r25
4ace: 10 91 88 01 lds r17, 0x0188
4ad2: 61 2f mov r22, r17
4ad4: 77 27 eor r23, r23
4ad6: 67 fd sbrc r22, 7
4ad8: 70 95 com r23
4ada: 87 2f mov r24, r23
4adc: 97 2f mov r25, r23
4ade: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
4ae2: 17 ff sbrs r17, 7
4ae4: 06 c0 rjmp .+12 ; 0x4af2 <MotorRegler+0x5be>
4ae6: 20 e0 ldi r18, 0x00 ; 0
4ae8: 30 e0 ldi r19, 0x00 ; 0
4aea: 40 e8 ldi r20, 0x80 ; 128
4aec: 53 e4 ldi r21, 0x43 ; 67
4aee: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
4af2: 20 e0 ldi r18, 0x00 ; 0
4af4: 30 ee ldi r19, 0xE0 ; 224
4af6: 4b e2 ldi r20, 0x2B ; 43
4af8: 57 e4 ldi r21, 0x47 ; 71
4afa: 0e 94 13 2d call 0x5a26 ; 0x5a26 <__divsf3>
4afe: 60 93 1d 05 sts 0x051D, r22
4b02: 70 93 1e 05 sts 0x051E, r23
4b06: 80 93 1f 05 sts 0x051F, r24
4b0a: 90 93 20 05 sts 0x0520, r25
4b0e: 80 91 e4 04 lds r24, 0x04E4
4b12: 82 ff sbrs r24, 2
4b14: 0c c0 rjmp .+24 ; 0x4b2e <MotorRegler+0x5fa>
4b16: 80 e0 ldi r24, 0x00 ; 0
4b18: 90 e0 ldi r25, 0x00 ; 0
4b1a: a0 e0 ldi r26, 0x00 ; 0
4b1c: b0 e0 ldi r27, 0x00 ; 0
4b1e: 80 93 1d 05 sts 0x051D, r24
4b22: 90 93 1e 05 sts 0x051E, r25
4b26: a0 93 1f 05 sts 0x051F, r26
4b2a: b0 93 20 05 sts 0x0520, r27
4b2e: 20 e0 ldi r18, 0x00 ; 0
4b30: 30 e0 ldi r19, 0x00 ; 0
4b32: 40 e0 ldi r20, 0x00 ; 0
4b34: 50 e0 ldi r21, 0x00 ; 0
4b36: c4 01 movw r24, r8
4b38: b3 01 movw r22, r6
4b3a: 0e 94 80 2d call 0x5b00 ; 0x5b00 <__eqsf2>
4b3e: 88 23 and r24, r24
4b40: 64 f4 brge .+24 ; 0x4b5a <MotorRegler+0x626>
4b42: 80 e0 ldi r24, 0x00 ; 0
4b44: 90 e0 ldi r25, 0x00 ; 0
4b46: a0 e0 ldi r26, 0x00 ; 0
4b48: b0 e0 ldi r27, 0x00 ; 0
4b4a: 80 93 2e 05 sts 0x052E, r24
4b4e: 90 93 2f 05 sts 0x052F, r25
4b52: a0 93 30 05 sts 0x0530, r26
4b56: b0 93 31 05 sts 0x0531, r27
4b5a: 20 e0 ldi r18, 0x00 ; 0
4b5c: 30 e0 ldi r19, 0x00 ; 0
4b5e: 40 e0 ldi r20, 0x00 ; 0
4b60: 50 e0 ldi r21, 0x00 ; 0
4b62: 60 91 1d 05 lds r22, 0x051D
4b66: 70 91 1e 05 lds r23, 0x051E
4b6a: 80 91 1f 05 lds r24, 0x051F
4b6e: 90 91 20 05 lds r25, 0x0520
4b72: 0e 94 80 2d call 0x5b00 ; 0x5b00 <__eqsf2>
4b76: 88 23 and r24, r24
4b78: 64 f4 brge .+24 ; 0x4b92 <MotorRegler+0x65e>
4b7a: 80 e0 ldi r24, 0x00 ; 0
4b7c: 90 e0 ldi r25, 0x00 ; 0
4b7e: a0 e0 ldi r26, 0x00 ; 0
4b80: b0 e0 ldi r27, 0x00 ; 0
4b82: 80 93 1d 05 sts 0x051D, r24
4b86: 90 93 1e 05 sts 0x051E, r25
4b8a: a0 93 1f 05 sts 0x051F, r26
4b8e: b0 93 20 05 sts 0x0520, r27
4b92: 80 91 10 02 lds r24, 0x0210
4b96: 88 23 and r24, r24
4b98: 21 f1 breq .+72 ; 0x4be2 <MotorRegler+0x6ae>
4b9a: 10 92 20 02 sts 0x0220, r1
4b9e: 10 92 1f 02 sts 0x021F, r1
4ba2: 10 92 1c 02 sts 0x021C, r1
4ba6: 10 92 1b 02 sts 0x021B, r1
4baa: 10 92 1e 02 sts 0x021E, r1
4bae: 10 92 1d 02 sts 0x021D, r1
4bb2: 8d ec ldi r24, 0xCD ; 205
4bb4: 9c ec ldi r25, 0xCC ; 204
4bb6: ac ec ldi r26, 0xCC ; 204
4bb8: bd e3 ldi r27, 0x3D ; 61
4bba: 80 93 2e 05 sts 0x052E, r24
4bbe: 90 93 2f 05 sts 0x052F, r25
4bc2: a0 93 30 05 sts 0x0530, r26
4bc6: b0 93 31 05 sts 0x0531, r27
4bca: 8a e0 ldi r24, 0x0A ; 10
4bcc: 97 ed ldi r25, 0xD7 ; 215
4bce: a3 ea ldi r26, 0xA3 ; 163
4bd0: bb e3 ldi r27, 0x3B ; 59
4bd2: 80 93 1d 05 sts 0x051D, r24
4bd6: 90 93 1e 05 sts 0x051E, r25
4bda: a0 93 1f 05 sts 0x051F, r26
4bde: b0 93 20 05 sts 0x0520, r27
4be2: 80 91 c1 01 lds r24, 0x01C1
4be6: 90 91 c2 01 lds r25, 0x01C2
4bea: 8d 54 subi r24, 0x4D ; 77
4bec: 91 40 sbci r25, 0x01 ; 1
4bee: 08 f4 brcc .+2 ; 0x4bf2 <MotorRegler+0x6be>
4bf0: 90 c0 rjmp .+288 ; 0x4d12 <MotorRegler+0x7de>
4bf2: 20 91 de 01 lds r18, 0x01DE
4bf6: 30 91 df 01 lds r19, 0x01DF
4bfa: 40 91 e0 01 lds r20, 0x01E0
4bfe: 50 91 e1 01 lds r21, 0x01E1
4c02: 80 91 da 01 lds r24, 0x01DA
4c06: 90 91 db 01 lds r25, 0x01DB
4c0a: a0 91 dc 01 lds r26, 0x01DC
4c0e: b0 91 dd 01 lds r27, 0x01DD
4c12: b9 01 movw r22, r18
4c14: 68 1b sub r22, r24
4c16: 79 0b sbc r23, r25
4c18: 70 93 38 02 sts 0x0238, r23
4c1c: 60 93 37 02 sts 0x0237, r22
4c20: 20 91 e6 01 lds r18, 0x01E6
4c24: 30 91 e7 01 lds r19, 0x01E7
4c28: 40 91 e8 01 lds r20, 0x01E8
4c2c: 50 91 e9 01 lds r21, 0x01E9
4c30: 80 91 e2 01 lds r24, 0x01E2
4c34: 90 91 e3 01 lds r25, 0x01E3
4c38: a0 91 e4 01 lds r26, 0x01E4
4c3c: b0 91 e5 01 lds r27, 0x01E5
4c40: 28 1b sub r18, r24
4c42: 39 0b sbc r19, r25
4c44: 30 93 36 02 sts 0x0236, r19
4c48: 20 93 35 02 sts 0x0235, r18
4c4c: 10 92 c2 01 sts 0x01C2, r1
4c50: 10 92 c1 01 sts 0x01C1, r1
4c54: 67 3a cpi r22, 0xA7 ; 167
4c56: 71 05 cpc r23, r1
4c58: 34 f0 brlt .+12 ; 0x4c66 <MotorRegler+0x732>
4c5a: 80 91 d2 01 lds r24, 0x01D2
4c5e: 90 91 d3 01 lds r25, 0x01D3
4c62: 01 96 adiw r24, 0x01 ; 1
4c64: 08 c0 rjmp .+16 ; 0x4c76 <MotorRegler+0x742>
4c66: 6a 55 subi r22, 0x5A ; 90
4c68: 7f 4f sbci r23, 0xFF ; 255
4c6a: 4c f4 brge .+18 ; 0x4c7e <MotorRegler+0x74a>
4c6c: 80 91 d2 01 lds r24, 0x01D2
4c70: 90 91 d3 01 lds r25, 0x01D3
4c74: 01 97 sbiw r24, 0x01 ; 1
4c76: 90 93 d3 01 sts 0x01D3, r25
4c7a: 80 93 d2 01 sts 0x01D2, r24
4c7e: 27 3a cpi r18, 0xA7 ; 167
4c80: 31 05 cpc r19, r1
4c82: 34 f0 brlt .+12 ; 0x4c90 <MotorRegler+0x75c>
4c84: 80 91 d4 01 lds r24, 0x01D4
4c88: 90 91 d5 01 lds r25, 0x01D5
4c8c: 01 96 adiw r24, 0x01 ; 1
4c8e: 08 c0 rjmp .+16 ; 0x4ca0 <MotorRegler+0x76c>
4c90: 2a 55 subi r18, 0x5A ; 90
4c92: 3f 4f sbci r19, 0xFF ; 255
4c94: 4c f4 brge .+18 ; 0x4ca8 <MotorRegler+0x774>
4c96: 80 91 d4 01 lds r24, 0x01D4
4c9a: 90 91 d5 01 lds r25, 0x01D5
4c9e: 01 97 sbiw r24, 0x01 ; 1
4ca0: 90 93 d5 01 sts 0x01D5, r25
4ca4: 80 93 d4 01 sts 0x01D4, r24
4ca8: 10 92 7a 00 sts 0x007A, r1
4cac: 80 91 da 01 lds r24, 0x01DA
4cb0: 90 91 db 01 lds r25, 0x01DB
4cb4: a0 91 dc 01 lds r26, 0x01DC
4cb8: b0 91 dd 01 lds r27, 0x01DD
4cbc: 80 93 f2 01 sts 0x01F2, r24
4cc0: 90 93 f3 01 sts 0x01F3, r25
4cc4: a0 93 f4 01 sts 0x01F4, r26
4cc8: b0 93 f5 01 sts 0x01F5, r27
4ccc: 80 91 e2 01 lds r24, 0x01E2
4cd0: 90 91 e3 01 lds r25, 0x01E3
4cd4: a0 91 e4 01 lds r26, 0x01E4
4cd8: b0 91 e5 01 lds r27, 0x01E5
4cdc: 80 93 fa 01 sts 0x01FA, r24
4ce0: 90 93 fb 01 sts 0x01FB, r25
4ce4: a0 93 fc 01 sts 0x01FC, r26
4ce8: b0 93 fd 01 sts 0x01FD, r27
4cec: 80 91 ea 01 lds r24, 0x01EA
4cf0: 90 91 eb 01 lds r25, 0x01EB
4cf4: a0 91 ec 01 lds r26, 0x01EC
4cf8: b0 91 ed 01 lds r27, 0x01ED
4cfc: 80 93 02 02 sts 0x0202, r24
4d00: 90 93 03 02 sts 0x0203, r25
4d04: a0 93 04 02 sts 0x0204, r26
4d08: b0 93 05 02 sts 0x0205, r27
4d0c: 8f ee ldi r24, 0xEF ; 239
4d0e: 80 93 7a 00 sts 0x007A, r24
4d12: 60 91 da 01 lds r22, 0x01DA
4d16: 70 91 db 01 lds r23, 0x01DB
4d1a: 80 91 dc 01 lds r24, 0x01DC
4d1e: 90 91 dd 01 lds r25, 0x01DD
4d22: a0 90 f0 04 lds r10, 0x04F0
4d26: bb 24 eor r11, r11
4d28: cc 24 eor r12, r12
4d2a: dd 24 eor r13, r13
4d2c: e0 90 29 05 lds r14, 0x0529
4d30: f0 90 2a 05 lds r15, 0x052A
4d34: a6 01 movw r20, r12
4d36: 95 01 movw r18, r10
4d38: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
4d3c: 00 27 eor r16, r16
4d3e: f7 fc sbrc r15, 7
4d40: 00 95 com r16
4d42: 10 2f mov r17, r16
4d44: 2e 19 sub r18, r14
4d46: 3f 09 sbc r19, r15
4d48: 40 0b sbc r20, r16
4d4a: 51 0b sbc r21, r17
4d4c: ca 01 movw r24, r20
4d4e: b9 01 movw r22, r18
4d50: 20 e1 ldi r18, 0x10 ; 16
4d52: 30 e0 ldi r19, 0x00 ; 0
4d54: 40 e0 ldi r20, 0x00 ; 0
4d56: 50 e0 ldi r21, 0x00 ; 0
4d58: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
4d5c: 39 01 movw r6, r18
4d5e: 4a 01 movw r8, r20
4d60: 20 93 3d 02 sts 0x023D, r18
4d64: 30 93 3e 02 sts 0x023E, r19
4d68: 40 93 3f 02 sts 0x023F, r20
4d6c: 50 93 40 02 sts 0x0240, r21
4d70: 60 91 e2 01 lds r22, 0x01E2
4d74: 70 91 e3 01 lds r23, 0x01E3
4d78: 80 91 e4 01 lds r24, 0x01E4
4d7c: 90 91 e5 01 lds r25, 0x01E5
4d80: e0 90 32 05 lds r14, 0x0532
4d84: f0 90 33 05 lds r15, 0x0533
4d88: a6 01 movw r20, r12
4d8a: 95 01 movw r18, r10
4d8c: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
4d90: 00 27 eor r16, r16
4d92: f7 fc sbrc r15, 7
4d94: 00 95 com r16
4d96: 10 2f mov r17, r16
4d98: 2e 19 sub r18, r14
4d9a: 3f 09 sbc r19, r15
4d9c: 40 0b sbc r20, r16
4d9e: 51 0b sbc r21, r17
4da0: ca 01 movw r24, r20
4da2: b9 01 movw r22, r18
4da4: 20 e1 ldi r18, 0x10 ; 16
4da6: 30 e0 ldi r19, 0x00 ; 0
4da8: 40 e0 ldi r20, 0x00 ; 0
4daa: 50 e0 ldi r21, 0x00 ; 0
4dac: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
4db0: 20 93 39 02 sts 0x0239, r18
4db4: 30 93 3a 02 sts 0x023A, r19
4db8: 40 93 3b 02 sts 0x023B, r20
4dbc: 50 93 3c 02 sts 0x023C, r21
4dc0: e5 ef ldi r30, 0xF5 ; 245
4dc2: 6e 16 cp r6, r30
4dc4: e1 e0 ldi r30, 0x01 ; 1
4dc6: 7e 06 cpc r7, r30
4dc8: e0 e0 ldi r30, 0x00 ; 0
4dca: 8e 06 cpc r8, r30
4dcc: e0 e0 ldi r30, 0x00 ; 0
4dce: 9e 06 cpc r9, r30
4dd0: 2c f0 brlt .+10 ; 0x4ddc <MotorRegler+0x8a8>
4dd2: 84 ef ldi r24, 0xF4 ; 244
4dd4: 91 e0 ldi r25, 0x01 ; 1
4dd6: a0 e0 ldi r26, 0x00 ; 0
4dd8: b0 e0 ldi r27, 0x00 ; 0
4dda: 0d c0 rjmp .+26 ; 0x4df6 <MotorRegler+0x8c2>
4ddc: fc e0 ldi r31, 0x0C ; 12
4dde: 6f 16 cp r6, r31
4de0: fe ef ldi r31, 0xFE ; 254
4de2: 7f 06 cpc r7, r31
4de4: ff ef ldi r31, 0xFF ; 255
4de6: 8f 06 cpc r8, r31
4de8: ff ef ldi r31, 0xFF ; 255
4dea: 9f 06 cpc r9, r31
4dec: 64 f4 brge .+24 ; 0x4e06 <MotorRegler+0x8d2>
4dee: 8c e0 ldi r24, 0x0C ; 12
4df0: 9e ef ldi r25, 0xFE ; 254
4df2: af ef ldi r26, 0xFF ; 255
4df4: bf ef ldi r27, 0xFF ; 255
4df6: 80 93 3d 02 sts 0x023D, r24
4dfa: 90 93 3e 02 sts 0x023E, r25
4dfe: a0 93 3f 02 sts 0x023F, r26
4e02: b0 93 40 02 sts 0x0240, r27
4e06: 25 3f cpi r18, 0xF5 ; 245
4e08: 61 e0 ldi r22, 0x01 ; 1
4e0a: 36 07 cpc r19, r22
4e0c: 60 e0 ldi r22, 0x00 ; 0
4e0e: 46 07 cpc r20, r22
4e10: 60 e0 ldi r22, 0x00 ; 0
4e12: 56 07 cpc r21, r22
4e14: 2c f0 brlt .+10 ; 0x4e20 <MotorRegler+0x8ec>
4e16: 84 ef ldi r24, 0xF4 ; 244
4e18: 91 e0 ldi r25, 0x01 ; 1
4e1a: a0 e0 ldi r26, 0x00 ; 0
4e1c: b0 e0 ldi r27, 0x00 ; 0
4e1e: 09 c0 rjmp .+18 ; 0x4e32 <MotorRegler+0x8fe>
4e20: 2c 50 subi r18, 0x0C ; 12
4e22: 3e 4f sbci r19, 0xFE ; 254
4e24: 4f 4f sbci r20, 0xFF ; 255
4e26: 5f 4f sbci r21, 0xFF ; 255
4e28: 64 f4 brge .+24 ; 0x4e42 <MotorRegler+0x90e>
4e2a: 8c e0 ldi r24, 0x0C ; 12
4e2c: 9e ef ldi r25, 0xFE ; 254
4e2e: af ef ldi r26, 0xFF ; 255
4e30: bf ef ldi r27, 0xFF ; 255
4e32: 80 93 39 02 sts 0x0239, r24
4e36: 90 93 3a 02 sts 0x023A, r25
4e3a: a0 93 3b 02 sts 0x023B, r26
4e3e: b0 93 3c 02 sts 0x023C, r27
4e42: 10 92 7a 00 sts 0x007A, r1
4e46: 80 91 ee 01 lds r24, 0x01EE
4e4a: 90 91 ef 01 lds r25, 0x01EF
4e4e: a0 91 f0 01 lds r26, 0x01F0
4e52: b0 91 f1 01 lds r27, 0x01F1
4e56: 20 91 3d 02 lds r18, 0x023D
4e5a: 30 91 3e 02 lds r19, 0x023E
4e5e: 40 91 3f 02 lds r20, 0x023F
4e62: 50 91 40 02 lds r21, 0x0240
4e66: 82 1b sub r24, r18
4e68: 93 0b sbc r25, r19
4e6a: a4 0b sbc r26, r20
4e6c: b5 0b sbc r27, r21
4e6e: 80 93 ee 01 sts 0x01EE, r24
4e72: 90 93 ef 01 sts 0x01EF, r25
4e76: a0 93 f0 01 sts 0x01F0, r26
4e7a: b0 93 f1 01 sts 0x01F1, r27
4e7e: 80 91 f6 01 lds r24, 0x01F6
4e82: 90 91 f7 01 lds r25, 0x01F7
4e86: a0 91 f8 01 lds r26, 0x01F8
4e8a: b0 91 f9 01 lds r27, 0x01F9
4e8e: 20 91 39 02 lds r18, 0x0239
4e92: 30 91 3a 02 lds r19, 0x023A
4e96: 40 91 3b 02 lds r20, 0x023B
4e9a: 50 91 3c 02 lds r21, 0x023C
4e9e: 82 1b sub r24, r18
4ea0: 93 0b sbc r25, r19
4ea2: a4 0b sbc r26, r20
4ea4: b5 0b sbc r27, r21
4ea6: 80 93 f6 01 sts 0x01F6, r24
4eaa: 90 93 f7 01 sts 0x01F7, r25
4eae: a0 93 f8 01 sts 0x01F8, r26
4eb2: b0 93 f9 01 sts 0x01F9, r27
4eb6: 80 91 1f 02 lds r24, 0x021F
4eba: 90 91 20 02 lds r25, 0x0220
4ebe: 9c 01 movw r18, r24
4ec0: 44 27 eor r20, r20
4ec2: 37 fd sbrc r19, 7
4ec4: 40 95 com r20
4ec6: 54 2f mov r21, r20
4ec8: 2b 83 std Y+3, r18 ; 0x03
4eca: 3c 83 std Y+4, r19 ; 0x04
4ecc: 4d 83 std Y+5, r20 ; 0x05
4ece: 5e 83 std Y+6, r21 ; 0x06
4ed0: 20 93 41 02 sts 0x0241, r18
4ed4: 30 93 42 02 sts 0x0242, r19
4ed8: 40 93 43 02 sts 0x0243, r20
4edc: 50 93 44 02 sts 0x0244, r21
4ee0: 97 ff sbrs r25, 7
4ee2: 03 c0 rjmp .+6 ; 0x4eea <MotorRegler+0x9b6>
4ee4: 90 95 com r25
4ee6: 81 95 neg r24
4ee8: 9f 4f sbci r25, 0xFF ; 255
4eea: 84 97 sbiw r24, 0x24 ; 36
4eec: 3c f0 brlt .+14 ; 0x4efc <MotorRegler+0x9c8>
4eee: 80 91 e4 04 lds r24, 0x04E4
4ef2: 84 fd sbrc r24, 4
4ef4: 03 c0 rjmp .+6 ; 0x4efc <MotorRegler+0x9c8>
4ef6: 81 e0 ldi r24, 0x01 ; 1
4ef8: 80 93 2a 02 sts 0x022A, r24
4efc: 60 90 fe 01 lds r6, 0x01FE
4f00: 70 90 ff 01 lds r7, 0x01FF
4f04: 80 90 00 02 lds r8, 0x0200
4f08: 90 90 01 02 lds r9, 0x0201
4f0c: 8b 81 ldd r24, Y+3 ; 0x03
4f0e: 9c 81 ldd r25, Y+4 ; 0x04
4f10: 97 ff sbrs r25, 7
4f12: 03 c0 rjmp .+6 ; 0x4f1a <MotorRegler+0x9e6>
4f14: 90 95 com r25
4f16: 81 95 neg r24
4f18: 9f 4f sbci r25, 0xFF ; 255
4f1a: 7c 01 movw r14, r24
4f1c: 00 27 eor r16, r16
4f1e: f7 fc sbrc r15, 7
4f20: 00 95 com r16
4f22: 10 2f mov r17, r16
4f24: 20 91 ed 04 lds r18, 0x04ED
4f28: 33 27 eor r19, r19
4f2a: 44 27 eor r20, r20
4f2c: 55 27 eor r21, r21
4f2e: 6b 81 ldd r22, Y+3 ; 0x03
4f30: 7c 81 ldd r23, Y+4 ; 0x04
4f32: 8d 81 ldd r24, Y+5 ; 0x05
4f34: 9e 81 ldd r25, Y+6 ; 0x06
4f36: 0e 94 38 2e call 0x5c70 ; 0x5c70 <__mulsi3>
4f3a: 9b 01 movw r18, r22
4f3c: ac 01 movw r20, r24
4f3e: c8 01 movw r24, r16
4f40: b7 01 movw r22, r14
4f42: 0e 94 38 2e call 0x5c70 ; 0x5c70 <__mulsi3>
4f46: 20 e0 ldi r18, 0x00 ; 0
4f48: 31 e0 ldi r19, 0x01 ; 1
4f4a: 40 e0 ldi r20, 0x00 ; 0
4f4c: 50 e0 ldi r21, 0x00 ; 0
4f4e: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
4f52: 44 27 eor r20, r20
4f54: 37 fd sbrc r19, 7
4f56: 40 95 com r20
4f58: 54 2f mov r21, r20
4f5a: 62 1a sub r6, r18
4f5c: 73 0a sbc r7, r19
4f5e: 84 0a sbc r8, r20
4f60: 95 0a sbc r9, r21
4f62: 60 92 fe 01 sts 0x01FE, r6
4f66: 70 92 ff 01 sts 0x01FF, r7
4f6a: 80 92 00 02 sts 0x0200, r8
4f6e: 90 92 01 02 sts 0x0201, r9
4f72: 80 91 fe 01 lds r24, 0x01FE
4f76: 90 91 ff 01 lds r25, 0x01FF
4f7a: a0 91 00 02 lds r26, 0x0200
4f7e: b0 91 01 02 lds r27, 0x0201
4f82: 81 53 subi r24, 0x31 ; 49
4f84: 95 47 sbci r25, 0x75 ; 117
4f86: a0 40 sbci r26, 0x00 ; 0
4f88: b0 40 sbci r27, 0x00 ; 0
4f8a: 64 f0 brlt .+24 ; 0x4fa4 <MotorRegler+0xa70>
4f8c: 80 e3 ldi r24, 0x30 ; 48
4f8e: 95 e7 ldi r25, 0x75 ; 117
4f90: a0 e0 ldi r26, 0x00 ; 0
4f92: b0 e0 ldi r27, 0x00 ; 0
4f94: 80 93 fe 01 sts 0x01FE, r24
4f98: 90 93 ff 01 sts 0x01FF, r25
4f9c: a0 93 00 02 sts 0x0200, r26
4fa0: b0 93 01 02 sts 0x0201, r27
4fa4: 80 91 fe 01 lds r24, 0x01FE
4fa8: 90 91 ff 01 lds r25, 0x01FF
4fac: a0 91 00 02 lds r26, 0x0200
4fb0: b0 91 01 02 lds r27, 0x0201
4fb4: 80 5d subi r24, 0xD0 ; 208
4fb6: 9a 48 sbci r25, 0x8A ; 138
4fb8: af 4f sbci r26, 0xFF ; 255
4fba: bf 4f sbci r27, 0xFF ; 255
4fbc: 64 f4 brge .+24 ; 0x4fd6 <MotorRegler+0xaa2>
4fbe: 80 ed ldi r24, 0xD0 ; 208
4fc0: 9a e8 ldi r25, 0x8A ; 138
4fc2: af ef ldi r26, 0xFF ; 255
4fc4: bf ef ldi r27, 0xFF ; 255
4fc6: 80 93 fe 01 sts 0x01FE, r24
4fca: 90 93 ff 01 sts 0x01FF, r25
4fce: a0 93 00 02 sts 0x0200, r26
4fd2: b0 93 01 02 sts 0x0201, r27
4fd6: ef ee ldi r30, 0xEF ; 239
4fd8: e0 93 7a 00 sts 0x007A, r30
4fdc: 80 91 0a 02 lds r24, 0x020A
4fe0: 90 91 0b 02 lds r25, 0x020B
4fe4: 89 2b or r24, r25
4fe6: 09 f4 brne .+2 ; 0x4fea <MotorRegler+0xab6>
4fe8: 41 c0 rjmp .+130 ; 0x506c <MotorRegler+0xb38>
4fea: 80 91 e4 04 lds r24, 0x04E4
4fee: 83 ff sbrs r24, 3
4ff0: 3d c0 rjmp .+122 ; 0x506c <MotorRegler+0xb38>
4ff2: 80 91 2a 02 lds r24, 0x022A
4ff6: 88 23 and r24, r24
4ff8: 51 f0 breq .+20 ; 0x500e <MotorRegler+0xada>
4ffa: 80 91 0a 02 lds r24, 0x020A
4ffe: 90 91 0b 02 lds r25, 0x020B
5002: 90 93 0d 02 sts 0x020D, r25
5006: 80 93 0c 02 sts 0x020C, r24
500a: 10 92 2a 02 sts 0x022A, r1
500e: 10 92 7a 00 sts 0x007A, r1
5012: 00 91 fe 01 lds r16, 0x01FE
5016: 10 91 ff 01 lds r17, 0x01FF
501a: 20 91 00 02 lds r18, 0x0200
501e: 30 91 01 02 lds r19, 0x0201
5022: 40 91 0e 02 lds r20, 0x020E
5026: 50 91 0f 02 lds r21, 0x020F
502a: 80 91 86 01 lds r24, 0x0186
502e: 99 27 eor r25, r25
5030: bc 01 movw r22, r24
5032: 46 9f mul r20, r22
5034: c0 01 movw r24, r0
5036: 47 9f mul r20, r23
5038: 90 0d add r25, r0
503a: 56 9f mul r21, r22
503c: 90 0d add r25, r0
503e: 11 24 eor r1, r1
5040: 60 e2 ldi r22, 0x20 ; 32
5042: 70 e0 ldi r23, 0x00 ; 0
5044: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
5048: 88 27 eor r24, r24
504a: 77 fd sbrc r23, 7
504c: 80 95 com r24
504e: 98 2f mov r25, r24
5050: 06 1b sub r16, r22
5052: 17 0b sbc r17, r23
5054: 28 0b sbc r18, r24
5056: 39 0b sbc r19, r25
5058: 00 93 fe 01 sts 0x01FE, r16
505c: 10 93 ff 01 sts 0x01FF, r17
5060: 20 93 00 02 sts 0x0200, r18
5064: 30 93 01 02 sts 0x0201, r19
5068: e0 93 7a 00 sts 0x007A, r30
506c: 80 91 5d 04 lds r24, 0x045D
5070: 8f 5f subi r24, 0xFF ; 255
5072: 80 93 5d 04 sts 0x045D, r24
5076: 80 91 2b 02 lds r24, 0x022B
507a: 81 50 subi r24, 0x01 ; 1
507c: 80 93 2b 02 sts 0x022B, r24
5080: 8f 3f cpi r24, 0xFF ; 255
5082: 09 f0 breq .+2 ; 0x5086 <MotorRegler+0xb52>
5084: 6b c0 rjmp .+214 ; 0x515c <MotorRegler+0xc28>
5086: 81 e3 ldi r24, 0x31 ; 49
5088: 80 93 2b 02 sts 0x022B, r24
508c: 80 91 a4 04 lds r24, 0x04A4
5090: 90 91 a5 04 lds r25, 0x04A5
5094: 90 93 5f 04 sts 0x045F, r25
5098: 80 93 5e 04 sts 0x045E, r24
509c: 80 91 a6 04 lds r24, 0x04A6
50a0: 90 91 a7 04 lds r25, 0x04A7
50a4: 90 93 61 04 sts 0x0461, r25
50a8: 80 93 60 04 sts 0x0460, r24
50ac: 80 91 29 05 lds r24, 0x0529
50b0: 90 91 2a 05 lds r25, 0x052A
50b4: 90 93 63 04 sts 0x0463, r25
50b8: 80 93 62 04 sts 0x0462, r24
50bc: 80 91 32 05 lds r24, 0x0532
50c0: 90 91 33 05 lds r25, 0x0533
50c4: 90 93 65 04 sts 0x0465, r25
50c8: 80 93 64 04 sts 0x0464, r24
50cc: 80 91 2c 05 lds r24, 0x052C
50d0: 90 91 2d 05 lds r25, 0x052D
50d4: 90 93 67 04 sts 0x0467, r25
50d8: 80 93 66 04 sts 0x0466, r24
50dc: 80 91 22 02 lds r24, 0x0222
50e0: 90 91 23 02 lds r25, 0x0223
50e4: 90 93 69 04 sts 0x0469, r25
50e8: 80 93 68 04 sts 0x0468, r24
50ec: 60 91 06 02 lds r22, 0x0206
50f0: 70 91 07 02 lds r23, 0x0207
50f4: 80 91 08 02 lds r24, 0x0208
50f8: 90 91 09 02 lds r25, 0x0209
50fc: 20 e0 ldi r18, 0x00 ; 0
50fe: 32 e0 ldi r19, 0x02 ; 2
5100: 40 e0 ldi r20, 0x00 ; 0
5102: 50 e0 ldi r21, 0x00 ; 0
5104: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
5108: 30 93 6b 04 sts 0x046B, r19
510c: 20 93 6a 04 sts 0x046A, r18
5110: 89 81 ldd r24, Y+1 ; 0x01
5112: 9a 81 ldd r25, Y+2 ; 0x02
5114: 90 93 6d 04 sts 0x046D, r25
5118: 80 93 6c 04 sts 0x046C, r24
511c: 80 91 0a 02 lds r24, 0x020A
5120: 90 91 0b 02 lds r25, 0x020B
5124: 90 93 6f 04 sts 0x046F, r25
5128: 80 93 6e 04 sts 0x046E, r24
512c: 80 91 98 04 lds r24, 0x0498
5130: 90 91 99 04 lds r25, 0x0499
5134: 90 93 71 04 sts 0x0471, r25
5138: 80 93 70 04 sts 0x0470, r24
513c: 80 91 9c 04 lds r24, 0x049C
5140: 90 91 9d 04 lds r25, 0x049D
5144: 90 93 73 04 sts 0x0473, r25
5148: 80 93 72 04 sts 0x0472, r24
514c: 80 91 a0 04 lds r24, 0x04A0
5150: 90 91 a1 04 lds r25, 0x04A1
5154: 90 93 75 04 sts 0x0475, r25
5158: 80 93 74 04 sts 0x0474, r24
515c: 60 91 da 01 lds r22, 0x01DA
5160: 70 91 db 01 lds r23, 0x01DB
5164: 80 91 dc 01 lds r24, 0x01DC
5168: 90 91 dd 01 lds r25, 0x01DD
516c: 20 90 1d 05 lds r2, 0x051D
5170: 30 90 1e 05 lds r3, 0x051E
5174: 40 90 1f 05 lds r4, 0x051F
5178: 50 90 20 05 lds r5, 0x0520
517c: e0 90 18 05 lds r14, 0x0518
5180: f0 90 19 05 lds r15, 0x0519
5184: 60 90 2e 05 lds r6, 0x052E
5188: 70 90 2f 05 lds r7, 0x052F
518c: 80 90 30 05 lds r8, 0x0530
5190: 90 90 31 05 lds r9, 0x0531
5194: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5198: a2 01 movw r20, r4
519a: 91 01 movw r18, r2
519c: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
51a0: 5b 01 movw r10, r22
51a2: 6c 01 movw r12, r24
51a4: 00 27 eor r16, r16
51a6: f7 fc sbrc r15, 7
51a8: 00 95 com r16
51aa: 10 2f mov r17, r16
51ac: c8 01 movw r24, r16
51ae: b7 01 movw r22, r14
51b0: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
51b4: a4 01 movw r20, r8
51b6: 93 01 movw r18, r6
51b8: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
51bc: 9b 01 movw r18, r22
51be: ac 01 movw r20, r24
51c0: c6 01 movw r24, r12
51c2: b5 01 movw r22, r10
51c4: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
51c8: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
51cc: 70 93 19 05 sts 0x0519, r23
51d0: 60 93 18 05 sts 0x0518, r22
51d4: 60 91 e2 01 lds r22, 0x01E2
51d8: 70 91 e3 01 lds r23, 0x01E3
51dc: 80 91 e4 01 lds r24, 0x01E4
51e0: 90 91 e5 01 lds r25, 0x01E5
51e4: e0 90 16 05 lds r14, 0x0516
51e8: f0 90 17 05 lds r15, 0x0517
51ec: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
51f0: a2 01 movw r20, r4
51f2: 91 01 movw r18, r2
51f4: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
51f8: 5b 01 movw r10, r22
51fa: 6c 01 movw r12, r24
51fc: 00 27 eor r16, r16
51fe: f7 fc sbrc r15, 7
5200: 00 95 com r16
5202: 10 2f mov r17, r16
5204: c8 01 movw r24, r16
5206: b7 01 movw r22, r14
5208: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
520c: a4 01 movw r20, r8
520e: 93 01 movw r18, r6
5210: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
5214: 9b 01 movw r18, r22
5216: ac 01 movw r20, r24
5218: c6 01 movw r24, r12
521a: b5 01 movw r22, r10
521c: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
5220: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
5224: 70 93 17 05 sts 0x0517, r23
5228: 60 93 16 05 sts 0x0516, r22
522c: 60 91 2c 05 lds r22, 0x052C
5230: 70 91 2d 05 lds r23, 0x052D
5234: a0 90 ea 01 lds r10, 0x01EA
5238: b0 90 eb 01 lds r11, 0x01EB
523c: c0 90 ec 01 lds r12, 0x01EC
5240: d0 90 ed 01 lds r13, 0x01ED
5244: 88 27 eor r24, r24
5246: 77 fd sbrc r23, 7
5248: 80 95 com r24
524a: 98 2f mov r25, r24
524c: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5250: 7b 01 movw r14, r22
5252: 8c 01 movw r16, r24
5254: 20 e0 ldi r18, 0x00 ; 0
5256: 30 e0 ldi r19, 0x00 ; 0
5258: 40 e0 ldi r20, 0x00 ; 0
525a: 5f e3 ldi r21, 0x3F ; 63
525c: c4 01 movw r24, r8
525e: b3 01 movw r22, r6
5260: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
5264: 9b 01 movw r18, r22
5266: ac 01 movw r20, r24
5268: c8 01 movw r24, r16
526a: b7 01 movw r22, r14
526c: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
5270: 7b 01 movw r14, r22
5272: 8c 01 movw r16, r24
5274: c6 01 movw r24, r12
5276: b5 01 movw r22, r10
5278: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
527c: a2 01 movw r20, r4
527e: 91 01 movw r18, r2
5280: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
5284: 9b 01 movw r18, r22
5286: ac 01 movw r20, r24
5288: c8 01 movw r24, r16
528a: b7 01 movw r22, r14
528c: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
5290: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
5294: 70 93 2d 05 sts 0x052D, r23
5298: 60 93 2c 05 sts 0x052C, r22
529c: 80 91 18 05 lds r24, 0x0518
52a0: 90 91 19 05 lds r25, 0x0519
52a4: 81 50 subi r24, 0x01 ; 1
52a6: 98 40 sbci r25, 0x08 ; 8
52a8: 34 f0 brlt .+12 ; 0x52b6 <MotorRegler+0xd82>
52aa: 80 e0 ldi r24, 0x00 ; 0
52ac: 98 e0 ldi r25, 0x08 ; 8
52ae: 90 93 19 05 sts 0x0519, r25
52b2: 80 93 18 05 sts 0x0518, r24
52b6: 80 91 18 05 lds r24, 0x0518
52ba: 90 91 19 05 lds r25, 0x0519
52be: 80 50 subi r24, 0x00 ; 0
52c0: 98 4f sbci r25, 0xF8 ; 248
52c2: 34 f4 brge .+12 ; 0x52d0 <MotorRegler+0xd9c>
52c4: 80 e0 ldi r24, 0x00 ; 0
52c6: 98 ef ldi r25, 0xF8 ; 248
52c8: 90 93 19 05 sts 0x0519, r25
52cc: 80 93 18 05 sts 0x0518, r24
52d0: 80 91 16 05 lds r24, 0x0516
52d4: 90 91 17 05 lds r25, 0x0517
52d8: 81 50 subi r24, 0x01 ; 1
52da: 98 40 sbci r25, 0x08 ; 8
52dc: 34 f0 brlt .+12 ; 0x52ea <MotorRegler+0xdb6>
52de: 80 e0 ldi r24, 0x00 ; 0
52e0: 98 e0 ldi r25, 0x08 ; 8
52e2: 90 93 17 05 sts 0x0517, r25
52e6: 80 93 16 05 sts 0x0516, r24
52ea: 80 91 16 05 lds r24, 0x0516
52ee: 90 91 17 05 lds r25, 0x0517
52f2: 80 50 subi r24, 0x00 ; 0
52f4: 98 4f sbci r25, 0xF8 ; 248
52f6: 34 f4 brge .+12 ; 0x5304 <MotorRegler+0xdd0>
52f8: 80 e0 ldi r24, 0x00 ; 0
52fa: 98 ef ldi r25, 0xF8 ; 248
52fc: 90 93 17 05 sts 0x0517, r25
5300: 80 93 16 05 sts 0x0516, r24
5304: 80 91 2c 05 lds r24, 0x052C
5308: 90 91 2d 05 lds r25, 0x052D
530c: 81 50 subi r24, 0x01 ; 1
530e: 98 40 sbci r25, 0x08 ; 8
5310: 34 f0 brlt .+12 ; 0x531e <MotorRegler+0xdea>
5312: 80 e0 ldi r24, 0x00 ; 0
5314: 98 e0 ldi r25, 0x08 ; 8
5316: 90 93 2d 05 sts 0x052D, r25
531a: 80 93 2c 05 sts 0x052C, r24
531e: 80 91 2c 05 lds r24, 0x052C
5322: 90 91 2d 05 lds r25, 0x052D
5326: 80 50 subi r24, 0x00 ; 0
5328: 98 4f sbci r25, 0xF8 ; 248
532a: 34 f4 brge .+12 ; 0x5338 <MotorRegler+0xe04>
532c: 80 e0 ldi r24, 0x00 ; 0
532e: 98 ef ldi r25, 0xF8 ; 248
5330: 90 93 2d 05 sts 0x052D, r25
5334: 80 93 2c 05 sts 0x052C, r24
5338: 80 91 e4 04 lds r24, 0x04E4
533c: 99 27 eor r25, r25
533e: 80 ff sbrs r24, 0
5340: cd c0 rjmp .+410 ; 0x54dc <MotorRegler+0xfa8>
5342: 20 91 83 01 lds r18, 0x0183
5346: 81 ff sbrs r24, 1
5348: 0e c0 rjmp .+28 ; 0x5366 <MotorRegler+0xe32>
534a: 22 33 cpi r18, 0x32 ; 50
534c: b0 f4 brcc .+44 ; 0x537a <MotorRegler+0xe46>
534e: 80 91 22 02 lds r24, 0x0222
5352: 90 91 23 02 lds r25, 0x0223
5356: 44 97 sbiw r24, 0x14 ; 20
5358: 90 93 25 02 sts 0x0225, r25
535c: 80 93 24 02 sts 0x0224, r24
5360: 10 92 11 02 sts 0x0211, r1
5364: 0d c0 rjmp .+26 ; 0x5380 <MotorRegler+0xe4c>
5366: 80 91 e9 04 lds r24, 0x04E9
536a: 28 9f mul r18, r24
536c: c0 01 movw r24, r0
536e: 11 24 eor r1, r1
5370: 44 97 sbiw r24, 0x14 ; 20
5372: 90 93 25 02 sts 0x0225, r25
5376: 80 93 24 02 sts 0x0224, r24
537a: 81 e0 ldi r24, 0x01 ; 1
537c: 80 93 11 02 sts 0x0211, r24
5380: 80 91 10 02 lds r24, 0x0210
5384: 88 23 and r24, r24
5386: 21 f0 breq .+8 ; 0x5390 <MotorRegler+0xe5c>
5388: 10 92 25 02 sts 0x0225, r1
538c: 10 92 24 02 sts 0x0224, r1
5390: 20 91 22 02 lds r18, 0x0222
5394: 30 91 23 02 lds r19, 0x0223
5398: 40 91 24 02 lds r20, 0x0224
539c: 50 91 25 02 lds r21, 0x0225
53a0: 42 17 cp r20, r18
53a2: 53 07 cpc r21, r19
53a4: 0c f0 brlt .+2 ; 0x53a8 <MotorRegler+0xe74>
53a6: 9a c0 rjmp .+308 ; 0x54dc <MotorRegler+0xfa8>
53a8: 80 91 11 02 lds r24, 0x0211
53ac: 88 23 and r24, r24
53ae: 09 f4 brne .+2 ; 0x53b2 <MotorRegler+0xe7e>
53b0: 95 c0 rjmp .+298 ; 0x54dc <MotorRegler+0xfa8>
53b2: 24 1b sub r18, r20
53b4: 35 0b sbc r19, r21
53b6: 80 91 84 01 lds r24, 0x0184
53ba: 99 27 eor r25, r25
53bc: bc 01 movw r22, r24
53be: 26 9f mul r18, r22
53c0: c0 01 movw r24, r0
53c2: 27 9f mul r18, r23
53c4: 90 0d add r25, r0
53c6: 36 9f mul r19, r22
53c8: 90 0d add r25, r0
53ca: 11 24 eor r1, r1
53cc: 60 e1 ldi r22, 0x10 ; 16
53ce: 70 e0 ldi r23, 0x00 ; 0
53d0: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
53d4: 09 81 ldd r16, Y+1 ; 0x01
53d6: 1a 81 ldd r17, Y+2 ; 0x02
53d8: 06 1b sub r16, r22
53da: 17 0b sbc r17, r23
53dc: 20 91 bf 01 lds r18, 0x01BF
53e0: 30 91 c0 01 lds r19, 0x01C0
53e4: 80 91 82 01 lds r24, 0x0182
53e8: 99 27 eor r25, r25
53ea: fc 01 movw r30, r24
53ec: 2e 9f mul r18, r30
53ee: c0 01 movw r24, r0
53f0: 2f 9f mul r18, r31
53f2: 90 0d add r25, r0
53f4: 3e 9f mul r19, r30
53f6: 90 0d add r25, r0
53f8: 11 24 eor r1, r1
53fa: 68 e0 ldi r22, 0x08 ; 8
53fc: 70 e0 ldi r23, 0x00 ; 0
53fe: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
5402: 06 1b sub r16, r22
5404: 17 0b sbc r17, r23
5406: 60 91 06 02 lds r22, 0x0206
540a: 70 91 07 02 lds r23, 0x0207
540e: 80 91 08 02 lds r24, 0x0208
5412: 90 91 09 02 lds r25, 0x0209
5416: 20 e0 ldi r18, 0x00 ; 0
5418: 32 e0 ldi r19, 0x02 ; 2
541a: 40 e0 ldi r20, 0x00 ; 0
541c: 50 e0 ldi r21, 0x00 ; 0
541e: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
5422: ca 01 movw r24, r20
5424: b9 01 movw r22, r18
5426: 20 91 85 01 lds r18, 0x0185
542a: 33 27 eor r19, r19
542c: 44 27 eor r20, r20
542e: 55 27 eor r21, r21
5430: 0e 94 38 2e call 0x5c70 ; 0x5c70 <__mulsi3>
5434: 20 e2 ldi r18, 0x20 ; 32
5436: 30 e0 ldi r19, 0x00 ; 0
5438: 40 e0 ldi r20, 0x00 ; 0
543a: 50 e0 ldi r21, 0x00 ; 0
543c: 0e 94 a0 2e call 0x5d40 ; 0x5d40 <__divmodsi4>
5440: ff ef ldi r31, 0xFF ; 255
5442: 2e 3c cpi r18, 0xCE ; 206
5444: 3f 07 cpc r19, r31
5446: 14 f4 brge .+4 ; 0x544c <MotorRegler+0xf18>
5448: 2e ec ldi r18, 0xCE ; 206
544a: 3f ef ldi r19, 0xFF ; 255
544c: 80 91 2c 02 lds r24, 0x022C
5450: 90 91 2d 02 lds r25, 0x022D
5454: ac 01 movw r20, r24
5456: 74 e0 ldi r23, 0x04 ; 4
5458: 44 0f add r20, r20
545a: 55 1f adc r21, r21
545c: 7a 95 dec r23
545e: e1 f7 brne .-8 ; 0x5458 <MotorRegler+0xf24>
5460: 48 1b sub r20, r24
5462: 59 0b sbc r21, r25
5464: 23 33 cpi r18, 0x33 ; 51
5466: 31 05 cpc r19, r1
5468: 14 f0 brlt .+4 ; 0x546e <MotorRegler+0xf3a>
546a: 22 e3 ldi r18, 0x32 ; 50
546c: 30 e0 ldi r19, 0x00 ; 0
546e: 02 1b sub r16, r18
5470: 13 0b sbc r17, r19
5472: ca 01 movw r24, r20
5474: 80 0f add r24, r16
5476: 91 1f adc r25, r17
5478: 60 e1 ldi r22, 0x10 ; 16
547a: 70 e0 ldi r23, 0x00 ; 0
547c: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
5480: 70 93 2d 02 sts 0x022D, r23
5484: 60 93 2c 02 sts 0x022C, r22
5488: 80 91 e5 04 lds r24, 0x04E5
548c: 99 27 eor r25, r25
548e: 68 17 cp r22, r24
5490: 79 07 cpc r23, r25
5492: 8c f4 brge .+34 ; 0x54b6 <MotorRegler+0xf82>
5494: 29 81 ldd r18, Y+1 ; 0x01
5496: 3a 81 ldd r19, Y+2 ; 0x02
5498: 28 17 cp r18, r24
549a: 39 07 cpc r19, r25
549c: 2c f0 brlt .+10 ; 0x54a8 <MotorRegler+0xf74>
549e: 90 93 2d 02 sts 0x022D, r25
54a2: 80 93 2c 02 sts 0x022C, r24
54a6: 07 c0 rjmp .+14 ; 0x54b6 <MotorRegler+0xf82>
54a8: 49 81 ldd r20, Y+1 ; 0x01
54aa: 5a 81 ldd r21, Y+2 ; 0x02
54ac: 50 93 2d 02 sts 0x022D, r21
54b0: 40 93 2c 02 sts 0x022C, r20
54b4: 0d c0 rjmp .+26 ; 0x54d0 <MotorRegler+0xf9c>
54b6: 80 91 2c 02 lds r24, 0x022C
54ba: 90 91 2d 02 lds r25, 0x022D
54be: 69 81 ldd r22, Y+1 ; 0x01
54c0: 7a 81 ldd r23, Y+2 ; 0x02
54c2: 68 17 cp r22, r24
54c4: 79 07 cpc r23, r25
54c6: 24 f4 brge .+8 ; 0x54d0 <MotorRegler+0xf9c>
54c8: 70 93 2d 02 sts 0x022D, r23
54cc: 60 93 2c 02 sts 0x022C, r22
54d0: 80 91 2c 02 lds r24, 0x022C
54d4: 90 91 2d 02 lds r25, 0x022D
54d8: 9a 83 std Y+2, r25 ; 0x02
54da: 89 83 std Y+1, r24 ; 0x01
54dc: 80 90 2c 05 lds r8, 0x052C
54e0: 90 90 2d 05 lds r9, 0x052D
54e4: eb 81 ldd r30, Y+3 ; 0x03
54e6: fc 81 ldd r31, Y+4 ; 0x04
54e8: 8e 1a sub r8, r30
54ea: 9f 0a sbc r9, r31
54ec: f5 e6 ldi r31, 0x65 ; 101
54ee: 8f 16 cp r8, r31
54f0: 91 04 cpc r9, r1
54f2: 24 f0 brlt .+8 ; 0x54fc <MotorRegler+0xfc8>
54f4: 64 e6 ldi r22, 0x64 ; 100
54f6: 86 2e mov r8, r22
54f8: 91 2c mov r9, r1
54fa: 09 c0 rjmp .+18 ; 0x550e <MotorRegler+0xfda>
54fc: 2c e9 ldi r18, 0x9C ; 156
54fe: 82 16 cp r8, r18
5500: 2f ef ldi r18, 0xFF ; 255
5502: 92 06 cpc r9, r18
5504: 24 f4 brge .+8 ; 0x550e <MotorRegler+0xfda>
5506: 5c e9 ldi r21, 0x9C ; 156
5508: 85 2e mov r8, r21
550a: 5f ef ldi r21, 0xFF ; 255
550c: 95 2e mov r9, r21
550e: 40 90 7a 01 lds r4, 0x017A
5512: 50 90 7b 01 lds r5, 0x017B
5516: 60 90 7c 01 lds r6, 0x017C
551a: 70 90 7d 01 lds r7, 0x017D
551e: 60 91 18 05 lds r22, 0x0518
5522: 70 91 19 05 lds r23, 0x0519
5526: 20 91 1b 02 lds r18, 0x021B
552a: 30 91 1c 02 lds r19, 0x021C
552e: 40 91 4d 02 lds r20, 0x024D
5532: 50 91 4e 02 lds r21, 0x024E
5536: 24 1b sub r18, r20
5538: 35 0b sbc r19, r21
553a: 62 1b sub r22, r18
553c: 73 0b sbc r23, r19
553e: 88 27 eor r24, r24
5540: 77 fd sbrc r23, 7
5542: 80 95 com r24
5544: 98 2f mov r25, r24
5546: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
554a: 9b 01 movw r18, r22
554c: ac 01 movw r20, r24
554e: c3 01 movw r24, r6
5550: b2 01 movw r22, r4
5552: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
5556: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
555a: 70 93 66 02 sts 0x0266, r23
555e: 60 93 65 02 sts 0x0265, r22
5562: 80 91 65 02 lds r24, 0x0265
5566: 90 91 66 02 lds r25, 0x0266
556a: 8c 01 movw r16, r24
556c: 22 27 eor r18, r18
556e: 17 fd sbrc r17, 7
5570: 20 95 com r18
5572: 32 2f mov r19, r18
5574: 80 91 49 02 lds r24, 0x0249
5578: 90 91 4a 02 lds r25, 0x024A
557c: a0 91 4b 02 lds r26, 0x024B
5580: b0 91 4c 02 lds r27, 0x024C
5584: 08 0f add r16, r24
5586: 19 1f adc r17, r25
5588: 2a 1f adc r18, r26
558a: 3b 1f adc r19, r27
558c: 00 93 49 02 sts 0x0249, r16
5590: 10 93 4a 02 sts 0x024A, r17
5594: 20 93 4b 02 sts 0x024B, r18
5598: 30 93 4c 02 sts 0x024C, r19
559c: 10 16 cp r1, r16
559e: 11 06 cpc r1, r17
55a0: 12 06 cpc r1, r18
55a2: 13 06 cpc r1, r19
55a4: ac f4 brge .+42 ; 0x55d0 <MotorRegler+0x109c>
55a6: c8 01 movw r24, r16
55a8: 17 ff sbrs r17, 7
55aa: 03 c0 rjmp .+6 ; 0x55b2 <MotorRegler+0x107e>
55ac: 90 95 com r25
55ae: 81 95 neg r24
55b0: 9f 4f sbci r25, 0xFF ; 255
55b2: 60 e0 ldi r22, 0x00 ; 0
55b4: 71 e0 ldi r23, 0x01 ; 1
55b6: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
55ba: 6f 5f subi r22, 0xFF ; 255
55bc: 7f 4f sbci r23, 0xFF ; 255
55be: 88 27 eor r24, r24
55c0: 77 fd sbrc r23, 7
55c2: 80 95 com r24
55c4: 98 2f mov r25, r24
55c6: 06 1b sub r16, r22
55c8: 17 0b sbc r17, r23
55ca: 28 0b sbc r18, r24
55cc: 39 0b sbc r19, r25
55ce: 14 c0 rjmp .+40 ; 0x55f8 <MotorRegler+0x10c4>
55d0: c8 01 movw r24, r16
55d2: 17 ff sbrs r17, 7
55d4: 03 c0 rjmp .+6 ; 0x55dc <MotorRegler+0x10a8>
55d6: 90 95 com r25
55d8: 81 95 neg r24
55da: 9f 4f sbci r25, 0xFF ; 255
55dc: 60 e0 ldi r22, 0x00 ; 0
55de: 71 e0 ldi r23, 0x01 ; 1
55e0: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
55e4: 6f 5f subi r22, 0xFF ; 255
55e6: 7f 4f sbci r23, 0xFF ; 255
55e8: 88 27 eor r24, r24
55ea: 77 fd sbrc r23, 7
55ec: 80 95 com r24
55ee: 98 2f mov r25, r24
55f0: 06 0f add r16, r22
55f2: 17 1f adc r17, r23
55f4: 28 1f adc r18, r24
55f6: 39 1f adc r19, r25
55f8: 00 93 49 02 sts 0x0249, r16
55fc: 10 93 4a 02 sts 0x024A, r17
5600: 20 93 4b 02 sts 0x024B, r18
5604: 30 93 4c 02 sts 0x024C, r19
5608: 80 91 49 02 lds r24, 0x0249
560c: 90 91 4a 02 lds r25, 0x024A
5610: a0 91 4b 02 lds r26, 0x024B
5614: b0 91 4c 02 lds r27, 0x024C
5618: 81 38 cpi r24, 0x81 ; 129
561a: 3e e3 ldi r19, 0x3E ; 62
561c: 93 07 cpc r25, r19
561e: 30 e0 ldi r19, 0x00 ; 0
5620: a3 07 cpc r26, r19
5622: 30 e0 ldi r19, 0x00 ; 0
5624: b3 07 cpc r27, r19
5626: 2c f0 brlt .+10 ; 0x5632 <MotorRegler+0x10fe>
5628: 80 e8 ldi r24, 0x80 ; 128
562a: 9e e3 ldi r25, 0x3E ; 62
562c: a0 e0 ldi r26, 0x00 ; 0
562e: b0 e0 ldi r27, 0x00 ; 0
5630: 09 c0 rjmp .+18 ; 0x5644 <MotorRegler+0x1110>
5632: 80 58 subi r24, 0x80 ; 128
5634: 91 4c sbci r25, 0xC1 ; 193
5636: af 4f sbci r26, 0xFF ; 255
5638: bf 4f sbci r27, 0xFF ; 255
563a: 64 f4 brge .+24 ; 0x5654 <MotorRegler+0x1120>
563c: 80 e8 ldi r24, 0x80 ; 128
563e: 91 ec ldi r25, 0xC1 ; 193
5640: af ef ldi r26, 0xFF ; 255
5642: bf ef ldi r27, 0xFF ; 255
5644: 80 93 49 02 sts 0x0249, r24
5648: 90 93 4a 02 sts 0x024A, r25
564c: a0 93 4b 02 sts 0x024B, r26
5650: b0 93 4c 02 sts 0x024C, r27
5654: 60 91 65 02 lds r22, 0x0265
5658: 70 91 66 02 lds r23, 0x0266
565c: a0 90 7e 01 lds r10, 0x017E
5660: b0 90 7f 01 lds r11, 0x017F
5664: c0 90 80 01 lds r12, 0x0180
5668: d0 90 81 01 lds r13, 0x0181
566c: 88 27 eor r24, r24
566e: 77 fd sbrc r23, 7
5670: 80 95 com r24
5672: 98 2f mov r25, r24
5674: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5678: 7b 01 movw r14, r22
567a: 8c 01 movw r16, r24
567c: 60 91 49 02 lds r22, 0x0249
5680: 70 91 4a 02 lds r23, 0x024A
5684: 80 91 4b 02 lds r24, 0x024B
5688: 90 91 4c 02 lds r25, 0x024C
568c: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5690: 9b 01 movw r18, r22
5692: ac 01 movw r20, r24
5694: c6 01 movw r24, r12
5696: b5 01 movw r22, r10
5698: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
569c: 9b 01 movw r18, r22
569e: ac 01 movw r20, r24
56a0: c8 01 movw r24, r16
56a2: b7 01 movw r22, r14
56a4: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
56a8: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
56ac: 94 01 movw r18, r8
56ae: 26 0f add r18, r22
56b0: 37 1f adc r19, r23
56b2: 89 81 ldd r24, Y+1 ; 0x01
56b4: 9a 81 ldd r25, Y+2 ; 0x02
56b6: 28 0f add r18, r24
56b8: 39 1f adc r19, r25
56ba: 22 24 eor r2, r2
56bc: 0a 97 sbiw r24, 0x0a ; 10
56be: 14 f4 brge .+4 ; 0x56c4 <MotorRegler+0x1190>
56c0: 41 e0 ldi r20, 0x01 ; 1
56c2: 24 2e mov r2, r20
56c4: 37 fd sbrc r19, 7
56c6: 02 c0 rjmp .+4 ; 0x56cc <MotorRegler+0x1198>
56c8: 22 20 and r2, r2
56ca: 19 f0 breq .+6 ; 0x56d2 <MotorRegler+0x119e>
56cc: 40 e0 ldi r20, 0x00 ; 0
56ce: 50 e0 ldi r21, 0x00 ; 0
56d0: 08 c0 rjmp .+16 ; 0x56e2 <MotorRegler+0x11ae>
56d2: 80 91 2b 05 lds r24, 0x052B
56d6: 48 2f mov r20, r24
56d8: 55 27 eor r21, r21
56da: 24 17 cp r18, r20
56dc: 35 07 cpc r19, r21
56de: 0c f4 brge .+2 ; 0x56e2 <MotorRegler+0x11ae>
56e0: a9 01 movw r20, r18
56e2: 80 91 1a 05 lds r24, 0x051A
56e6: e8 2f mov r30, r24
56e8: ff 27 eor r31, r31
56ea: f8 87 std Y+8, r31 ; 0x08
56ec: ef 83 std Y+7, r30 ; 0x07
56ee: 9f 01 movw r18, r30
56f0: e4 17 cp r30, r20
56f2: f5 07 cpc r31, r21
56f4: 0c f4 brge .+2 ; 0x56f8 <MotorRegler+0x11c4>
56f6: 9a 01 movw r18, r20
56f8: 20 93 63 02 sts 0x0263, r18
56fc: 29 81 ldd r18, Y+1 ; 0x01
56fe: 3a 81 ldd r19, Y+2 ; 0x02
5700: 26 1b sub r18, r22
5702: 37 0b sbc r19, r23
5704: b9 01 movw r22, r18
5706: 68 0d add r22, r8
5708: 79 1d adc r23, r9
570a: 77 fd sbrc r23, 7
570c: 02 c0 rjmp .+4 ; 0x5712 <MotorRegler+0x11de>
570e: 22 20 and r2, r2
5710: 19 f0 breq .+6 ; 0x5718 <MotorRegler+0x11e4>
5712: 80 e0 ldi r24, 0x00 ; 0
5714: 90 e0 ldi r25, 0x00 ; 0
5716: 07 c0 rjmp .+14 ; 0x5726 <MotorRegler+0x11f2>
5718: 80 91 2b 05 lds r24, 0x052B
571c: 99 27 eor r25, r25
571e: 68 17 cp r22, r24
5720: 79 07 cpc r23, r25
5722: 0c f4 brge .+2 ; 0x5726 <MotorRegler+0x11f2>
5724: cb 01 movw r24, r22
5726: 2f 81 ldd r18, Y+7 ; 0x07
5728: 38 85 ldd r19, Y+8 ; 0x08
572a: 28 17 cp r18, r24
572c: 39 07 cpc r19, r25
572e: 0c f4 brge .+2 ; 0x5732 <MotorRegler+0x11fe>
5730: 9c 01 movw r18, r24
5732: 20 93 64 02 sts 0x0264, r18
5736: 60 91 16 05 lds r22, 0x0516
573a: 70 91 17 05 lds r23, 0x0517
573e: 20 91 1d 02 lds r18, 0x021D
5742: 30 91 1e 02 lds r19, 0x021E
5746: 40 91 4f 02 lds r20, 0x024F
574a: 50 91 50 02 lds r21, 0x0250
574e: 24 1b sub r18, r20
5750: 35 0b sbc r19, r21
5752: 62 1b sub r22, r18
5754: 73 0b sbc r23, r19
5756: 88 27 eor r24, r24
5758: 77 fd sbrc r23, 7
575a: 80 95 com r24
575c: 98 2f mov r25, r24
575e: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5762: 9b 01 movw r18, r22
5764: ac 01 movw r20, r24
5766: c3 01 movw r24, r6
5768: b2 01 movw r22, r4
576a: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
576e: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
5772: 70 93 62 02 sts 0x0262, r23
5776: 60 93 61 02 sts 0x0261, r22
577a: 80 91 61 02 lds r24, 0x0261
577e: 90 91 62 02 lds r25, 0x0262
5782: 8c 01 movw r16, r24
5784: 22 27 eor r18, r18
5786: 17 fd sbrc r17, 7
5788: 20 95 com r18
578a: 32 2f mov r19, r18
578c: 80 91 45 02 lds r24, 0x0245
5790: 90 91 46 02 lds r25, 0x0246
5794: a0 91 47 02 lds r26, 0x0247
5798: b0 91 48 02 lds r27, 0x0248
579c: 08 0f add r16, r24
579e: 19 1f adc r17, r25
57a0: 2a 1f adc r18, r26
57a2: 3b 1f adc r19, r27
57a4: 00 93 45 02 sts 0x0245, r16
57a8: 10 93 46 02 sts 0x0246, r17
57ac: 20 93 47 02 sts 0x0247, r18
57b0: 30 93 48 02 sts 0x0248, r19
57b4: 10 16 cp r1, r16
57b6: 11 06 cpc r1, r17
57b8: 12 06 cpc r1, r18
57ba: 13 06 cpc r1, r19
57bc: ac f4 brge .+42 ; 0x57e8 <MotorRegler+0x12b4>
57be: c8 01 movw r24, r16
57c0: 17 ff sbrs r17, 7
57c2: 03 c0 rjmp .+6 ; 0x57ca <MotorRegler+0x1296>
57c4: 90 95 com r25
57c6: 81 95 neg r24
57c8: 9f 4f sbci r25, 0xFF ; 255
57ca: 60 e0 ldi r22, 0x00 ; 0
57cc: 71 e0 ldi r23, 0x01 ; 1
57ce: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
57d2: 6f 5f subi r22, 0xFF ; 255
57d4: 7f 4f sbci r23, 0xFF ; 255
57d6: 88 27 eor r24, r24
57d8: 77 fd sbrc r23, 7
57da: 80 95 com r24
57dc: 98 2f mov r25, r24
57de: 06 1b sub r16, r22
57e0: 17 0b sbc r17, r23
57e2: 28 0b sbc r18, r24
57e4: 39 0b sbc r19, r25
57e6: 14 c0 rjmp .+40 ; 0x5810 <MotorRegler+0x12dc>
57e8: c8 01 movw r24, r16
57ea: 17 ff sbrs r17, 7
57ec: 03 c0 rjmp .+6 ; 0x57f4 <MotorRegler+0x12c0>
57ee: 90 95 com r25
57f0: 81 95 neg r24
57f2: 9f 4f sbci r25, 0xFF ; 255
57f4: 60 e0 ldi r22, 0x00 ; 0
57f6: 71 e0 ldi r23, 0x01 ; 1
57f8: 0e 94 6b 2e call 0x5cd6 ; 0x5cd6 <__divmodhi4>
57fc: 6f 5f subi r22, 0xFF ; 255
57fe: 7f 4f sbci r23, 0xFF ; 255
5800: 88 27 eor r24, r24
5802: 77 fd sbrc r23, 7
5804: 80 95 com r24
5806: 98 2f mov r25, r24
5808: 06 0f add r16, r22
580a: 17 1f adc r17, r23
580c: 28 1f adc r18, r24
580e: 39 1f adc r19, r25
5810: 00 93 45 02 sts 0x0245, r16
5814: 10 93 46 02 sts 0x0246, r17
5818: 20 93 47 02 sts 0x0247, r18
581c: 30 93 48 02 sts 0x0248, r19
5820: 80 91 45 02 lds r24, 0x0245
5824: 90 91 46 02 lds r25, 0x0246
5828: a0 91 47 02 lds r26, 0x0247
582c: b0 91 48 02 lds r27, 0x0248
5830: 81 38 cpi r24, 0x81 ; 129
5832: 3e e3 ldi r19, 0x3E ; 62
5834: 93 07 cpc r25, r19
5836: 30 e0 ldi r19, 0x00 ; 0
5838: a3 07 cpc r26, r19
583a: 30 e0 ldi r19, 0x00 ; 0
583c: b3 07 cpc r27, r19
583e: 2c f0 brlt .+10 ; 0x584a <MotorRegler+0x1316>
5840: 80 e8 ldi r24, 0x80 ; 128
5842: 9e e3 ldi r25, 0x3E ; 62
5844: a0 e0 ldi r26, 0x00 ; 0
5846: b0 e0 ldi r27, 0x00 ; 0
5848: 09 c0 rjmp .+18 ; 0x585c <MotorRegler+0x1328>
584a: 80 58 subi r24, 0x80 ; 128
584c: 91 4c sbci r25, 0xC1 ; 193
584e: af 4f sbci r26, 0xFF ; 255
5850: bf 4f sbci r27, 0xFF ; 255
5852: 64 f4 brge .+24 ; 0x586c <MotorRegler+0x1338>
5854: 80 e8 ldi r24, 0x80 ; 128
5856: 91 ec ldi r25, 0xC1 ; 193
5858: af ef ldi r26, 0xFF ; 255
585a: bf ef ldi r27, 0xFF ; 255
585c: 80 93 45 02 sts 0x0245, r24
5860: 90 93 46 02 sts 0x0246, r25
5864: a0 93 47 02 sts 0x0247, r26
5868: b0 93 48 02 sts 0x0248, r27
586c: 60 91 61 02 lds r22, 0x0261
5870: 70 91 62 02 lds r23, 0x0262
5874: 88 27 eor r24, r24
5876: 77 fd sbrc r23, 7
5878: 80 95 com r24
587a: 98 2f mov r25, r24
587c: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5880: 7b 01 movw r14, r22
5882: 8c 01 movw r16, r24
5884: 60 91 45 02 lds r22, 0x0245
5888: 70 91 46 02 lds r23, 0x0246
588c: 80 91 47 02 lds r24, 0x0247
5890: 90 91 48 02 lds r25, 0x0248
5894: 0e 94 76 2d call 0x5aec ; 0x5aec <__floatsisf>
5898: 9b 01 movw r18, r22
589a: ac 01 movw r20, r24
589c: c6 01 movw r24, r12
589e: b5 01 movw r22, r10
58a0: 0e 94 f0 2d call 0x5be0 ; 0x5be0 <__mulsf3>
58a4: 9b 01 movw r18, r22
58a6: ac 01 movw r20, r24
58a8: c8 01 movw r24, r16
58aa: b7 01 movw r22, r14
58ac: 0e 94 d1 2c call 0x59a2 ; 0x59a2 <__addsf3>
58b0: 0e 94 59 2d call 0x5ab2 ; 0x5ab2 <__fixsfsi>
58b4: 29 81 ldd r18, Y+1 ; 0x01
58b6: 3a 81 ldd r19, Y+2 ; 0x02
58b8: 26 0f add r18, r22
58ba: 37 1f adc r19, r23
58bc: 28 19 sub r18, r8
58be: 39 09 sbc r19, r9
58c0: 37 fd sbrc r19, 7
58c2: 02 c0 rjmp .+4 ; 0x58c8 <MotorRegler+0x1394>
58c4: 22 20 and r2, r2
58c6: 19 f0 breq .+6 ; 0x58ce <MotorRegler+0x139a>
58c8: 40 e0 ldi r20, 0x00 ; 0
58ca: 50 e0 ldi r21, 0x00 ; 0
58cc: 08 c0 rjmp .+16 ; 0x58de <MotorRegler+0x13aa>
58ce: 80 91 2b 05 lds r24, 0x052B
58d2: 48 2f mov r20, r24
58d4: 55 27 eor r21, r21
58d6: 24 17 cp r18, r20
58d8: 35 07 cpc r19, r21
58da: 0c f4 brge .+2 ; 0x58de <MotorRegler+0x13aa>
58dc: a9 01 movw r20, r18
58de: 2f 81 ldd r18, Y+7 ; 0x07
58e0: 38 85 ldd r19, Y+8 ; 0x08
58e2: 24 17 cp r18, r20
58e4: 35 07 cpc r19, r21
58e6: 0c f4 brge .+2 ; 0x58ea <MotorRegler+0x13b6>
58e8: 9a 01 movw r18, r20
58ea: 20 93 69 02 sts 0x0269, r18
58ee: 89 81 ldd r24, Y+1 ; 0x01
58f0: 9a 81 ldd r25, Y+2 ; 0x02
58f2: 86 1b sub r24, r22
58f4: 97 0b sbc r25, r23
58f6: bc 01 movw r22, r24
58f8: 68 19 sub r22, r8
58fa: 79 09 sbc r23, r9
58fc: 77 fd sbrc r23, 7
58fe: 02 c0 rjmp .+4 ; 0x5904 <MotorRegler+0x13d0>
5900: 22 20 and r2, r2
5902: 19 f0 breq .+6 ; 0x590a <MotorRegler+0x13d6>
5904: 20 e0 ldi r18, 0x00 ; 0
5906: 30 e0 ldi r19, 0x00 ; 0
5908: 08 c0 rjmp .+16 ; 0x591a <MotorRegler+0x13e6>
590a: 80 91 2b 05 lds r24, 0x052B
590e: 28 2f mov r18, r24
5910: 33 27 eor r19, r19
5912: 62 17 cp r22, r18
5914: 73 07 cpc r23, r19
5916: 0c f4 brge .+2 ; 0x591a <MotorRegler+0x13e6>
5918: 9b 01 movw r18, r22
591a: 8f 81 ldd r24, Y+7 ; 0x07
591c: 98 85 ldd r25, Y+8 ; 0x08
591e: 82 17 cp r24, r18
5920: 93 07 cpc r25, r19
5922: 0c f4 brge .+2 ; 0x5926 <MotorRegler+0x13f2>
5924: c9 01 movw r24, r18
5926: 80 93 67 02 sts 0x0267, r24
592a: e2 e1 ldi r30, 0x12 ; 18
592c: c8 5f subi r28, 0xF8 ; 248
592e: 0c 94 d7 2e jmp 0x5dae ; 0x5dae <__epilogue_restores__>
 
00005932 <GPS_Neutral>:
5932: 80 91 51 02 lds r24, 0x0251
5936: 90 91 52 02 lds r25, 0x0252
593a: a0 91 53 02 lds r26, 0x0253
593e: b0 91 54 02 lds r27, 0x0254
5942: 80 93 59 02 sts 0x0259, r24
5946: 90 93 5a 02 sts 0x025A, r25
594a: a0 93 5b 02 sts 0x025B, r26
594e: b0 93 5c 02 sts 0x025C, r27
5952: 80 91 55 02 lds r24, 0x0255
5956: 90 91 56 02 lds r25, 0x0256
595a: a0 91 57 02 lds r26, 0x0257
595e: b0 91 58 02 lds r27, 0x0258
5962: 80 93 5d 02 sts 0x025D, r24
5966: 90 93 5e 02 sts 0x025E, r25
596a: a0 93 5f 02 sts 0x025F, r26
596e: b0 93 60 02 sts 0x0260, r27
5972: 08 95 ret
 
00005974 <GPS_BerechneZielrichtung>:
5974: 10 92 4e 02 sts 0x024E, r1
5978: 10 92 4d 02 sts 0x024D, r1
597c: 10 92 50 02 sts 0x0250, r1
5980: 10 92 4f 02 sts 0x024F, r1
5984: 08 95 ret
 
00005986 <memchr>:
5986: fc 01 movw r30, r24
5988: 41 50 subi r20, 0x01 ; 1
598a: 50 40 sbci r21, 0x00 ; 0
598c: 30 f0 brcs .+12 ; 0x599a <memchr+0x14>
598e: 01 90 ld r0, Z+
5990: 06 16 cp r0, r22
5992: d1 f7 brne .-12 ; 0x5988 <memchr+0x2>
5994: 31 97 sbiw r30, 0x01 ; 1
5996: cf 01 movw r24, r30
5998: 08 95 ret
599a: 88 27 eor r24, r24
599c: 99 27 eor r25, r25
599e: 08 95 ret
 
000059a0 <__subsf3>:
59a0: 50 58 subi r21, 0x80 ; 128
 
000059a2 <__addsf3>:
59a2: 19 2e mov r1, r25
59a4: ef d0 rcall .+478 ; 0x5b84 <__fp_split3>
59a6: 01 d0 rcall .+2 ; 0x59aa <__addsf3x>
59a8: d2 c0 rjmp .+420 ; 0x5b4e <__fp_merge>
 
000059aa <__addsf3x>:
59aa: ba 17 cp r27, r26
59ac: 62 07 cpc r22, r18
59ae: 73 07 cpc r23, r19
59b0: 84 07 cpc r24, r20
59b2: 95 07 cpc r25, r21
59b4: b1 f1 breq .+108 ; 0x5a22 <__addsf3x+0x78>
59b6: 88 f4 brcc .+34 ; 0x59da <__addsf3x+0x30>
59b8: 0e f4 brtc .+2 ; 0x59bc <__addsf3x+0x12>
59ba: 10 94 com r1
59bc: 0b 2e mov r0, r27
59be: ba 2f mov r27, r26
59c0: a0 2d mov r26, r0
59c2: 06 2e mov r0, r22
59c4: 62 2f mov r22, r18
59c6: 20 2d mov r18, r0
59c8: 07 2e mov r0, r23
59ca: 73 2f mov r23, r19
59cc: 30 2d mov r19, r0
59ce: 08 2e mov r0, r24
59d0: 84 2f mov r24, r20
59d2: 40 2d mov r20, r0
59d4: 09 2e mov r0, r25
59d6: 95 2f mov r25, r21
59d8: 50 2d mov r21, r0
59da: ff 27 eor r31, r31
59dc: 55 23 and r21, r21
59de: b9 f0 breq .+46 ; 0x5a0e <__addsf3x+0x64>
59e0: 59 1b sub r21, r25
59e2: 49 f0 breq .+18 ; 0x59f6 <__addsf3x+0x4c>
59e4: 57 3e cpi r21, 0xE7 ; 231
59e6: 98 f0 brcs .+38 ; 0x5a0e <__addsf3x+0x64>
59e8: 46 95 lsr r20
59ea: 37 95 ror r19
59ec: 27 95 ror r18
59ee: a7 95 ror r26
59f0: f0 40 sbci r31, 0x00 ; 0
59f2: 53 95 inc r21
59f4: c9 f7 brne .-14 ; 0x59e8 <__addsf3x+0x3e>
59f6: 76 f0 brts .+28 ; 0x5a14 <__addsf3x+0x6a>
59f8: ba 0f add r27, r26
59fa: 62 1f adc r22, r18
59fc: 73 1f adc r23, r19
59fe: 84 1f adc r24, r20
5a00: 30 f4 brcc .+12 ; 0x5a0e <__addsf3x+0x64>
5a02: 87 95 ror r24
5a04: 77 95 ror r23
5a06: 67 95 ror r22
5a08: b7 95 ror r27
5a0a: f0 40 sbci r31, 0x00 ; 0
5a0c: 93 95 inc r25
5a0e: 17 fa bst r1, 7
5a10: 0f 2e mov r0, r31
5a12: 08 95 ret
5a14: bf 1b sub r27, r31
5a16: bb 27 eor r27, r27
5a18: ba 0b sbc r27, r26
5a1a: 62 0b sbc r22, r18
5a1c: 73 0b sbc r23, r19
5a1e: 84 0b sbc r24, r20
5a20: f6 cf rjmp .-20 ; 0x5a0e <__addsf3x+0x64>
5a22: de f6 brtc .-74 ; 0x59da <__addsf3x+0x30>
5a24: db c0 rjmp .+438 ; 0x5bdc <__fp_zerox>
 
00005a26 <__divsf3>:
5a26: ae d0 rcall .+348 ; 0x5b84 <__fp_split3>
5a28: 01 d0 rcall .+2 ; 0x5a2c <__divsf3x>
5a2a: 91 c0 rjmp .+290 ; 0x5b4e <__fp_merge>
 
00005a2c <__divsf3x>:
5a2c: 55 23 and r21, r21
5a2e: 59 f0 breq .+22 ; 0x5a46 <__divsf3x+0x1a>
5a30: 99 23 and r25, r25
5a32: 69 f0 breq .+26 ; 0x5a4e <__divsf3x+0x22>
5a34: 9f 57 subi r25, 0x7F ; 127
5a36: 5f 57 subi r21, 0x7F ; 127
5a38: 95 1b sub r25, r21
5a3a: 33 f4 brvc .+12 ; 0x5a48 <__divsf3x+0x1c>
5a3c: 42 f4 brpl .+16 ; 0x5a4e <__divsf3x+0x22>
5a3e: 90 38 cpi r25, 0x80 ; 128
5a40: 11 f4 brne .+4 ; 0x5a46 <__divsf3x+0x1a>
5a42: 91 58 subi r25, 0x81 ; 129
5a44: 05 c0 rjmp .+10 ; 0x5a50 <__divsf3x+0x24>
5a46: 9b c0 rjmp .+310 ; 0x5b7e <__fp_nan>
5a48: 91 58 subi r25, 0x81 ; 129
5a4a: 9f 3f cpi r25, 0xFF ; 255
5a4c: 09 f4 brne .+2 ; 0x5a50 <__divsf3x+0x24>
5a4e: c6 c0 rjmp .+396 ; 0x5bdc <__fp_zerox>
5a50: bb 27 eor r27, r27
5a52: 11 24 eor r1, r1
5a54: 62 17 cp r22, r18
5a56: 73 07 cpc r23, r19
5a58: 84 07 cpc r24, r20
5a5a: 30 f4 brcc .+12 ; 0x5a68 <__divsf3x+0x3c>
5a5c: 66 0f add r22, r22
5a5e: 77 1f adc r23, r23
5a60: 88 1f adc r24, r24
5a62: bb 1f adc r27, r27
5a64: 91 50 subi r25, 0x01 ; 1
5a66: 98 f3 brcs .-26 ; 0x5a4e <__divsf3x+0x22>
5a68: 11 d0 rcall .+34 ; 0x5a8c <__divsf3x+0x60>
5a6a: 0f 92 push r0
5a6c: 0f d0 rcall .+30 ; 0x5a8c <__divsf3x+0x60>
5a6e: 0f 92 push r0
5a70: 0d d0 rcall .+26 ; 0x5a8c <__divsf3x+0x60>
5a72: a0 e8 ldi r26, 0x80 ; 128
5a74: 26 17 cp r18, r22
5a76: 37 07 cpc r19, r23
5a78: 48 07 cpc r20, r24
5a7a: 1b 06 cpc r1, r27
5a7c: 09 f0 breq .+2 ; 0x5a80 <__divsf3x+0x54>
5a7e: a0 48 sbci r26, 0x80 ; 128
5a80: ba 2f mov r27, r26
5a82: 60 2d mov r22, r0
5a84: 7f 91 pop r23
5a86: 8f 91 pop r24
5a88: 00 24 eor r0, r0
5a8a: 08 95 ret
5a8c: a0 e8 ldi r26, 0x80 ; 128
5a8e: 00 24 eor r0, r0
5a90: 62 17 cp r22, r18
5a92: 73 07 cpc r23, r19
5a94: 84 07 cpc r24, r20
5a96: b1 05 cpc r27, r1
5a98: 28 f0 brcs .+10 ; 0x5aa4 <__divsf3x+0x78>
5a9a: 62 1b sub r22, r18
5a9c: 73 0b sbc r23, r19
5a9e: 84 0b sbc r24, r20
5aa0: b1 09 sbc r27, r1
5aa2: 0a 2a or r0, r26
5aa4: 66 0f add r22, r22
5aa6: 77 1f adc r23, r23
5aa8: 88 1f adc r24, r24
5aaa: bb 1f adc r27, r27
5aac: a6 95 lsr r26
5aae: 81 f7 brne .-32 ; 0x5a90 <__divsf3x+0x64>
5ab0: 08 95 ret
 
00005ab2 <__fixsfsi>:
5ab2: 97 fb bst r25, 7
5ab4: 73 d0 rcall .+230 ; 0x5b9c <__fp_split1>
5ab6: 9f 37 cpi r25, 0x7F ; 127
5ab8: 38 f0 brcs .+14 ; 0x5ac8 <__fixsfsi+0x16>
5aba: fe e9 ldi r31, 0x9E ; 158
5abc: f9 1b sub r31, r25
5abe: 98 2f mov r25, r24
5ac0: 87 2f mov r24, r23
5ac2: 76 2f mov r23, r22
5ac4: 6b 2f mov r22, r27
5ac6: 05 c0 rjmp .+10 ; 0x5ad2 <__fixsfsi+0x20>
5ac8: 86 c0 rjmp .+268 ; 0x5bd6 <__fp_zero>
5aca: 96 95 lsr r25
5acc: 87 95 ror r24
5ace: 77 95 ror r23
5ad0: 67 95 ror r22
5ad2: f1 50 subi r31, 0x01 ; 1
5ad4: d0 f7 brcc .-12 ; 0x5aca <__fixsfsi+0x18>
5ad6: 3e f4 brtc .+14 ; 0x5ae6 <__fp_lneg+0xe>
 
00005ad8 <__fp_lneg>:
5ad8: 90 95 com r25
5ada: 80 95 com r24
5adc: 70 95 com r23
5ade: 61 95 neg r22
5ae0: 7f 4f sbci r23, 0xFF ; 255
5ae2: 8f 4f sbci r24, 0xFF ; 255
5ae4: 9f 4f sbci r25, 0xFF ; 255
5ae6: 08 95 ret
 
00005ae8 <__floatunssisf>:
5ae8: e8 94 clt
5aea: 03 c0 rjmp .+6 ; 0x5af2 <__floatsisf+0x6>
 
00005aec <__floatsisf>:
5aec: 97 fb bst r25, 7
5aee: 0e f4 brtc .+2 ; 0x5af2 <__floatsisf+0x6>
5af0: f3 df rcall .-26 ; 0x5ad8 <__fp_lneg>
5af2: b6 2f mov r27, r22
5af4: 67 2f mov r22, r23
5af6: 78 2f mov r23, r24
5af8: 89 2f mov r24, r25
5afa: 9e e9 ldi r25, 0x9E ; 158
5afc: 00 24 eor r0, r0
5afe: 27 c0 rjmp .+78 ; 0x5b4e <__fp_merge>
 
00005b00 <__eqsf2>:
5b00: 0e d0 rcall .+28 ; 0x5b1e <.fp_cmp>
5b02: 5e f0 brts .+22 ; 0x5b1a <__cmpsf2+0xe>
5b04: 04 c0 rjmp .+8 ; 0x5b0e <__cmpsf2+0x2>
 
00005b06 <__gesf2>:
5b06: 0b d0 rcall .+22 ; 0x5b1e <.fp_cmp>
5b08: 26 f0 brts .+8 ; 0x5b12 <__cmpsf2+0x6>
5b0a: 01 c0 rjmp .+2 ; 0x5b0e <__cmpsf2+0x2>
 
00005b0c <__cmpsf2>:
5b0c: 08 d0 rcall .+16 ; 0x5b1e <.fp_cmp>
5b0e: 19 f0 breq .+6 ; 0x5b16 <__cmpsf2+0xa>
5b10: 20 f4 brcc .+8 ; 0x5b1a <__cmpsf2+0xe>
5b12: 8f ef ldi r24, 0xFF ; 255
5b14: 08 95 ret
5b16: 80 e0 ldi r24, 0x00 ; 0
5b18: 08 95 ret
5b1a: 81 e0 ldi r24, 0x01 ; 1
5b1c: 08 95 ret
 
00005b1e <.fp_cmp>:
5b1e: 97 fb bst r25, 7
5b20: 09 2e mov r0, r25
5b22: 05 26 eor r0, r21
5b24: 00 f8 bld r0, 0
5b26: 68 94 set
5b28: 30 d0 rcall .+96 ; 0x5b8a <__fp_split2>
5b2a: e8 94 clt
5b2c: 07 fc sbrc r0, 7
5b2e: 07 c0 rjmp .+14 ; 0x5b3e <.fp_cmp+0x20>
5b30: 62 17 cp r22, r18
5b32: 73 07 cpc r23, r19
5b34: 84 07 cpc r24, r20
5b36: 95 07 cpc r25, r21
5b38: 21 f0 breq .+8 ; 0x5b42 <.fp_cmp+0x24>
5b3a: 08 f4 brcc .+2 ; 0x5b3e <.fp_cmp+0x20>
5b3c: 00 94 com r0
5b3e: 07 94 ror r0
5b40: 98 94 clz
5b42: 08 95 ret
5b44: 9a 95 dec r25
5b46: bb 0f add r27, r27
5b48: 66 1f adc r22, r22
5b4a: 77 1f adc r23, r23
5b4c: 88 1f adc r24, r24
 
00005b4e <__fp_merge>:
5b4e: 11 24 eor r1, r1
5b50: 99 23 and r25, r25
5b52: a1 f0 breq .+40 ; 0x5b7c <__fp_merge+0x2e>
5b54: 88 23 and r24, r24
5b56: b2 f7 brpl .-20 ; 0x5b44 <.fp_cmp+0x26>
5b58: 9f 3f cpi r25, 0xFF ; 255
5b5a: 59 f0 breq .+22 ; 0x5b72 <__fp_merge+0x24>
5b5c: bb 0f add r27, r27
5b5e: 48 f4 brcc .+18 ; 0x5b72 <__fp_merge+0x24>
5b60: 21 f4 brne .+8 ; 0x5b6a <__fp_merge+0x1c>
5b62: 00 20 and r0, r0
5b64: 11 f4 brne .+4 ; 0x5b6a <__fp_merge+0x1c>
5b66: 60 ff sbrs r22, 0
5b68: 04 c0 rjmp .+8 ; 0x5b72 <__fp_merge+0x24>
5b6a: 6f 5f subi r22, 0xFF ; 255
5b6c: 7f 4f sbci r23, 0xFF ; 255
5b6e: 8f 4f sbci r24, 0xFF ; 255
5b70: 9f 4f sbci r25, 0xFF ; 255
5b72: 88 1f adc r24, r24
5b74: 97 95 ror r25
5b76: 87 95 ror r24
5b78: 97 f9 bld r25, 7
5b7a: 08 95 ret
5b7c: 2c c0 rjmp .+88 ; 0x5bd6 <__fp_zero>
 
00005b7e <__fp_nan>:
5b7e: 9f ef ldi r25, 0xFF ; 255
5b80: 80 ec ldi r24, 0xC0 ; 192
5b82: 08 95 ret
 
00005b84 <__fp_split3>:
5b84: 05 2e mov r0, r21
5b86: 09 26 eor r0, r25
5b88: 07 fa bst r0, 7
 
00005b8a <__fp_split2>:
5b8a: 44 0f add r20, r20
5b8c: 55 1f adc r21, r21
5b8e: 5f 3f cpi r21, 0xFF ; 255
5b90: 79 f0 breq .+30 ; 0x5bb0 <__fp_split1+0x14>
5b92: aa 27 eor r26, r26
5b94: a5 17 cp r26, r21
5b96: 08 f0 brcs .+2 ; 0x5b9a <__fp_split2+0x10>
5b98: 51 e0 ldi r21, 0x01 ; 1
5b9a: 47 95 ror r20
 
00005b9c <__fp_split1>:
5b9c: 88 0f add r24, r24
5b9e: 99 1f adc r25, r25
5ba0: 9f 3f cpi r25, 0xFF ; 255
5ba2: 31 f0 breq .+12 ; 0x5bb0 <__fp_split1+0x14>
5ba4: bb 27 eor r27, r27
5ba6: b9 17 cp r27, r25
5ba8: 08 f0 brcs .+2 ; 0x5bac <__fp_split1+0x10>
5baa: 91 e0 ldi r25, 0x01 ; 1
5bac: 87 95 ror r24
5bae: 08 95 ret
5bb0: 9f 91 pop r25
5bb2: 9f 91 pop r25
5bb4: 11 24 eor r1, r1
5bb6: e3 cf rjmp .-58 ; 0x5b7e <__fp_nan>
 
00005bb8 <__fp_split_a>:
5bb8: 97 fb bst r25, 7
5bba: 88 0f add r24, r24
5bbc: 99 1f adc r25, r25
5bbe: 9f 3f cpi r25, 0xFF ; 255
5bc0: 31 f0 breq .+12 ; 0x5bce <__fp_split_a+0x16>
5bc2: bb 27 eor r27, r27
5bc4: b9 17 cp r27, r25
5bc6: 08 f0 brcs .+2 ; 0x5bca <__fp_split_a+0x12>
5bc8: 91 e0 ldi r25, 0x01 ; 1
5bca: 87 95 ror r24
5bcc: 08 95 ret
5bce: 9f 91 pop r25
5bd0: 9f 91 pop r25
5bd2: 11 24 eor r1, r1
5bd4: d4 cf rjmp .-88 ; 0x5b7e <__fp_nan>
 
00005bd6 <__fp_zero>:
5bd6: 66 27 eor r22, r22
5bd8: 77 27 eor r23, r23
5bda: 88 27 eor r24, r24
 
00005bdc <__fp_zerox>:
5bdc: 99 27 eor r25, r25
5bde: 08 95 ret
 
00005be0 <__mulsf3>:
5be0: d1 df rcall .-94 ; 0x5b84 <__fp_split3>
5be2: 01 d0 rcall .+2 ; 0x5be6 <__mulsf3x>
5be4: b4 cf rjmp .-152 ; 0x5b4e <__fp_merge>
 
00005be6 <__mulsf3x>:
5be6: 99 23 and r25, r25
5be8: 39 f0 breq .+14 ; 0x5bf8 <__mulsf3x+0x12>
5bea: 55 23 and r21, r21
5bec: 29 f0 breq .+10 ; 0x5bf8 <__mulsf3x+0x12>
5bee: 9f 57 subi r25, 0x7F ; 127
5bf0: 5f 57 subi r21, 0x7F ; 127
5bf2: 95 0f add r25, r21
5bf4: 13 f4 brvc .+4 ; 0x5bfa <__mulsf3x+0x14>
5bf6: 9a f1 brmi .+102 ; 0x5c5e <__mulsf3x+0x78>
5bf8: f1 cf rjmp .-30 ; 0x5bdc <__fp_zerox>
5bfa: 91 58 subi r25, 0x81 ; 129
5bfc: 9f 3f cpi r25, 0xFF ; 255
5bfe: e1 f3 breq .-8 ; 0x5bf8 <__mulsf3x+0x12>
5c00: 62 9f mul r22, r18
5c02: a1 2d mov r26, r1
5c04: 0f 92 push r0
5c06: bb 27 eor r27, r27
5c08: 63 9f mul r22, r19
5c0a: a0 0d add r26, r0
5c0c: b1 1d adc r27, r1
5c0e: ee 27 eor r30, r30
5c10: 72 9f mul r23, r18
5c12: a0 0d add r26, r0
5c14: b1 1d adc r27, r1
5c16: ee 1f adc r30, r30
5c18: af 93 push r26
5c1a: aa 27 eor r26, r26
5c1c: 64 9f mul r22, r20
5c1e: b0 0d add r27, r0
5c20: e1 1d adc r30, r1
5c22: 73 9f mul r23, r19
5c24: b0 0d add r27, r0
5c26: e1 1d adc r30, r1
5c28: aa 1f adc r26, r26
5c2a: 66 27 eor r22, r22
5c2c: 82 9f mul r24, r18
5c2e: b0 0d add r27, r0
5c30: e1 1d adc r30, r1
5c32: a6 1f adc r26, r22
5c34: 55 27 eor r21, r21
5c36: 74 9f mul r23, r20
5c38: e0 0d add r30, r0
5c3a: a1 1d adc r26, r1
5c3c: 55 1f adc r21, r21
5c3e: 83 9f mul r24, r19
5c40: e0 0d add r30, r0
5c42: a1 1d adc r26, r1
5c44: 56 1f adc r21, r22
5c46: 84 9f mul r24, r20
5c48: a0 0d add r26, r0
5c4a: 51 1d adc r21, r1
5c4c: 85 2f mov r24, r21
5c4e: 7a 2f mov r23, r26
5c50: 6e 2f mov r22, r30
5c52: 1f 90 pop r1
5c54: 0f 90 pop r0
5c56: 88 23 and r24, r24
5c58: 1a f4 brpl .+6 ; 0x5c60 <__mulsf3x+0x7a>
5c5a: 93 95 inc r25
5c5c: 39 f4 brne .+14 ; 0x5c6c <__mulsf3x+0x86>
5c5e: 8f cf rjmp .-226 ; 0x5b7e <__fp_nan>
5c60: 00 0c add r0, r0
5c62: 11 1c adc r1, r1
5c64: bb 1f adc r27, r27
5c66: 66 1f adc r22, r22
5c68: 77 1f adc r23, r23
5c6a: 88 1f adc r24, r24
5c6c: 01 28 or r0, r1
5c6e: 08 95 ret
 
00005c70 <__mulsi3>:
5c70: 62 9f mul r22, r18
5c72: d0 01 movw r26, r0
5c74: 73 9f mul r23, r19
5c76: f0 01 movw r30, r0
5c78: 82 9f mul r24, r18
5c7a: e0 0d add r30, r0
5c7c: f1 1d adc r31, r1
5c7e: 64 9f mul r22, r20
5c80: e0 0d add r30, r0
5c82: f1 1d adc r31, r1
5c84: 92 9f mul r25, r18
5c86: f0 0d add r31, r0
5c88: 83 9f mul r24, r19
5c8a: f0 0d add r31, r0
5c8c: 74 9f mul r23, r20
5c8e: f0 0d add r31, r0
5c90: 65 9f mul r22, r21
5c92: f0 0d add r31, r0
5c94: 99 27 eor r25, r25
5c96: 72 9f mul r23, r18
5c98: b0 0d add r27, r0
5c9a: e1 1d adc r30, r1
5c9c: f9 1f adc r31, r25
5c9e: 63 9f mul r22, r19
5ca0: b0 0d add r27, r0
5ca2: e1 1d adc r30, r1
5ca4: f9 1f adc r31, r25
5ca6: bd 01 movw r22, r26
5ca8: cf 01 movw r24, r30
5caa: 11 24 eor r1, r1
5cac: 08 95 ret
 
00005cae <__udivmodhi4>:
5cae: aa 1b sub r26, r26
5cb0: bb 1b sub r27, r27
5cb2: 51 e1 ldi r21, 0x11 ; 17
5cb4: 07 c0 rjmp .+14 ; 0x5cc4 <__udivmodhi4_ep>
 
00005cb6 <__udivmodhi4_loop>:
5cb6: aa 1f adc r26, r26
5cb8: bb 1f adc r27, r27
5cba: a6 17 cp r26, r22
5cbc: b7 07 cpc r27, r23
5cbe: 10 f0 brcs .+4 ; 0x5cc4 <__udivmodhi4_ep>
5cc0: a6 1b sub r26, r22
5cc2: b7 0b sbc r27, r23
 
00005cc4 <__udivmodhi4_ep>:
5cc4: 88 1f adc r24, r24
5cc6: 99 1f adc r25, r25
5cc8: 5a 95 dec r21
5cca: a9 f7 brne .-22 ; 0x5cb6 <__udivmodhi4_loop>
5ccc: 80 95 com r24
5cce: 90 95 com r25
5cd0: bc 01 movw r22, r24
5cd2: cd 01 movw r24, r26
5cd4: 08 95 ret
 
00005cd6 <__divmodhi4>:
5cd6: 97 fb bst r25, 7
5cd8: 09 2e mov r0, r25
5cda: 07 26 eor r0, r23
5cdc: 0a d0 rcall .+20 ; 0x5cf2 <__divmodhi4_neg1>
5cde: 77 fd sbrc r23, 7
5ce0: 04 d0 rcall .+8 ; 0x5cea <__divmodhi4_neg2>
5ce2: e5 df rcall .-54 ; 0x5cae <__udivmodhi4>
5ce4: 06 d0 rcall .+12 ; 0x5cf2 <__divmodhi4_neg1>
5ce6: 00 20 and r0, r0
5ce8: 1a f4 brpl .+6 ; 0x5cf0 <__divmodhi4_exit>
 
00005cea <__divmodhi4_neg2>:
5cea: 70 95 com r23
5cec: 61 95 neg r22
5cee: 7f 4f sbci r23, 0xFF ; 255
 
00005cf0 <__divmodhi4_exit>:
5cf0: 08 95 ret
 
00005cf2 <__divmodhi4_neg1>:
5cf2: f6 f7 brtc .-4 ; 0x5cf0 <__divmodhi4_exit>
5cf4: 90 95 com r25
5cf6: 81 95 neg r24
5cf8: 9f 4f sbci r25, 0xFF ; 255
5cfa: 08 95 ret
 
00005cfc <__udivmodsi4>:
5cfc: a1 e2 ldi r26, 0x21 ; 33
5cfe: 1a 2e mov r1, r26
5d00: aa 1b sub r26, r26
5d02: bb 1b sub r27, r27
5d04: fd 01 movw r30, r26
5d06: 0d c0 rjmp .+26 ; 0x5d22 <__udivmodsi4_ep>
 
00005d08 <__udivmodsi4_loop>:
5d08: aa 1f adc r26, r26
5d0a: bb 1f adc r27, r27
5d0c: ee 1f adc r30, r30
5d0e: ff 1f adc r31, r31
5d10: a2 17 cp r26, r18
5d12: b3 07 cpc r27, r19
5d14: e4 07 cpc r30, r20
5d16: f5 07 cpc r31, r21
5d18: 20 f0 brcs .+8 ; 0x5d22 <__udivmodsi4_ep>
5d1a: a2 1b sub r26, r18
5d1c: b3 0b sbc r27, r19
5d1e: e4 0b sbc r30, r20
5d20: f5 0b sbc r31, r21
 
00005d22 <__udivmodsi4_ep>:
5d22: 66 1f adc r22, r22
5d24: 77 1f adc r23, r23
5d26: 88 1f adc r24, r24
5d28: 99 1f adc r25, r25
5d2a: 1a 94 dec r1
5d2c: 69 f7 brne .-38 ; 0x5d08 <__udivmodsi4_loop>
5d2e: 60 95 com r22
5d30: 70 95 com r23
5d32: 80 95 com r24
5d34: 90 95 com r25
5d36: 9b 01 movw r18, r22
5d38: ac 01 movw r20, r24
5d3a: bd 01 movw r22, r26
5d3c: cf 01 movw r24, r30
5d3e: 08 95 ret
 
00005d40 <__divmodsi4>:
5d40: 97 fb bst r25, 7
5d42: 09 2e mov r0, r25
5d44: 05 26 eor r0, r21
5d46: 0e d0 rcall .+28 ; 0x5d64 <__divmodsi4_neg1>
5d48: 57 fd sbrc r21, 7
5d4a: 04 d0 rcall .+8 ; 0x5d54 <__divmodsi4_neg2>
5d4c: d7 df rcall .-82 ; 0x5cfc <__udivmodsi4>
5d4e: 0a d0 rcall .+20 ; 0x5d64 <__divmodsi4_neg1>
5d50: 00 1c adc r0, r0
5d52: 38 f4 brcc .+14 ; 0x5d62 <__divmodsi4_exit>
 
00005d54 <__divmodsi4_neg2>:
5d54: 50 95 com r21
5d56: 40 95 com r20
5d58: 30 95 com r19
5d5a: 21 95 neg r18
5d5c: 3f 4f sbci r19, 0xFF ; 255
5d5e: 4f 4f sbci r20, 0xFF ; 255
5d60: 5f 4f sbci r21, 0xFF ; 255
 
00005d62 <__divmodsi4_exit>:
5d62: 08 95 ret
 
00005d64 <__divmodsi4_neg1>:
5d64: f6 f7 brtc .-4 ; 0x5d62 <__divmodsi4_exit>
5d66: 90 95 com r25
5d68: 80 95 com r24
5d6a: 70 95 com r23
5d6c: 61 95 neg r22
5d6e: 7f 4f sbci r23, 0xFF ; 255
5d70: 8f 4f sbci r24, 0xFF ; 255
5d72: 9f 4f sbci r25, 0xFF ; 255
5d74: 08 95 ret
 
00005d76 <__prologue_saves__>:
5d76: 2f 92 push r2
5d78: 3f 92 push r3
5d7a: 4f 92 push r4
5d7c: 5f 92 push r5
5d7e: 6f 92 push r6
5d80: 7f 92 push r7
5d82: 8f 92 push r8
5d84: 9f 92 push r9
5d86: af 92 push r10
5d88: bf 92 push r11
5d8a: cf 92 push r12
5d8c: df 92 push r13
5d8e: ef 92 push r14
5d90: ff 92 push r15
5d92: 0f 93 push r16
5d94: 1f 93 push r17
5d96: cf 93 push r28
5d98: df 93 push r29
5d9a: cd b7 in r28, 0x3d ; 61
5d9c: de b7 in r29, 0x3e ; 62
5d9e: ca 1b sub r28, r26
5da0: db 0b sbc r29, r27
5da2: 0f b6 in r0, 0x3f ; 63
5da4: f8 94 cli
5da6: de bf out 0x3e, r29 ; 62
5da8: 0f be out 0x3f, r0 ; 63
5daa: cd bf out 0x3d, r28 ; 61
5dac: 09 94 ijmp
 
00005dae <__epilogue_restores__>:
5dae: 2a 88 ldd r2, Y+18 ; 0x12
5db0: 39 88 ldd r3, Y+17 ; 0x11
5db2: 48 88 ldd r4, Y+16 ; 0x10
5db4: 5f 84 ldd r5, Y+15 ; 0x0f
5db6: 6e 84 ldd r6, Y+14 ; 0x0e
5db8: 7d 84 ldd r7, Y+13 ; 0x0d
5dba: 8c 84 ldd r8, Y+12 ; 0x0c
5dbc: 9b 84 ldd r9, Y+11 ; 0x0b
5dbe: aa 84 ldd r10, Y+10 ; 0x0a
5dc0: b9 84 ldd r11, Y+9 ; 0x09
5dc2: c8 84 ldd r12, Y+8 ; 0x08
5dc4: df 80 ldd r13, Y+7 ; 0x07
5dc6: ee 80 ldd r14, Y+6 ; 0x06
5dc8: fd 80 ldd r15, Y+5 ; 0x05
5dca: 0c 81 ldd r16, Y+4 ; 0x04
5dcc: 1b 81 ldd r17, Y+3 ; 0x03
5dce: aa 81 ldd r26, Y+2 ; 0x02
5dd0: b9 81 ldd r27, Y+1 ; 0x01
5dd2: ce 0f add r28, r30
5dd4: d1 1d adc r29, r1
5dd6: 0f b6 in r0, 0x3f ; 63
5dd8: f8 94 cli
5dda: de bf out 0x3e, r29 ; 62
5ddc: 0f be out 0x3f, r0 ; 63
5dde: cd bf out 0x3d, r28 ; 61
5de0: ed 01 movw r28, r26
5de2: 08 95 ret
 
00005de4 <__tablejump2__>:
5de4: ee 0f add r30, r30
5de6: ff 1f adc r31, r31
 
00005de8 <__tablejump__>:
5de8: 05 90 lpm r0, Z+
5dea: f4 91 lpm r31, Z
5dec: e0 2d mov r30, r0
5dee: 09 94 ijmp
 
00005df0 <__eeprom_read_byte_1F2021>:
5df0: f9 99 sbic 0x1f, 1 ; 31
5df2: fe cf rjmp .-4 ; 0x5df0 <__eeprom_read_byte_1F2021>
5df4: b2 bd out 0x22, r27 ; 34
5df6: a1 bd out 0x21, r26 ; 33
5df8: f8 9a sbi 0x1f, 0 ; 31
5dfa: 11 96 adiw r26, 0x01 ; 1
5dfc: 00 b4 in r0, 0x20 ; 32
5dfe: 08 95 ret
 
00005e00 <__eeprom_read_block_1F2021>:
5e00: f7 df rcall .-18 ; 0x5df0 <__eeprom_read_byte_1F2021>
5e02: 01 92 st Z+, r0
5e04: 1a 94 dec r1
5e06: e1 f7 brne .-8 ; 0x5e00 <__eeprom_read_block_1F2021>
5e08: 08 95 ret
 
00005e0a <__eeprom_write_byte_1F2021>:
5e0a: f9 99 sbic 0x1f, 1 ; 31
5e0c: fe cf rjmp .-4 ; 0x5e0a <__eeprom_write_byte_1F2021>
5e0e: b2 bd out 0x22, r27 ; 34
5e10: a1 bd out 0x21, r26 ; 33
5e12: 00 bc out 0x20, r0 ; 32
5e14: 11 96 adiw r26, 0x01 ; 1
5e16: 0f b6 in r0, 0x3f ; 63
5e18: f8 94 cli
5e1a: fa 9a sbi 0x1f, 2 ; 31
5e1c: f9 9a sbi 0x1f, 1 ; 31
5e1e: 0f be out 0x3f, r0 ; 63
5e20: 08 95 ret
 
00005e22 <__eeprom_write_block_1F2021>:
5e22: 01 90 ld r0, Z+
5e24: f2 df rcall .-28 ; 0x5e0a <__eeprom_write_byte_1F2021>
5e26: 1a 94 dec r1
5e28: e1 f7 brne .-8 ; 0x5e22 <__eeprom_write_block_1F2021>
5e2a: 08 95 ret
 
00005e2c <_exit>:
5e2c: ff cf rjmp .-2 ; 0x5e2c <_exit>
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.map
0,0 → 1,1755
Archive member included because of file (symbol)
 
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
analog.o (__subsf3)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
math.o (__divsf3)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) (__divsf3x)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
analog.o (__fixsfsi)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
analog.o (__floatsisf)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
analog.o (__ltsf2)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_merge)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) (__fp_nanx)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_split3)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) (__fp_zero)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
compass.o (__mulsf3)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
timer0.o (__mulsi3)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
analog.o (__udivmodhi4)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
timer0.o (__divmodhi4)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
printf_P.o (__udivmodsi4)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
timer0.o (__divmodsi4)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
uart.o (__prologue_saves__)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
uart.o (__epilogue_restores__)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o (exit)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
uart.o (__tablejump2__)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o)
printf_P.o (memchr)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
main.o (__eeprom_read_byte_1F2021)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
compass.o (__eeprom_read_block_1F2021)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
main.o (__eeprom_write_byte_1F2021)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
compass.o (__eeprom_write_block_1F2021)
 
Allocating common symbols
Common symbol size file
 
MeineSlaveAdresse 0x1 uart.o
EE_Parameter 0x3a fc.o
DiffRoll 0x2 main.o
MesswertRoll 0x2 fc.o
Motor_Vorne 0x1 main.o
Motor_Hinten 0x1 main.o
MesswertNick 0x2 fc.o
Aktuell_ay 0x2 analog.o
MIN_GAS 0x1 fc.o
SendeBuffer 0x96 uart.o
NMEABuffer 0x96 uart.o
Mittelwert_AccHoch 0x2 fc.o
Debug_Timer 0x2 uart.o
DiffNick 0x2 main.o
DebugIn 0xb uart.o
VersionInfo 0xa uart.o
motor_rx 0x8 twimaster.o
MM3_calib 0x3 compass.o
PPM_in 0x16 rc.o
IntegralFaktor 0x4 fc.o
Motor_Rechts 0x1 main.o
Count 0x1 main.o
Aktuell_az 0x2 analog.o
StartLuftdruck 0x2 analog.o
RxdBuffer 0x96 uart.o
acc_neutral 0x8 fc.o
PrintZiel 0x1 printf_P.o
Aktuell_Nick 0x2 analog.o
messanzahl_Druck 0x1 analog.o
Motor_Links 0x1 main.o
Aktuell_Roll 0x2 analog.o
Aktuell_ax 0x2 analog.o
s 0x1 main.o
h 0x1 main.o
Mittelwert_AccNick 0x2 fc.o
DebugOut 0x32 uart.o
DruckOffsetSetting 0x1 analog.o
Aktuell_Gier 0x2 analog.o
MM3 0x14 compass.o
MAX_GAS 0x1 fc.o
MesswertGier 0x2 fc.o
GyroFaktor 0x4 fc.o
m 0x1 main.o
Mittelwert_AccRoll 0x2 fc.o
MotorWert 0x5 main.o
PPM_diff 0x16 rc.o
tmpLuftdruck 0x2 analog.o
 
Discarded input sections
 
.stabstr 0x00000000 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
LOAD main.o
LOAD uart.o
LOAD printf_P.o
LOAD timer0.o
LOAD analog.o
LOAD menu.o
LOAD compass.o
LOAD math.o
LOAD twimaster.o
LOAD rc.o
LOAD fc.o
LOAD GPS.o
LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a
LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a
LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a
LOAD c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x5e2e
*(.vectors)
.vectors 0x00000000 0x70 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
.progmem.gcc_sw_table
0x00000070 0x28 uart.o
.progmem.gcc_sw_table
0x00000098 0x10 analog.o
.progmem.gcc_sw_table
0x000000a8 0x18 menu.o
.progmem.gcc_sw_table
0x000000c0 0x10 twimaster.o
*(.progmem*)
.progmem.data 0x000000d0 0xf9 main.o
.progmem.data 0x000001c9 0x2 analog.o
.progmem.data 0x000001cb 0x2ac menu.o
.progmem.data 0x00000477 0x343 math.o
0x000006f1 pgm_asin
0x00000585 pgm_sinus_f
0x00000477 pgm_atan
0x000007ba . = ALIGN (0x2)
0x000007ba __trampolines_start = .
*(.trampolines)
.trampolines 0x000007ba 0x0 linker stubs
*(.trampolines*)
0x000007ba __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000007ba __ctors_start = .
*(.ctors)
0x000007ba __ctors_end = .
0x000007ba __dtors_start = .
*(.dtors)
0x000007ba __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000007ba 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
0x000007ba __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000007ba 0xc c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x000007c6 0x16 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
0x000007c6 __do_copy_data
.init4 0x000007dc 0x10 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
0x000007dc __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000007ec 0x8 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
*(.init9)
*(.text)
.text 0x000007f4 0x4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
0x000007f4 __vector_1
0x000007f4 __bad_interrupt
0x000007f4 __vector_6
0x000007f4 __vector_3
0x000007f4 __vector_23
0x000007f4 __vector_25
0x000007f4 __vector_11
0x000007f4 __vector_13
0x000007f4 __vector_17
0x000007f4 __vector_7
0x000007f4 __vector_27
0x000007f4 __vector_5
0x000007f4 __vector_4
0x000007f4 __vector_2
0x000007f4 __vector_21
0x000007f4 __vector_15
0x000007f4 __vector_8
0x000007f4 __vector_14
0x000007f4 __vector_10
0x000007f4 __vector_16
.text 0x000007f8 0x3dc main.o
0x00000806 WriteParameterSet
0x00000836 ReadParameterSet
0x00000862 main
0x000007f8 GetActiveParamSetNumber
.text 0x00000bd4 0x65a uart.o
0x00000bd4 __vector_22
0x00000fde WriteProgramData
0x00000fe0 UART_Init
0x000010f2 BearbeiteRxDaten
0x00000de4 AddCRC
0x00001016 DatenUebertragung
0x00000f0c Decode64
0x00000e40 SendOutData
0x00000c40 __vector_20
0x00000fbc uart_putchar
.text 0x0000122e 0x5a4 printf_P.o
0x0000122e Putchar
0x000012e0 _printf_P
0x00001260 PAD_0
0x0000128c PRINTP
0x000012b8 PRINT
0x00001276 PAD_SP
.text 0x000017d2 0x30a timer0.o
0x000017d2 SetDelay
0x00001a6c Timer_Init
0x000017e4 CheckDelay
0x00001ab8 Delay_ms
0x000017fc __vector_9
0x0000194a __vector_18
.text 0x00001adc 0x654 analog.o
0x00001ae8 __vector_24
0x00001adc ADC_Init
0x000020e2 SucheLuftruckOffset
.text 0x00002130 0x7dc menu.o
0x00002130 LcdClear
0x00002142 Menu
.text 0x0000290c 0x4e8 compass.o
0x00002cba calib_MM3
0x00002a6c MM3_heading
0x0000290c __vector_19
0x00002dcc MM3_init
0x00002c52 MM3_timer0
.text 0x00002df4 0x276 math.o
0x00002df4 atan2_i
0x00003034 cos_f
0x00002f58 pgm_read_float
0x00003044 asin_i
0x00002f6c sin_f
.text 0x0000306a 0x158 twimaster.o
0x00003076 i2c_start
0x00003082 i2c_stop
0x0000306a i2c_init
0x0000309e __vector_26
0x0000308a i2c_write_byte
.text 0x000031c2 0x168 rc.o
0x000031ec __vector_12
0x000031c2 rc_sum_init
.text 0x0000332a 0x2608 fc.o
0x0000446a Neutral_calib
0x00004158 DefaultKonstanten1
0x00004238 SendMotorData
0x0000332a Mittelwert
0x0000450a Piep
0x000038ac CalibrierMittelwert
0x000042c6 SetNeutral
0x0000407e DefaultKonstanten2
0x00003be4 ParameterZuordnung
0x00004534 MotorRegler
.text 0x00005932 0x54 GPS.o
0x00005932 GPS_Neutral
0x00005974 GPS_BerechneZielrichtung
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
.text 0x00005986 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
.text 0x00005986 0x1a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o)
0x00005986 memchr
.text 0x000059a0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.text 0x000059a0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.text 0x000059a0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.text 0x000059a0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
0x000059a0 . = ALIGN (0x2)
*(.text.*)
.text.fplib 0x000059a0 0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
0x000059a0 __subsf3
0x000059a2 __addsf3
.text.fplib 0x000059aa 0x7c c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
0x000059aa __addsf3x
.text.fplib 0x00005a26 0x6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
0x00005a26 __divsf3
.text.fplib 0x00005a2c 0x86 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
0x00005a2c __divsf3x
.text.fplib 0x00005ab2 0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
0x00005ab2 __fixsfsi
0x00005ad8 __fp_lneg
0x00005ab2 __fixunssfsi
.text.fplib 0x00005ae8 0x18 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
0x00005aec __floatsisf
0x00005ae8 __floatunssisf
.text.fplib 0x00005b00 0x44 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
0x00005b00 __lesf2
0x00005b00 __nesf2
0x00005b06 __gtsf2
0x00005b00 __eqsf2
0x00005b0c __cmpsf2
0x00005b00 __ltsf2
0x00005b06 __gesf2
.text.fplib 0x00005b44 0x3a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
0x00005b4e __fp_merge
.text.fplib 0x00005b7e 0x6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
0x00005b7e __fp_nanERANGE
0x00005b7e __fp_nan
0x00005b7e __fp_nanEDOM
0x00005b7e __fp_nanx
.text.fplib 0x00005b84 0x52 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
0x00005b84 __fp_split3
0x00005b8a __fp_split2
0x00005b9c __fp_split1
0x00005bb8 __fp_split_a
.text.fplib 0x00005bd6 0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
0x00005bd6 __fp_zero
0x00005bdc __fp_zerox
.text.fplib 0x00005be0 0x6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
0x00005be0 __mulsf3
.text.fplib 0x00005be6 0x8a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
0x00005be6 __mulsf3x
.text.libgcc 0x00005c70 0x3e c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
0x00005c70 __mulsi3
.text.libgcc 0x00005cae 0x28 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
0x00005cae __udivmodhi4
.text.libgcc 0x00005cd6 0x26 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
0x00005cd6 __divmodhi4
0x00005cd6 _div
.text.libgcc 0x00005cfc 0x44 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
0x00005cfc __udivmodsi4
.text.libgcc 0x00005d40 0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
0x00005d40 __divmodsi4
.text.libgcc 0x00005d76 0x38 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
0x00005d76 __prologue_saves__
.text.libgcc 0x00005dae 0x36 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
0x00005dae __epilogue_restores__
.text.libgcc 0x00005de4 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
.text.libgcc 0x00005de4 0xc c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
0x00005de8 __tablejump__
0x00005de4 __tablejump2__
.text.libgcc 0x00005df0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc 0x00005df0 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
.text.eeprom 0x00005df0 0x10 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
0x00005df0 __eeprom_read_byte_1F2021
.text.eeprom 0x00005e00 0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
0x00005e00 __eeprom_read_block_1F2021
.text.eeprom 0x00005e0a 0x18 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
0x00005e0a __eeprom_write_byte_1F2021
.text.eeprom 0x00005e22 0xa c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
0x00005e22 __eeprom_write_block_1F2021
0x00005e2c . = ALIGN (0x2)
*(.fini9)
.fini9 0x00005e2c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
0x00005e2c exit
0x00005e2c _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00005e2c 0x2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
*(.fini0)
0x00005e2e _etext = .
 
.data 0x00800100 0x8c load address 0x00005e2e
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
.data 0x00800100 0x0 main.o
.data 0x00800100 0x2 uart.o
0x00800101 PcZugriff
0x00800100 UebertragungAbgeschlossen
.data 0x00800102 0x0 printf_P.o
.data 0x00800102 0x4 timer0.o
0x00800102 cntKompass
.data 0x00800106 0x8 analog.o
0x00800106 UBat
0x0080010c MessLuftdruck
0x00800108 Luftdruck
.data 0x0080010e 0x5b menu.o
0x0080010e Array
0x00800118 DisplayBuff
.data 0x00800169 0x0 compass.o
.data 0x00800169 0x0 math.o
.data 0x00800169 0x0 twimaster.o
.data 0x00800169 0x1 rc.o
0x00800169 NewPpmData
.data 0x0080016a 0x22 fc.o
0x0080017e Ki
0x00800182 Parameter_Luftdruck_D
0x00800186 Parameter_KompassWirkung
0x0080018b Parameter_ServoNickControl
0x00800187 Parameter_Gyro_P
0x00800184 Parameter_Hoehe_P
0x00800185 Parameter_Hoehe_ACC_Wirkung
0x00800188 Parameter_Gyro_I
0x00800183 Parameter_MaxHoehe
0x0080018a Parameter_I_Faktor
0x0080017a Kp
0x00800189 Parameter_Gier_P
.data 0x0080018c 0x0 GPS.o
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.data 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x0080018c . = ALIGN (0x2)
0x0080018c _edata = .
0x0080018c PROVIDE (__data_end, .)
 
.bss 0x0080018c 0x3a8
0x0080018c PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0080018c 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
.bss 0x0080018c 0x0 main.o
.bss 0x0080018c 0x17 uart.o
0x0080018c DebugGetAnforderung
0x00800190 SioTmp
0x00800195 PC_DebugTimeout
0x0080018f GetVersionAnforderung
0x00800192 NeueKoordinateEmpfangen
0x0080018e DebugDataAnforderung
0x00800196 MotorTest
0x00800191 NeuerDatensatzEmpfangen
0x0080018d DebugDisplayAnforderung
0x00800193 CntCrcError
0x00800194 AnzahlEmpfangsBytes
.bss 0x008001a3 0x0 printf_P.o
.bss 0x008001a3 0xa timer0.o
0x008001a6 beeptime
0x008001a3 CountMilliseconds
0x008001a5 UpdateMotor
0x008001a8 ServoValue
.bss 0x008001ad 0x18 analog.o
0x008001bf HoeheD
0x008001b1 AccumulateGier
0x008001bc messanzahl_AccNick
0x008001be messanzahl_AccHoch
0x008001af AccumulateRoll
0x008001c1 ZaehlMessungen
0x008001b7 accumulate_AccHoch
0x008001bd messanzahl_AccRoll
0x008001b3 accumulate_AccRoll
0x008001b9 MessanzahlNick
0x008001bb MessanzahlGier
0x008001b5 accumulate_AccNick
0x008001ad AccumulateNick
0x008001ba MessanzahlRoll
.bss 0x008001c5 0x5 menu.o
0x008001c7 DispPtr
0x008001c8 RemoteTasten
0x008001c5 TestInt
.bss 0x008001ca 0x0 compass.o
.bss 0x008001ca 0x0 math.o
.bss 0x008001ca 0x3 twimaster.o
0x008001ca twi_state
0x008001cc motorread
0x008001cb motor
.bss 0x008001cd 0x4 rc.o
.bss 0x008001d1 0x7c fc.o
0x00800202 Mess_Integral_Gier2
0x0080021f StickGier
0x008001f2 Mess_IntegralNick2
0x008001de IntegralNick2
0x0080021a SenderOkay
0x008001ea Integral_Gier
0x0080021b StickNick
0x00800214 Poti2
0x00800221 MotorenEin
0x008001d8 CosinusNickWinkel
0x00800222 HoehenWert
0x008001fa Mess_IntegralRoll2
0x00800216 Poti3
0x00800226 Parameter_UserParam1
0x008001d4 AdNeutralRoll
0x00800210 Notlandung
0x008001da IntegralNick
0x00800206 Mess_Integral_Hoch
0x008001fe Mess_Integral_Gier
0x00800229 Parameter_UserParam4
0x0080020c KompassStartwert
0x00800227 Parameter_UserParam2
0x0080020a KompassValue
0x0080020e KompassRichtung
0x008001f6 Mess_IntegralRoll
0x0080021d StickRoll
0x008001d2 AdNeutralNick
0x008001d1 Timeout
0x008001e6 IntegralRoll2
0x00800212 Poti1
0x00800228 Parameter_UserParam3
0x008001d6 AdNeutralGier
0x008001d9 CosinusRollWinkel
0x00800211 HoehenReglerAktiv
0x00800224 SollHoehe
0x00800218 Poti4
0x008001ee Mess_IntegralNick
0x008001e2 IntegralRoll
.bss 0x0080024d 0x14 GPS.o
0x00800259 GpsZiel_X
0x00800255 GpsAktuell_Y
0x0080024d GPS_Nick
0x00800251 GpsAktuell_X
0x0080025d GpsZiel_Y
0x0080024f GPS_Roll
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.bss 0x00800261 0x0 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
*(.bss*)
*(COMMON)
COMMON 0x00800261 0x11 main.o
0x00800261 DiffRoll
0x00800263 Motor_Vorne
0x00800264 Motor_Hinten
0x00800265 DiffNick
0x00800267 Motor_Rechts
0x00800268 Count
0x00800269 Motor_Links
0x0080026a s
0x0080026b h
0x0080026c m
0x0080026d MotorWert
COMMON 0x00800272 0x20c uart.o
0x00800272 MeineSlaveAdresse
0x00800273 SendeBuffer
0x00800309 NMEABuffer
0x0080039f Debug_Timer
0x008003a1 DebugIn
0x008003ac VersionInfo
0x008003b6 RxdBuffer
0x0080044c DebugOut
COMMON 0x0080047e 0x1 printf_P.o
0x0080047e PrintZiel
COMMON 0x0080047f 0x12 analog.o
0x0080047f Aktuell_ay
0x00800481 Aktuell_az
0x00800483 StartLuftdruck
0x00800485 Aktuell_Nick
0x00800487 messanzahl_Druck
0x00800488 Aktuell_Roll
0x0080048a Aktuell_ax
0x0080048c DruckOffsetSetting
0x0080048d Aktuell_Gier
0x0080048f tmpLuftdruck
COMMON 0x00800491 0x17 compass.o
0x00800491 MM3_calib
0x00800494 MM3
COMMON 0x008004a8 0x8 twimaster.o
0x008004a8 motor_rx
COMMON 0x008004b0 0x2c rc.o
0x008004b0 PPM_in
0x008004c6 PPM_diff
COMMON 0x008004dc 0x58 fc.o
0x008004dc EE_Parameter
0x00800516 MesswertRoll
0x00800518 MesswertNick
0x0080051a MIN_GAS
0x0080051b Mittelwert_AccHoch
0x0080051d IntegralFaktor
0x00800521 acc_neutral
0x00800529 Mittelwert_AccNick
0x0080052b MAX_GAS
0x0080052c MesswertGier
0x0080052e GyroFaktor
0x00800532 Mittelwert_AccRoll
0x00800534 PROVIDE (__bss_end, .)
0x00005e2e __data_load_start = LOADADDR (.data)
0x00005eba __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x00800534 0x0
0x00800534 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800534 PROVIDE (__noinit_end, .)
0x00800534 _end = .
0x00800534 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x200
*(.eeprom*)
.eeprom 0x00810000 0x1f5 main.o
0x00810000 EEPromArray
.eeprom 0x008101f5 0x3 compass.o
0x008101f5 ee_calib
.eeprom 0x008101f8 0x8 fc.o
0x008101f8 ee_acc_neutral
0x00810200 __eeprom_end = .
 
.stab 0x00000000 0x378
*(.stab)
.stab 0x00000000 0x378 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
 
.stabstr 0x00000000 0x71
*(.stabstr)
.stabstr 0x00000000 0x71 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(Flight-Ctrl_MEGA644_V0_60_MM3.elf elf32-avr)
LOAD linker stubs
 
Cross Reference Table
 
Symbol File
ADC_Init analog.o
main.o
AccumulateGier analog.o
fc.o
menu.o
AccumulateNick analog.o
fc.o
menu.o
AccumulateRoll analog.o
fc.o
menu.o
AdNeutralGier fc.o
rc.o
menu.o
analog.o
AdNeutralNick fc.o
rc.o
menu.o
analog.o
AdNeutralRoll fc.o
rc.o
menu.o
analog.o
AddCRC uart.o
Aktuell_Gier analog.o
Aktuell_Nick analog.o
Aktuell_Roll analog.o
Aktuell_ax analog.o
Aktuell_ay analog.o
Aktuell_az fc.o
menu.o
analog.o
AnzahlEmpfangsBytes uart.o
Array menu.o
BearbeiteRxDaten uart.o
main.o
CalibrierMittelwert fc.o
CheckDelay timer0.o
fc.o
compass.o
uart.o
main.o
CntCrcError uart.o
CosinusNickWinkel fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
CosinusRollWinkel fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Count GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
CountMilliseconds timer0.o
DatenUebertragung uart.o
main.o
DebugDataAnforderung uart.o
DebugDisplayAnforderung uart.o
DebugGetAnforderung uart.o
DebugIn uart.o
main.o
DebugOut fc.o
uart.o
Debug_Timer uart.o
Decode64 uart.o
DefaultKonstanten1 fc.o
main.o
DefaultKonstanten2 fc.o
main.o
Delay_ms timer0.o
fc.o
analog.o
DiffNick GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
DiffRoll GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
DispPtr menu.o
printf_P.o
DisplayBuff menu.o
printf_P.o
uart.o
DruckOffsetSetting menu.o
analog.o
EEPromArray main.o
fc.o
uart.o
EE_Parameter fc.o
compass.o
menu.o
timer0.o
uart.o
main.o
GPS_BerechneZielrichtung GPS.o
GPS_Neutral GPS.o
fc.o
GPS_Nick GPS.o
fc.o
GPS_Roll GPS.o
fc.o
GetActiveParamSetNumber main.o
fc.o
menu.o
uart.o
GetVersionAnforderung uart.o
GpsAktuell_X GPS.o
GpsAktuell_Y GPS.o
GpsZiel_X GPS.o
GpsZiel_Y GPS.o
GyroFaktor fc.o
HoeheD analog.o
fc.o
HoehenReglerAktiv fc.o
HoehenWert fc.o
menu.o
analog.o
IntegralFaktor fc.o
IntegralNick fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
IntegralNick2 fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
IntegralRoll fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
IntegralRoll2 fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Integral_Gier fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Ki fc.o
KompassRichtung fc.o
menu.o
timer0.o
KompassStartwert fc.o
menu.o
timer0.o
KompassValue fc.o
menu.o
timer0.o
Kp fc.o
LcdClear menu.o
main.o
Luftdruck analog.o
fc.o
MAX_GAS fc.o
MIN_GAS fc.o
MM3 fc.o
compass.o
MM3_calib compass.o
menu.o
MM3_heading compass.o
timer0.o
MM3_init compass.o
main.o
MM3_timer0 compass.o
timer0.o
MeineSlaveAdresse uart.o
Menu menu.o
uart.o
MessLuftdruck analog.o
fc.o
menu.o
Mess_IntegralNick fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Mess_IntegralNick2 fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Mess_IntegralRoll fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Mess_IntegralRoll2 fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Mess_Integral_Gier fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Mess_Integral_Gier2 fc.o
analog.o
Mess_Integral_Hoch fc.o
analog.o
MessanzahlGier analog.o
fc.o
menu.o
MessanzahlNick analog.o
fc.o
menu.o
MessanzahlRoll analog.o
fc.o
menu.o
MesswertGier fc.o
MesswertNick fc.o
MesswertRoll fc.o
Mittelwert fc.o
Mittelwert_AccHoch fc.o
Mittelwert_AccNick fc.o
Mittelwert_AccRoll fc.o
MotorRegler fc.o
main.o
MotorTest uart.o
fc.o
MotorWert GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Motor_Hinten GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Motor_Links GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Motor_Rechts GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Motor_Vorne GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
MotorenEin fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
NMEABuffer uart.o
NeueKoordinateEmpfangen uart.o
NeuerDatensatzEmpfangen uart.o
Neutral_calib fc.o
main.o
NewPpmData rc.o
fc.o
Notlandung fc.o
PAD_0 printf_P.o
PAD_SP printf_P.o
PC_DebugTimeout uart.o
PPM_diff fc.o
rc.o
PPM_in fc.o
rc.o
compass.o
menu.o
main.o
PRINT printf_P.o
PRINTP printf_P.o
ParameterZuordnung fc.o
Parameter_Gier_P fc.o
Parameter_Gyro_I fc.o
Parameter_Gyro_P fc.o
Parameter_Hoehe_ACC_Wirkung fc.o
Parameter_Hoehe_P fc.o
Parameter_I_Faktor fc.o
Parameter_KompassWirkung fc.o
Parameter_Luftdruck_D fc.o
Parameter_MaxHoehe fc.o
Parameter_ServoNickControl fc.o
menu.o
timer0.o
Parameter_UserParam1 fc.o
Parameter_UserParam2 fc.o
Parameter_UserParam3 fc.o
Parameter_UserParam4 fc.o
PcZugriff uart.o
fc.o
main.o
Piep fc.o
uart.o
Poti1 fc.o
menu.o
Poti2 fc.o
menu.o
Poti3 fc.o
menu.o
Poti4 fc.o
menu.o
PrintZiel printf_P.o
Putchar printf_P.o
ReadParameterSet main.o
fc.o
uart.o
RemoteTasten menu.o
GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
RxdBuffer uart.o
SendMotorData fc.o
main.o
SendOutData uart.o
SendeBuffer uart.o
SenderOkay fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
ServoValue timer0.o
menu.o
SetDelay timer0.o
fc.o
compass.o
uart.o
main.o
SetNeutral fc.o
main.o
SioTmp uart.o
SollHoehe fc.o
menu.o
StartLuftdruck fc.o
analog.o
StickGier fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
StickNick fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
StickRoll fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
SucheLuftruckOffset analog.o
fc.o
main.o
TestInt menu.o
Timeout fc.o
GPS.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
Timer_Init timer0.o
main.o
UART_Init uart.o
main.o
UBat analog.o
menu.o
main.o
UebertragungAbgeschlossen uart.o
UpdateMotor timer0.o
main.o
VersionInfo uart.o
main.o
WriteParameterSet main.o
uart.o
WriteProgramData uart.o
ZaehlMessungen analog.o
fc.o
__addsf3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
fc.o
compass.o
analog.o
__addsf3x c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__bad_interrupt c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__bss_end c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
__bss_start c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
__cmpsf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__data_end c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
__data_load_start c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
__data_start c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
__divmodhi4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
fc.o
rc.o
compass.o
menu.o
analog.o
timer0.o
__divmodsi4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
fc.o
compass.o
menu.o
analog.o
timer0.o
__divsf3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
fc.o
math.o
__divsf3x c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
__do_clear_bss c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o)
GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
__do_copy_data c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o)
GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
__eeprom_read_block_1F2021 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
fc.o
compass.o
__eeprom_read_byte_1F2021 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
main.o
__eeprom_write_block_1F2021 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
fc.o
compass.o
__eeprom_write_byte_1F2021 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
fc.o
uart.o
main.o
__epilogue_restores__ c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o)
fc.o
math.o
compass.o
printf_P.o
uart.o
__eqsf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__fixsfsi c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
fc.o
math.o
compass.o
menu.o
analog.o
__fixunssfsi c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__floatsisf c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
fc.o
math.o
compass.o
analog.o
__floatunssisf c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
__fp_lneg c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
__fp_merge c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__fp_nan c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
__fp_nanEDOM c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
__fp_nanERANGE c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
__fp_nanx c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
__fp_split1 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__fp_split2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__fp_split3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__fp_split_a c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o)
__fp_zero c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__fp_zerox c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__gesf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__gtsf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
analog.o
__heap_end c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__init c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__lesf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__ltsf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
fc.o
analog.o
__mulsf3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
fc.o
math.o
compass.o
__mulsf3x c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o)
__mulsi3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o)
fc.o
timer0.o
__nesf2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o)
__prologue_saves__ c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o)
fc.o
math.o
compass.o
printf_P.o
uart.o
__stack c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__subsf3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
compass.o
analog.o
__tablejump2__ c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
twimaster.o
menu.o
analog.o
uart.o
__tablejump__ c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o)
__udivmodhi4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
analog.o
__udivmodsi4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o)
printf_P.o
__vector_1 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_10 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_11 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_12 rc.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_13 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_14 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_15 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_16 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_17 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_18 timer0.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_19 compass.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_2 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_20 uart.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_21 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_22 uart.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_23 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_24 analog.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_25 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_26 twimaster.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_27 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_3 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_4 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_5 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_6 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_7 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_8 c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_9 timer0.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vector_default c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
__vectors c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
_div c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o)
_exit c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
_printf_P printf_P.o
menu.o
analog.o
main.o
acc_neutral fc.o
menu.o
analog.o
accumulate_AccHoch analog.o
fc.o
accumulate_AccNick analog.o
fc.o
menu.o
accumulate_AccRoll analog.o
fc.o
menu.o
asin_i math.o
atan2_i math.o
compass.o
beeptime timer0.o
fc.o
compass.o
main.o
calib_MM3 compass.o
main.o
cntKompass timer0.o
cos_f math.o
compass.o
ee_acc_neutral fc.o
ee_calib compass.o
exit c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o)
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
h GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
i2c_init twimaster.o
main.o
i2c_start twimaster.o
fc.o
i2c_stop twimaster.o
i2c_write_byte twimaster.o
m GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
main main.o
c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o
memchr c:/winavr-20070525/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o)
printf_P.o
messanzahl_AccHoch analog.o
fc.o
messanzahl_AccNick analog.o
fc.o
menu.o
messanzahl_AccRoll analog.o
fc.o
menu.o
messanzahl_Druck analog.o
motor twimaster.o
fc.o
motor_rx twimaster.o
motorread twimaster.o
pgm_asin math.o
pgm_atan math.o
pgm_read_float math.o
pgm_sinus_f math.o
rc_sum_init rc.o
main.o
s GPS.o
fc.o
rc.o
twimaster.o
math.o
compass.o
menu.o
analog.o
timer0.o
printf_P.o
uart.o
main.o
sin_f math.o
compass.o
tmpLuftdruck analog.o
twi_state twimaster.o
fc.o
uart_putchar uart.o
printf_P.o
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.sym
0,0 → 1,477
00000000 W __heap_end
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 a __tmp_reg__
00000000 W __vector_default
00000000 T __vectors
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
00000001 a __zero_reg__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003d a __SP_L__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003e a __SP_H__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
0000003f a __SREG__
000000d0 t __c.2054
000000d4 t __c.2052
000000dc t __c.2050
000000e8 t __c.2048
000000f6 t __c.2046
000000fb t __c.2041
00000118 t __c.2039
00000131 t __c.2037
00000146 t __c.2032
00000161 t __c.2026
00000190 t __c.2024
000001b1 t __c.2022
000001c9 t __c.2021
000001cb t __c.2112
000001da t __c.2110
000001e9 t __c.2108
000001f8 t __c.2106
00000203 t __c.2103
00000211 t __c.2101
0000021f t __c.2099
0000022d t __c.2097
00000235 t __c.2094
00000241 t __c.2092
0000024d t __c.2090
00000259 t __c.2088
00000265 t __c.2085
00000274 t __c.2083
00000283 t __c.2081
00000292 t __c.2079
000002a1 t __c.2076
000002b0 t __c.2074
000002bf t __c.2071
000002ce t __c.2069
000002dd t __c.2067
000002ec t __c.2065
000002f9 t __c.2062
00000308 t __c.2060
00000317 t __c.2058
00000326 t __c.2056
00000334 t __c.2053
00000344 t __c.2051
00000354 t __c.2049
00000364 t __c.2047
00000374 t __c.2044
00000384 t __c.2042
00000394 t __c.2040
000003a4 t __c.2038
000003b4 t __c.2035
000003c3 t __c.2033
000003d2 t __c.2031
000003e1 t __c.2029
000003eb t __c.2026
000003f9 t __c.2024
00000400 t __c.2022
0000040f t __c.2020
0000041e t __c.2018
0000042d t __c.2016
0000043c t __c.2012
0000044c t __c.2010
00000459 t __c.2008
00000460 t __c.2006
00000472 t __c.2003
00000477 T pgm_atan
00000585 T pgm_sinus_f
000006f1 T pgm_asin
000007ba T __ctors_end
000007ba T __ctors_start
000007ba T __dtors_end
000007ba T __dtors_start
000007ba W __init
000007ba T __trampolines_end
000007ba T __trampolines_start
000007c6 T __do_copy_data
000007d2 t .do_copy_data_loop
000007d6 t .do_copy_data_start
000007dc T __do_clear_bss
000007e4 t .do_clear_bss_loop
000007e6 t .do_clear_bss_start
000007f4 T __bad_interrupt
000007f4 W __vector_1
000007f4 W __vector_10
000007f4 W __vector_11
000007f4 W __vector_13
000007f4 W __vector_14
000007f4 W __vector_15
000007f4 W __vector_16
000007f4 W __vector_17
000007f4 W __vector_2
000007f4 W __vector_21
000007f4 W __vector_23
000007f4 W __vector_25
000007f4 W __vector_27
000007f4 W __vector_3
000007f4 W __vector_4
000007f4 W __vector_5
000007f4 W __vector_6
000007f4 W __vector_7
000007f4 W __vector_8
000007f8 T GetActiveParamSetNumber
00000806 T WriteParameterSet
0000081e t .26_start
0000082a t .26_finished
00000836 T ReadParameterSet
00000850 t .44_start
0000085c t .44_finished
00000862 T main
00000bd4 T __vector_22
00000c40 T __vector_20
00000de4 T AddCRC
00000e40 T SendOutData
00000f0c T Decode64
00000fbc T uart_putchar
00000fde T WriteProgramData
00000fe0 T UART_Init
00001016 T DatenUebertragung
000010f2 T BearbeiteRxDaten
000010ff W __stack
0000122e T Putchar
00001260 T PAD_0
00001276 T PAD_SP
0000128c T PRINTP
000012b8 T PRINT
000012e0 T _printf_P
000017d2 T SetDelay
000017e4 T CheckDelay
000017fc T __vector_9
0000194a T __vector_18
00001a6c T Timer_Init
00001ab8 T Delay_ms
00001adc T ADC_Init
00001ae8 T __vector_24
000020e2 T SucheLuftruckOffset
00002130 T LcdClear
00002142 T Menu
0000290c T __vector_19
00002a6c T MM3_heading
00002c52 T MM3_timer0
00002cba T calib_MM3
00002dcc T MM3_init
00002df4 T atan2_i
00002f58 T pgm_read_float
00002f6c T sin_f
00003034 T cos_f
00003044 T asin_i
0000306a T i2c_init
00003076 T i2c_start
00003082 T i2c_stop
0000308a T i2c_write_byte
0000309e T __vector_26
000031c2 T rc_sum_init
000031ec T __vector_12
0000332a T Mittelwert
000038ac T CalibrierMittelwert
00003be4 T ParameterZuordnung
0000407e T DefaultKonstanten2
00004158 T DefaultKonstanten1
00004238 T SendMotorData
000042c6 T SetNeutral
0000446a T Neutral_calib
0000450a T Piep
00004534 T MotorRegler
00005932 T GPS_Neutral
00005974 T GPS_BerechneZielrichtung
00005986 T memchr
000059a0 T __subsf3
000059a2 T __addsf3
000059aa T __addsf3x
00005a26 T __divsf3
00005a2c T __divsf3x
00005ab2 T __fixsfsi
00005ab2 T __fixunssfsi
00005ad8 T __fp_lneg
00005ae8 T __floatunssisf
00005aec T __floatsisf
00005b00 T __eqsf2
00005b00 T __lesf2
00005b00 T __ltsf2
00005b00 T __nesf2
00005b06 T __gesf2
00005b06 T __gtsf2
00005b0c T __cmpsf2
00005b1e t .fp_cmp
00005b4e T __fp_merge
00005b7e T __fp_nan
00005b7e T __fp_nanEDOM
00005b7e T __fp_nanERANGE
00005b7e T __fp_nanx
00005b84 T __fp_split3
00005b8a T __fp_split2
00005b9c T __fp_split1
00005bb8 T __fp_split_a
00005bd6 T __fp_zero
00005bdc T __fp_zerox
00005be0 T __mulsf3
00005be6 T __mulsf3x
00005c70 T __mulsi3
00005cae T __udivmodhi4
00005cb6 t __udivmodhi4_loop
00005cc4 t __udivmodhi4_ep
00005cd6 T __divmodhi4
00005cd6 T _div
00005cea t __divmodhi4_neg2
00005cf0 t __divmodhi4_exit
00005cf2 t __divmodhi4_neg1
00005cfc T __udivmodsi4
00005d08 t __udivmodsi4_loop
00005d22 t __udivmodsi4_ep
00005d40 T __divmodsi4
00005d54 t __divmodsi4_neg2
00005d62 t __divmodsi4_exit
00005d64 t __divmodsi4_neg1
00005d76 T __prologue_saves__
00005dae T __epilogue_restores__
00005de4 T __tablejump2__
00005de8 T __tablejump__
00005df0 T __eeprom_read_byte_1F2021
00005e00 T __eeprom_read_block_1F2021
00005e0a T __eeprom_write_byte_1F2021
00005e22 T __eeprom_write_block_1F2021
00005e2c t __stop_program
00005e2c T _exit
00005e2c W exit
00005e2e A __data_load_start
00005e2e T _etext
00005eba A __data_load_end
00800100 D __data_start
00800100 D UebertragungAbgeschlossen
00800101 D PcZugriff
00800102 D cntKompass
00800104 d timer.2085
00800105 d cnt_1ms.2005
00800106 D UBat
00800108 D Luftdruck
0080010c D MessLuftdruck
0080010e D Array
00800118 D DisplayBuff
00800168 d MaxMenue.2001
00800169 D NewPpmData
0080017a D Kp
0080017e D Ki
00800182 D Parameter_Luftdruck_D
00800183 D Parameter_MaxHoehe
00800184 D Parameter_Hoehe_P
00800185 D Parameter_Hoehe_ACC_Wirkung
00800186 D Parameter_KompassWirkung
00800187 D Parameter_Gyro_P
00800188 D Parameter_Gyro_I
00800189 D Parameter_Gier_P
0080018a D Parameter_I_Faktor
0080018b D Parameter_ServoNickControl
0080018c B __bss_start
0080018c D __data_end
0080018c D _edata
0080018c B DebugGetAnforderung
0080018d B DebugDisplayAnforderung
0080018e B DebugDataAnforderung
0080018f B GetVersionAnforderung
00800190 B SioTmp
00800191 B NeuerDatensatzEmpfangen
00800192 B NeueKoordinateEmpfangen
00800193 B CntCrcError
00800194 B AnzahlEmpfangsBytes
00800195 B PC_DebugTimeout
00800196 B MotorTest
0080019a b dis_zeile.2265
0080019b b UartState.2028
0080019c b buf_ptr.2027
0080019d b crc2.2026
0080019e b crc1.2025
0080019f b crc.2024
008001a1 b ptr.2011
008001a3 B CountMilliseconds
008001a5 B UpdateMotor
008001a6 B beeptime
008001a8 B ServoValue
008001aa b cnt.2006
008001ab b tim_main
008001ad B AccumulateNick
008001af B AccumulateRoll
008001b1 B AccumulateGier
008001b3 B accumulate_AccRoll
008001b5 B accumulate_AccNick
008001b7 B accumulate_AccHoch
008001b9 B MessanzahlNick
008001ba B MessanzahlRoll
008001bb B MessanzahlGier
008001bc B messanzahl_AccNick
008001bd B messanzahl_AccRoll
008001be B messanzahl_AccHoch
008001bf B HoeheD
008001c1 B ZaehlMessungen
008001c3 b state.2036
008001c4 b kanal.2035
008001c5 B TestInt
008001c7 B DispPtr
008001c8 B RemoteTasten
008001c9 b MenuePunkt.2002
008001ca B twi_state
008001cb B motor
008001cc B motorread
008001cd b index.2002
008001cf b AltICR.2000
008001d1 B Timeout
008001d2 B AdNeutralNick
008001d4 B AdNeutralRoll
008001d6 B AdNeutralGier
008001d8 B CosinusNickWinkel
008001d9 B CosinusRollWinkel
008001da B IntegralNick
008001de B IntegralNick2
008001e2 B IntegralRoll
008001e6 B IntegralRoll2
008001ea B Integral_Gier
008001ee B Mess_IntegralNick
008001f2 B Mess_IntegralNick2
008001f6 B Mess_IntegralRoll
008001fa B Mess_IntegralRoll2
008001fe B Mess_Integral_Gier
00800202 B Mess_Integral_Gier2
00800206 B Mess_Integral_Hoch
0080020a B KompassValue
0080020c B KompassStartwert
0080020e B KompassRichtung
00800210 B Notlandung
00800211 B HoehenReglerAktiv
00800212 B Poti1
00800214 B Poti2
00800216 B Poti3
00800218 B Poti4
0080021a B SenderOkay
0080021b B StickNick
0080021d B StickRoll
0080021f B StickGier
00800221 B MotorenEin
00800222 B HoehenWert
00800224 B SollHoehe
00800226 B Parameter_UserParam1
00800227 B Parameter_UserParam2
00800228 B Parameter_UserParam3
00800229 B Parameter_UserParam4
0080022a b NeueKompassRichtungMerken.2397
0080022b b TimerWerteausgabe.2396
0080022c b hoehenregler.2395
0080022e b modell_fliegt.2394
00800230 b delay_ausschalten.2393
00800231 b delay_einschalten.2392
00800232 b delay_neutral.2391
00800233 b RcLostTimer.2390
00800235 b IntegralFehlerRoll.2389
00800237 b IntegralFehlerNick.2388
00800239 b tmp_long2.2387
0080023d b tmp_long.2386
00800241 b sollGier.2385
00800245 b SummeRoll.2384
00800249 b SummeNick.2383
0080024d B GPS_Nick
0080024f B GPS_Roll
00800251 B GpsAktuell_X
00800255 B GpsAktuell_Y
00800259 B GpsZiel_X
0080025d B GpsZiel_Y
00800261 B DiffRoll
00800263 B Motor_Vorne
00800264 B Motor_Hinten
00800265 B DiffNick
00800267 B Motor_Rechts
00800268 B Count
00800269 B Motor_Links
0080026a B s
0080026b B h
0080026c B m
0080026d B MotorWert
00800272 B MeineSlaveAdresse
00800273 B SendeBuffer
00800309 B NMEABuffer
0080039f B Debug_Timer
008003a1 B DebugIn
008003ac B VersionInfo
008003b6 B RxdBuffer
0080044c B DebugOut
0080047e B PrintZiel
0080047f B Aktuell_ay
00800481 B Aktuell_az
00800483 B StartLuftdruck
00800485 B Aktuell_Nick
00800487 B messanzahl_Druck
00800488 B Aktuell_Roll
0080048a B Aktuell_ax
0080048c B DruckOffsetSetting
0080048d B Aktuell_Gier
0080048f B tmpLuftdruck
00800491 B MM3_calib
00800494 B MM3
008004a8 B motor_rx
008004b0 B PPM_in
008004c6 B PPM_diff
008004dc B EE_Parameter
00800516 B MesswertRoll
00800518 B MesswertNick
0080051a B MIN_GAS
0080051b B Mittelwert_AccHoch
0080051d B IntegralFaktor
00800521 B acc_neutral
00800529 B Mittelwert_AccNick
0080052b B MAX_GAS
0080052c B MesswertGier
0080052e B GyroFaktor
00800532 B Mittelwert_AccRoll
00800534 B __bss_end
00800534 A _end
00810000 D EEPromArray
008101f5 D ee_calib
008101f8 D ee_acc_neutral
00810200 D __eeprom_end
/branches/v0.60_MicroMag3_Nick666/trunc/GPS.c
0,0 → 1,26
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
signed int GPS_Nick = 0;
signed int GPS_Roll = 0;
long GpsAktuell_X = 0;
long GpsAktuell_Y = 0;
long GpsZiel_X = 0;
long GpsZiel_Y = 0;
void GPS_Neutral(void)
{
GpsZiel_X = GpsAktuell_X;
GpsZiel_Y = GpsAktuell_Y;
}
 
void GPS_BerechneZielrichtung(void)
{
GPS_Nick = 0;
GPS_Roll = 0;
}
/branches/v0.60_MicroMag3_Nick666/trunc/GPS.d
0,0 → 1,2
GPS.o GPS.d : GPS.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/README.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/v0.60_MicroMag3_Nick666/trunc/Settings.h
--- trunc/_Settings.h (nonexistent)
+++ trunc/_Settings.h (revision 366)
@@ -0,0 +1,50 @@
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Testmodi
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#define MOTOR_OFF 0
+#define MOTOR_TEST 0
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Abstimmung
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#define ACC_AMPLIFY 16
+#define FAKTOR_P 1
+#define FAKTOR_I 0.0001
+
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Debug-Interface
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#define SIO_DEBUG 1 // Soll der Debugger aktiviert sein?
+#define MIN_DEBUG_INTERVALL 250 // in diesem Intervall werden Degugdaten ohne Aufforderung gesendet
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Sender
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ #define K_NICK 0
+ #define K_ROLL 1
+ #define K_GAS 2
+ #define K_GIER 3
+ #define K_POTI1 4
+ #define K_POTI2 5
+ #define K_POTI3 6
+ #define K_POTI4 7
+// +++++++++++++++++++++++++++++++
+// + Getestete Settings:
+// +++++++++++++++++++++++++++++++
+// Setting: Kamera
+// Stick_P:3
+// Stick_D:0
+// Gyro_P: 175
+// Gyro_I: 175
+// Ki_Anteil: 10
+// +++++++++++++++++++++++++++++++
+// + Getestete Settings:
+// +++++++++++++++++++++++++++++++
+// Setting: Normal
+// Stick_P:2
+// Stick_D:8
+// Gyro_P: 80
+// Gyro_I: 150
+// Ki_Anteil: 5
+
/branches/v0.60_MicroMag3_Nick666/trunc/analog.c
0,0 → 1,155
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
 
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 100;
volatile int AccumulateNick = 0, AccumulateRoll = 0, AccumulateGier = 0;
volatile int accumulate_AccRoll = 0,accumulate_AccNick = 0,accumulate_AccHoch = 0;
volatile char MessanzahlNick = 0, MessanzahlRoll = 0, MessanzahlGier = 0;
volatile char messanzahl_AccNick = 0, messanzahl_AccRoll = 0, messanzahl_AccHoch = 0;
volatile long Luftdruck = 32000;
volatile int StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
volatile int HoeheD = 0;
volatile char messanzahl_Druck;
volatile int tmpLuftdruck;
volatile unsigned int ZaehlMessungen = 0;
 
//#######################################################################################
//
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE);
//Free Running Mode, Division Factor 128, Interrupt on
}
 
void SucheLuftruckOffset(void)
{
unsigned int off;
for(off=0; off < 250;off++)
{
OCR0A = off;
Delay_ms(50);
printf(".");
if(MessLuftdruck < 900) break;
}
DruckOffsetSetting = off;
Delay_ms(200);
}
 
 
//#######################################################################################
//
SIGNAL(SIG_ADC)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
signed int wert;
ANALOG_OFF;
switch(state++)
{
case 0:
wert = (signed int) AdNeutralGier - ADC;
AccumulateGier += wert; //
MessanzahlGier++;
Mess_Integral_Gier += wert;// / 16;
Mess_Integral_Gier2 += wert;
kanal = 1;
ZaehlMessungen++;
break;
case 1:
wert = (signed int) ADC - AdNeutralRoll;
Mess_IntegralRoll += wert;
Mess_IntegralRoll2 += wert;
if(ADC < 10) wert = -700;
if(ADC > 1000) wert = +700;
AccumulateRoll += wert;
MessanzahlRoll++;
kanal = 2;
break;
case 2:
wert = (signed int) ADC - AdNeutralNick;
Mess_IntegralNick += wert;
Mess_IntegralNick2 += wert;
if(ADC < 10) wert = -700;
if(ADC > 1000) wert = +700;
AccumulateNick += wert;
MessanzahlNick++;
kanal = 4;
break;
case 3:
UBat = (3 * UBat + ADC / 3) / 4;//(UBat + ((ADC * 39) / 256) + 19) / 2;
kanal = 6;
break;
case 4:
Aktuell_ay = acc_neutral.Y - ADC;
accumulate_AccRoll += Aktuell_ay;
messanzahl_AccRoll++;
kanal = 7;
break;
case 5:
Aktuell_ax = ADC - acc_neutral.X;
accumulate_AccNick += Aktuell_ax;
messanzahl_AccNick++;
kanal = 5;
state = 6;
break;
case 6:
accumulate_AccHoch = (signed int) ADC - acc_neutral.Z;
accumulate_AccHoch += abs(Aktuell_ay) / 4 + abs(Aktuell_ax) / 4;
if(accumulate_AccHoch > 1)
{
if(acc_neutral.Z < 800) acc_neutral.Z+= 0.02;
}
else if(accumulate_AccHoch < -1)
{
if(acc_neutral.Z > 600) acc_neutral.Z-= 0.02;
}
messanzahl_AccHoch = 1;
Aktuell_az = ADC;
Mess_Integral_Hoch += accumulate_AccHoch; // Integrieren
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
// Mess_Integral_Hoch -= Mess_Integral_Hoch / 512; // dämfen
/* if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
kanal = 3;
state = 7;
}
else
{
kanal = 0;
state = 0;
}*/
kanal = 3;
state = 7;
break;
case 7:
tmpLuftdruck += ADC;
if(++messanzahl_Druck >= 5)
{
MessLuftdruck = ADC;
messanzahl_Druck = 0;
HoeheD = (int)(StartLuftdruck - tmpLuftdruck - HoehenWert); // D-Anteil = neuerWert - AlterWert
Luftdruck = (tmpLuftdruck + 3 * Luftdruck) / 4;
HoehenWert = StartLuftdruck - Luftdruck;
tmpLuftdruck = 0;
}
kanal = 0;
state = 0;
break;
default:
kanal = 0;
state = 0;
break;
}
ADMUX = kanal;
ANALOG_ON;
}
/branches/v0.60_MicroMag3_Nick666/trunc/analog.d
0,0 → 1,2
analog.o analog.d : analog.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/analog.h
0,0 → 1,23
/*#######################################################################################
 
#######################################################################################*/
 
extern volatile int UBat;
extern volatile int AccumulateNick, AccumulateRoll, AccumulateGier,accumulate_AccRoll,accumulate_AccNick,accumulate_AccHoch;
extern volatile char MessanzahlNick, MessanzahlRoll, MessanzahlGier,messanzahl_AccNick, messanzahl_AccRoll,messanzahl_AccHoch;
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az;
extern volatile long Luftdruck;
extern volatile char messanzahl_Druck;
extern volatile unsigned int ZaehlMessungen;
extern unsigned char DruckOffsetSetting;
extern volatile int HoeheD;
extern volatile unsigned int MessLuftdruck;
extern volatile int StartLuftdruck;
 
extern unsigned int ReadADC(unsigned char adc_input);
extern void ADC_Init(void);
extern void SucheLuftruckOffset(void);
 
 
#define ANALOG_OFF ADCSRA=0
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE)
/branches/v0.60_MicroMag3_Nick666/trunc/compass.c
0,0 → 1,221
/*
 
Copyright 2007, Niklas Nold
 
This program (files compass.c and compass.h) is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
 
Please note: All the other files for the project "Mikrokopter" by H. Buss are under the license (license_buss.txt) published by www.mikrokopter.de
*/
 
#include "main.h"
 
MM3_working_struct MM3;
 
MM3_calib_struct ee_calib EEMEM; // Reservierung im EEPROM
MM3_calib_struct MM3_calib;
 
 
//############################################################################
// Initialisierung
void MM3_init(void)
//############################################################################
{
SPCR = (1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0); //Interrupt an, Master, 156 kHz Oszillator
//SPSR = (1<<SPI2X);
DDRB |= (1<<PB7)|(1<<PB5)|(1<<PB2); // J8, MOSI, SCK Ausgang
PORTD &= ~(1<<PD3); // J5 auf Low
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
// Kalibrierung aus dem EEprom lesen
eeprom_read_block(&MM3_calib,&ee_calib,sizeof(MM3_calib_struct));
}
 
 
//############################################################################
// Wird in der SIGNAL (SIG_OVERFLOW0) aufgerufen
void MM3_timer0(void)
//############################################################################
{
switch (MM3.STATE)
{
case MM3_RESET:
PORTB |= (1<<PB2); // J8 auf High, MM3 Reset
MM3.STATE = MM3_START_TRANSFER;
return;
case MM3_START_TRANSFER:
PORTB &= ~(1<<PB2); // J8 auf Low (war ~125 µs auf High)
if (MM3.AXIS == MM3_X) SPDR = 0x31; // Schreiben ins SPDR löst automatisch Übertragung (MOSI und MISO) aus
else if (MM3.AXIS == MM3_Y) SPDR = 0x32; // Micromag Period Select ist auf 256 (0x30)
else if (MM3.AXIS == MM3_Z) SPDR = 0x33; // 1: x-Achse, 2: Y-Achse, 3: Z-Achse
MM3.DRDY = SetDelay(8); // Laut Datenblatt max. Zeit bis Messung fertig (bei PS 256 eigentlich 4 ms)
MM3.STATE = MM3_WAIT_DRDY;
return;
case MM3_WAIT_DRDY:
if (CheckDelay(MM3.DRDY)) {SPDR = 0x00;MM3.STATE = MM3_DRDY;} // Irgendwas ins SPDR, damit Übertragung ausgelöst wird, wenn Wartezeit vorbei
return; // Jetzt gehts weiter in SIGNAL (SIG_SPI)
/*
case MM3_TILT: // Zeitnahe Speicherung der aktuellen Neigung in °
MM3.NickGrad = IntegralNick/(EE_Parameter.UserParam1*8);
MM3.RollGrad = IntegralRoll/(EE_Parameter.UserParam2*8);
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
return;
*/
}
}
 
 
//############################################################################
// SPI byte ready
SIGNAL (SIG_SPI)
//############################################################################
{
switch (MM3.STATE)
{
case MM3_DRDY: // 1. Byte ist da, abspeichern, an die MSB-Stelle rücken
if (MM3.AXIS == MM3_X)
{
MM3.x_axis = SPDR;
MM3.x_axis <<= 8;
}
else if (MM3.AXIS == MM3_Y)
{
MM3.y_axis = SPDR;
MM3.y_axis <<= 8;
}
else // if (MM3.AXIS == MM3_Z)
{
MM3.z_axis = SPDR;
MM3.z_axis <<= 8;
}
SPDR=0x00; // Übertragung von 2. Byte auslösen
MM3.STATE=MM3_BYTE2;
return;
case MM3_BYTE2: // 2. Byte der entsprechenden Achse ist da
if (MM3.AXIS == MM3_X)
{
MM3.x_axis |= SPDR;
// Spikes filtern
if (abs(MM3.x_axis) < Max_Axis_Value) MM3.x_axis_old = MM3.x_axis;
else MM3.x_axis = MM3.x_axis_old;
MM3.AXIS = MM3_Y;
MM3.STATE = MM3_RESET;
}
else if (MM3.AXIS == MM3_Y)
{
MM3.y_axis |= SPDR;
if (abs(MM3.y_axis) < Max_Axis_Value) MM3.y_axis_old = MM3.y_axis;
else MM3.y_axis = MM3.y_axis_old;
MM3.AXIS = MM3_Z;
MM3.STATE = MM3_RESET;
}
else // if (MM3.AXIS == MM3_Z)
{
MM3.z_axis |= SPDR;
if (abs(MM3.z_axis) < Max_Axis_Value) MM3.z_axis_old = MM3.z_axis;
else MM3.z_axis = MM3.z_axis_old;
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
}
return;
}
}
 
//############################################################################
// Kompass kalibrieren
void calib_MM3(void)
//############################################################################
{
signed int x_min=0,x_max=0,y_min=0,y_max=0,z_min=0,z_max=0;
uint8_t measurement=50,beeper=0;
unsigned int timer;
while (measurement)
{
//H_earth = MM3.x_axis*MM3.x_axis + MM3.y_axis*MM3.y_axis + MM3.z_axis*MM3.z_axis;
if (MM3.x_axis > x_max) x_max = MM3.x_axis;
else if (MM3.x_axis < x_min) x_min = MM3.x_axis;
if (MM3.y_axis > y_max) y_max = MM3.y_axis;
else if (MM3.y_axis < y_min) y_min = MM3.y_axis;
if (MM3.z_axis > z_max) z_max = MM3.z_axis;
else if (MM3.z_axis < z_min) z_min = MM3.z_axis;
if (!beeper)
{
beeper = 50;
beeptime = 50;
}
beeper--;
// Schleife mit 100 Hz voll ausreichend
timer = SetDelay(10);
while(!CheckDelay(timer));
// Wenn Gas zurück genommen wird, Kalibrierung mit Verzögerung beenden
if (PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 100) measurement--;
}
// Offset der Achsen berechnen
MM3_calib.X_off = (x_max + x_min) / 2;
MM3_calib.Y_off = (y_max + y_min) / 2;
MM3_calib.Z_off = (z_max + z_min) / 2;
// und im EEProm abspeichern
eeprom_write_block(&MM3_calib,&ee_calib,sizeof(MM3_calib_struct));
}
 
 
//############################################################################
// Neigungskompensierung und Berechnung der Ausrichtung
signed int MM3_heading(void)
//############################################################################
{
float sin_nick, cos_nick, sin_roll, cos_roll;
signed int x_corr, y_corr, heading;
signed int x_axis,y_axis,z_axis;
MM3.NickGrad = -(IntegralNick/(EE_Parameter.UserParam1*8));
MM3.RollGrad = -(IntegralRoll/(EE_Parameter.UserParam2*8));
// Berechung von sinus und cosinus
sin_nick = sin_f(MM3.NickGrad);
cos_nick = cos_f(MM3.NickGrad);
sin_roll = sin_f(MM3.RollGrad);
cos_roll = cos_f(MM3.RollGrad);
 
// Offset der Achsen nur bei Bedarf (also hier) berücksichtigen
x_axis = (MM3.x_axis - MM3_calib.X_off);
y_axis = (MM3.y_axis - MM3_calib.Y_off);
z_axis = (MM3.z_axis - MM3_calib.Z_off);
// Neigungskompensation
x_corr = (cos_nick * x_axis) + (((sin_roll * y_axis) - (cos_roll * z_axis)) * sin_nick);
y_corr = ((cos_roll * y_axis) + (sin_roll * z_axis));
// Winkelberechnung
heading = atan2_i(x_corr, y_corr);
 
return (heading);
}
/branches/v0.60_MicroMag3_Nick666/trunc/compass.d
0,0 → 1,2
compass.o compass.d : compass.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/compass.h
0,0 → 1,45
 
 
typedef struct
{
uint8_t STATE;
unsigned int DRDY;
uint8_t AXIS;
signed int x_axis;
signed int x_axis_old;
signed int y_axis;
signed int y_axis_old;
signed int z_axis;
signed int z_axis_old;
signed int NickGrad;
signed int RollGrad;
}MM3_working_struct;
 
 
typedef struct
{
int8_t X_off;
int8_t Y_off;
int8_t Z_off;
}MM3_calib_struct;
 
extern MM3_working_struct MM3;
extern MM3_calib_struct MM3_calib;
 
void MM3_init(void);
void MM3_timer0(void);
void calib_MM3(void);
signed int MM3_heading(void);
 
#define Max_Axis_Value 500
 
// Die Werte der Statemachine
#define MM3_RESET 0
#define MM3_START_TRANSFER 1
#define MM3_WAIT_DRDY 2
#define MM3_DRDY 4
#define MM3_BYTE2 8
#define MM3_X 16
#define MM3_Y 32
#define MM3_Z 64
#define MM3_TILT 128
/branches/v0.60_MicroMag3_Nick666/trunc/eeprom.c
--- trunc/fc.c (nonexistent)
+++ trunc/fc.c (revision 366)
@@ -0,0 +1,826 @@
+/*#######################################################################################
+Flight Control
+#######################################################################################*/
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Copyright (c) 04.2007 Holger Buss
+// + Nur für den privaten Gebrauch
+// + www.MikroKopter.com
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
+// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
+// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
+// + bzgl. der Nutzungsbedingungen aufzunehmen.
+// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
+// + Verkauf von Luftbildaufnahmen, usw.
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
+// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
+// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
+// + eindeutig als Ursprung verlinkt werden
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
+// + Benutzung auf eigene Gefahr
+// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
+// + mit unserer Zustimmung zulässig
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
+// + this list of conditions and the following disclaimer.
+// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
+// + from this software without specific prior written permission.
+// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
+// + for non-commercial use (directly or indirectly)
+// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
+// + with our written permission
+// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
+// + clearly linked as origin
+// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
+// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// + POSSIBILITY OF SUCH DAMAGE.
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+#include "main.h"
+
+unsigned char h,m,s;
+volatile unsigned char Timeout = 0;
+volatile int MesswertNick,MesswertRoll,MesswertGier;
+volatile int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0;
+volatile int Mittelwert_AccNick, Mittelwert_AccRoll,Mittelwert_AccHoch;
+unsigned char CosinusNickWinkel = 0, CosinusRollWinkel = 0;
+volatile long IntegralNick = 0,IntegralNick2 = 0;
+volatile long IntegralRoll = 0,IntegralRoll2 = 0;
+volatile long Integral_Gier = 0;
+volatile long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0;
+volatile long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0;
+volatile long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
+volatile long Mess_Integral_Hoch = 0;
+volatile int KompassValue = 0;
+volatile int KompassStartwert = 0;
+volatile int KompassRichtung = 0;
+unsigned char MAX_GAS,MIN_GAS;
+unsigned char Notlandung = 0;
+unsigned char HoehenReglerAktiv = 0;
+
+float GyroFaktor;
+float IntegralFaktor;
+
+volatile int DiffNick,DiffRoll;
+int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0;
+volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count;
+unsigned char MotorWert[5];
+volatile unsigned char SenderOkay = 0;
+int StickNick = 0,StickRoll = 0,StickGier = 0;
+char MotorenEin = 0;
+int HoehenWert = 0;
+int SollHoehe = 0;
+
+float Kp = FAKTOR_P;
+float Ki = FAKTOR_I;
+
+unsigned char Parameter_Luftdruck_D = 48; // Wert : 0-250
+unsigned char Parameter_MaxHoehe = 251; // Wert : 0-250
+unsigned char Parameter_Hoehe_P = 16; // Wert : 0-32
+unsigned char Parameter_Hoehe_ACC_Wirkung = 58; // Wert : 0-250
+unsigned char Parameter_KompassWirkung = 64; // Wert : 0-250
+unsigned char Parameter_Gyro_P = 50; // Wert : 10-250
+unsigned char Parameter_Gyro_I = 150; // Wert : 0-250
+unsigned char Parameter_Gier_P = 2; // Wert : 1-20
+unsigned char Parameter_I_Faktor = 10; // Wert : 1-20
+unsigned char Parameter_UserParam1 = 0;
+unsigned char Parameter_UserParam2 = 0;
+unsigned char Parameter_UserParam3 = 0;
+unsigned char Parameter_UserParam4 = 0;
+unsigned char Parameter_ServoNickControl = 100;
+struct mk_param_struct EE_Parameter;
+
+acc_neutral_struct ee_acc_neutral EEMEM; // Reservierung im EEPROM
+acc_neutral_struct acc_neutral;
+
+void Piep(unsigned char Anzahl)
+{
+ while(Anzahl--)
+ {
+ if(MotorenEin) return; //auf keinen Fall im Flug!
+ beeptime = 100;
+ Delay_ms(250);
+ }
+}
+
+
+//############################################################################
+// Neutrallage kalibrieren und fest im EEPROM abspeichern
+void Neutral_calib(void)
+//############################################################################
+{
+unsigned int timer;
+
+ CalibrierMittelwert();
+ timer = SetDelay(5);
+ while (!CheckDelay(timer));
+ CalibrierMittelwert();
+
+
+ acc_neutral.X = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
+ acc_neutral.Y = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
+ acc_neutral.Z = Aktuell_az;
+
+ eeprom_write_block(&acc_neutral,&ee_acc_neutral,sizeof(acc_neutral_struct));
+}
+
+//############################################################################
+// Nullwerte ermitteln
+void SetNeutral(void)
+//############################################################################
+{
+ unsigned int timer;
+ acc_neutral.X = 0;
+ acc_neutral.Y = 0;
+ acc_neutral.Z = 0;
+ AdNeutralNick = 0;
+ AdNeutralRoll = 0;
+ AdNeutralGier = 0;
+ CalibrierMittelwert();
+ timer = SetDelay(5);
+ while (!CheckDelay(timer));
+ CalibrierMittelwert();
+ if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
+ {
+ if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
+ }
+ AdNeutralNick= abs(MesswertNick);
+ AdNeutralRoll= abs(MesswertRoll);
+ AdNeutralGier= abs(MesswertGier);
+
+ eeprom_read_block(&acc_neutral,&ee_acc_neutral,sizeof(acc_neutral_struct));
+ //NeutralAccY = acc_neutral.Y;
+ //NeutralAccX = acc_neutral.X;
+ //NeutralAccZ = acc_neutral.Z;
+
+ Mess_IntegralNick = 0;
+ Mess_IntegralNick2 = 0;
+ Mess_IntegralRoll = 0;
+ Mess_IntegralRoll2 = 0;
+ Mess_Integral_Gier = 0;
+ MesswertNick = 0;
+ MesswertRoll = 0;
+ MesswertGier = 0;
+ StartLuftdruck = Luftdruck;
+ HoeheD = 0;
+ Mess_Integral_Hoch = 0;
+ KompassStartwert = KompassValue;
+ GPS_Neutral();
+ beeptime = 50;
+}
+
+//############################################################################
+// Bildet den Mittelwert aus den Messwerten
+void Mittelwert(void)
+//############################################################################
+{
+ // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
+ ANALOG_OFF;
+ if(MessanzahlNick) (MesswertNick = AccumulateNick / MessanzahlNick);
+ if(MessanzahlRoll) (MesswertRoll = AccumulateRoll / MessanzahlRoll);
+ if(MessanzahlGier) (MesswertGier = AccumulateGier / MessanzahlGier);
+ if(messanzahl_AccNick) Mittelwert_AccNick = ((long)Mittelwert_AccNick * 7 + ((ACC_AMPLIFY * (long)accumulate_AccNick) / messanzahl_AccNick)) / 8L;
+ if(messanzahl_AccRoll) Mittelwert_AccRoll = ((long)Mittelwert_AccRoll * 7 + ((ACC_AMPLIFY * (long)accumulate_AccRoll) / messanzahl_AccRoll)) / 8L;
+ if(messanzahl_AccHoch) Mittelwert_AccHoch = ((long)Mittelwert_AccHoch * 7 + ((long)accumulate_AccHoch) / messanzahl_AccHoch) / 8L;
+ AccumulateNick = 0; MessanzahlNick = 0;
+ AccumulateRoll = 0; MessanzahlRoll = 0;
+ AccumulateGier = 0; MessanzahlGier = 0;
+ accumulate_AccRoll = 0;messanzahl_AccRoll = 0;
+ accumulate_AccNick = 0;messanzahl_AccNick = 0;
+ accumulate_AccHoch = 0;messanzahl_AccHoch = 0;
+ Integral_Gier = Mess_Integral_Gier;
+// Integral_Gier2 = Mess_Integral_Gier2;
+ IntegralNick = Mess_IntegralNick;
+ IntegralRoll = Mess_IntegralRoll;
+ IntegralNick2 = Mess_IntegralNick2;
+ IntegralRoll2 = Mess_IntegralRoll2;
+ // ADC einschalten
+ ANALOG_ON;
+
+//------------------------------------------------------------------------------
+ if(MesswertNick > 200) MesswertNick += 4 * (MesswertNick - 200);
+ else
+ if(MesswertNick < -200) MesswertNick += 4 * (MesswertNick + 200);
+
+ if(MesswertRoll > 200) MesswertRoll += 4 * (MesswertRoll - 200);
+ else
+ if(MesswertRoll < -200) MesswertRoll += 4 * (MesswertRoll + 200);
+//------------------------------------------------------------------------------
+ if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
+ if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
+ if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
+ if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
+ if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
+ if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
+ if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
+ if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
+}
+
+//############################################################################
+// Messwerte beim Ermitteln der Nullage
+void CalibrierMittelwert(void)
+//############################################################################
+{
+ // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
+ ANALOG_OFF;
+ if(MessanzahlNick) (MesswertNick = AccumulateNick / MessanzahlNick);
+ if(MessanzahlRoll) (MesswertRoll = AccumulateRoll / MessanzahlRoll);
+ if(MessanzahlGier) (MesswertGier = AccumulateGier / MessanzahlGier);
+ if(messanzahl_AccNick) Mittelwert_AccNick = ((ACC_AMPLIFY * (long)accumulate_AccNick) / messanzahl_AccNick);
+ if(messanzahl_AccRoll) Mittelwert_AccRoll = (ACC_AMPLIFY * (long)accumulate_AccRoll) / messanzahl_AccRoll;
+ if(messanzahl_AccHoch) Mittelwert_AccHoch = ((long)accumulate_AccHoch) / messanzahl_AccHoch;
+ AccumulateNick = 0; MessanzahlNick = 0;
+ AccumulateRoll = 0; MessanzahlRoll = 0;
+ AccumulateGier = 0; MessanzahlGier = 0;
+ accumulate_AccRoll = 0;messanzahl_AccRoll = 0;
+ accumulate_AccNick = 0;messanzahl_AccNick = 0;
+ accumulate_AccHoch = 0;messanzahl_AccHoch = 0;
+ // ADC einschalten
+ ANALOG_ON;
+ if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
+ if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
+ if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
+ if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
+ if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
+ if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
+ if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
+ if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
+}
+
+//############################################################################
+// Senden der Motorwerte per I2C-Bus
+void SendMotorData(void)
+//############################################################################
+{
+ if(MOTOR_OFF || !MotorenEin)
+ {
+ Motor_Hinten = 0;
+ Motor_Vorne = 0;
+ Motor_Rechts = 0;
+ Motor_Links = 0;
+ if(MotorTest[0]) Motor_Vorne = MotorTest[0];
+ if(MotorTest[1]) Motor_Hinten = MotorTest[1];
+ if(MotorTest[2]) Motor_Links = MotorTest[2];
+ if(MotorTest[3]) Motor_Rechts = MotorTest[3];
+ }
+
+ DebugOut.Analog[12] = Motor_Vorne;
+ DebugOut.Analog[13] = Motor_Hinten;
+ DebugOut.Analog[14] = Motor_Links;
+ DebugOut.Analog[15] = Motor_Rechts;
+
+ //Start I2C Interrupt Mode
+ twi_state = 0;
+ motor = 0;
+ i2c_start();
+}
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Konstanten
+// + 0-250 -> normale Werte
+// + 251 -> Poti1
+// + 252 -> Poti2
+// + 253 -> Poti3
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+void DefaultKonstanten1(void)
+{
+ EE_Parameter.Kanalbelegung[K_NICK] = 1;
+ EE_Parameter.Kanalbelegung[K_ROLL] = 2;
+ EE_Parameter.Kanalbelegung[K_GAS] = 3;
+ EE_Parameter.Kanalbelegung[K_GIER] = 4;
+ EE_Parameter.Kanalbelegung[K_POTI1] = 5;
+ EE_Parameter.Kanalbelegung[K_POTI2] = 6;
+ EE_Parameter.Kanalbelegung[K_POTI3] = 7;
+ EE_Parameter.Kanalbelegung[K_POTI4] = 8;
+ EE_Parameter.GlobalConfig = 0;//CFG_HOEHENREGELUNG | /*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV | CFG_KOMPASS_FIX;//0x01;
+ EE_Parameter.Hoehe_MinGas = 30;
+ EE_Parameter.MaxHoehe = 251; // Wert : 0-32 251 -> Poti1
+ EE_Parameter.Hoehe_P = 10; // Wert : 0-32
+ EE_Parameter.Luftdruck_D = 70; // Wert : 0-250
+ EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-250
+ EE_Parameter.Hoehe_Verstaerkung = 2; // Wert : 0-50
+ EE_Parameter.Stick_P = 4; //2 // Wert : 1-6
+ EE_Parameter.Stick_D = 8; //8 // Wert : 0-64
+ EE_Parameter.Gier_P = 16; // Wert : 1-20
+ EE_Parameter.Gas_Min = 15; // Wert : 0-32
+ EE_Parameter.Gas_Max = 250; // Wert : 33-250
+ EE_Parameter.GyroAccFaktor = 26; // Wert : 1-64
+ EE_Parameter.KompassWirkung = 16; // Wert : 0-250
+ EE_Parameter.Gyro_P = 120; //80 // Wert : 0-250
+ EE_Parameter.Gyro_I = 150; // Wert : 0-250
+ EE_Parameter.UnterspannungsWarnung = 90; // Wert : 0-250
+ EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
+ EE_Parameter.NotGasZeit = 20; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
+ EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
+ EE_Parameter.I_Faktor = 5;
+ EE_Parameter.UserParam1 = 120; //zur freien Verwendung
+ EE_Parameter.UserParam2 = 120; //zur freien Verwendung
+ EE_Parameter.UserParam3 = 0; //zur freien Verwendung
+ EE_Parameter.UserParam4 = 0; //zur freien Verwendung
+ EE_Parameter.ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos
+ EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
+ EE_Parameter.ServoNickCompInvert = 0; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
+ EE_Parameter.ServoNickMin = 50; // Wert : 0-250 // Anschlag
+ EE_Parameter.ServoNickMax = 150; // Wert : 0-250 // Anschlag
+ EE_Parameter.ServoNickRefresh = 5;
+ memcpy(EE_Parameter.Name, "Normal\0", 12);
+}
+
+void DefaultKonstanten2(void)
+{
+ EE_Parameter.Kanalbelegung[K_NICK] = 1;
+ EE_Parameter.Kanalbelegung[K_ROLL] = 2;
+ EE_Parameter.Kanalbelegung[K_GAS] = 3;
+ EE_Parameter.Kanalbelegung[K_GIER] = 4;
+ EE_Parameter.Kanalbelegung[K_POTI1] = 5;
+ EE_Parameter.Kanalbelegung[K_POTI2] = 6;
+ EE_Parameter.Kanalbelegung[K_POTI3] = 7;
+ EE_Parameter.GlobalConfig = 0;//CFG_HOEHENREGELUNG | /*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV;//0x01;
+ EE_Parameter.Hoehe_MinGas = 30;
+ EE_Parameter.MaxHoehe = 251; // Wert : 0-32 251 -> Poti1
+ EE_Parameter.Hoehe_P = 10; // Wert : 0-32
+ EE_Parameter.Luftdruck_D = 50; // Wert : 0-250
+ EE_Parameter.Hoehe_ACC_Wirkung = 50; // Wert : 0-250
+ EE_Parameter.Hoehe_Verstaerkung = 2; // Wert : 0-50
+ EE_Parameter.Stick_P = 4; //2 // Wert : 1-6
+ EE_Parameter.Stick_D = 0; //8 // Wert : 0-64
+ EE_Parameter.Gier_P = 16; // Wert : 1-20
+ EE_Parameter.Gas_Min = 15; // Wert : 0-32
+ EE_Parameter.Gas_Max = 250; // Wert : 33-250
+ EE_Parameter.GyroAccFaktor = 26; // Wert : 1-64
+ EE_Parameter.KompassWirkung = 16; // Wert : 0-250
+ EE_Parameter.Gyro_P = 175; //80 // Wert : 0-250
+ EE_Parameter.Gyro_I = 175; // Wert : 0-250
+ EE_Parameter.UnterspannungsWarnung = 90; // Wert : 0-250
+ EE_Parameter.NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
+ EE_Parameter.NotGasZeit = 20; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
+ EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
+ EE_Parameter.I_Faktor = 5;
+ EE_Parameter.UserParam1 = 120; //zur freien Verwendung
+ EE_Parameter.UserParam2 = 120; //zur freien Verwendung
+ EE_Parameter.UserParam3 = 0; //zur freien Verwendung
+ EE_Parameter.UserParam4 = 0; //zur freien Verwendung
+ EE_Parameter.UserParam3 = 0; //zur freien Verwendung
+ EE_Parameter.UserParam4 = 0; //zur freien Verwendung
+ EE_Parameter.ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos
+ EE_Parameter.ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
+ EE_Parameter.ServoNickCompInvert = 0; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
+ EE_Parameter.ServoNickMin = 50; // Wert : 0-250 // Anschlag
+ EE_Parameter.ServoNickMax = 150; // Wert : 0-250 // Anschlag
+ EE_Parameter.ServoNickRefresh = 5;
+ memcpy(EE_Parameter.Name, "Kamera\0", 12);
+}
+
+
+//############################################################################
+// Trägt ggf. das Poti als Parameter ein
+void ParameterZuordnung(void)
+//############################################################################
+{
+
+ #define CHK_POTI(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;}
+ CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe,0,255);
+ CHK_POTI(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100);
+ CHK_POTI(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100);
+ CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung,0,255);
+ CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung,0,255);
+ CHK_POTI(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
+ CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I,0,255);
+ CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor,0,255);
+ CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1,0,255);
+ CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2,0,255);
+ CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3,0,255);
+ CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4,0,255);
+
+ CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
+ CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
+ CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255);
+
+ Ki = (float) Parameter_I_Faktor * 0.0001;
+ MAX_GAS = EE_Parameter.Gas_Max;
+ MIN_GAS = EE_Parameter.Gas_Min;
+}
+
+
+//############################################################################
+//
+void MotorRegler(void)
+//############################################################################
+{
+ int motorwert,pd_ergebnis,h,tmp_int;
+ int GierMischanteil,GasMischanteil;
+ static long SummeNick=0,SummeRoll=0;
+ static long sollGier = 0,tmp_long,tmp_long2;
+ static int IntegralFehlerNick = 0;
+ static int IntegralFehlerRoll = 0;
+ static unsigned int RcLostTimer;
+ static unsigned char delay_neutral = 0;
+ static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
+ static unsigned int modell_fliegt = 0;
+ static int hoehenregler = 0;
+ static char TimerWerteausgabe = 0;
+ static char NeueKompassRichtungMerken = 0;
+ Mittelwert();
+
+ GRN_ON;
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Gaswert ermitteln
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ GasMischanteil = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
+ if(GasMischanteil < 0) GasMischanteil = 0;
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Emfang schlecht
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(SenderOkay < 100)
+ {
+ if(!PcZugriff) beeptime = 500;
+ if(RcLostTimer) RcLostTimer--;
+ else
+ {
+ MotorenEin = 0;
+ Notlandung = 0;
+ }
+ ROT_ON;
+ if(modell_fliegt > 2000) // wahrscheinlich in der Luft --> langsam absenken
+ {
+ GasMischanteil = EE_Parameter.NotGas;
+ Notlandung = 1;
+ PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
+ PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
+ PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
+/* Poti1 = 65;
+ Poti2 = 48;
+ Poti3 = 0;
+*/ }
+ else MotorenEin = 0;
+ }
+ else
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Emfang gut
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(SenderOkay > 140)
+ {
+ Notlandung = 0;
+ RcLostTimer = EE_Parameter.NotGasZeit * 50;
+ if(GasMischanteil > 40)
+ {
+ if(modell_fliegt < 0xffff) modell_fliegt++;
+ }
+ if((modell_fliegt < 200) || (GasMischanteil < 40))
+ {
+ SummeNick = 0;
+ SummeRoll = 0;
+ Mess_Integral_Gier = 0;
+ Mess_Integral_Gier2 = 0;
+ }
+ if((GasMischanteil > 200) && MotorenEin == 0)
+ {
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// auf Nullwerte kalibrieren
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte
+ {
+ unsigned char setting;
+ if(++delay_neutral > 200) // nicht sofort
+ {
+ GRN_OFF;
+ SetNeutral();
+ MotorenEin = 0;
+ delay_neutral = 0;
+ modell_fliegt = 0;
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
+ {
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1;
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5;
+ eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], setting); // aktiven Datensatz merken
+ }
+ ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
+ Piep(GetActiveParamSetNumber());
+ if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
+ {
+ if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
+ }
+ }
+ }
+ else delay_neutral = 0;
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Gas ist unten
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(GasMischanteil < 35)
+ {
+ // Starten
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75)
+ {
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Einschalten
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(++delay_einschalten > 200)
+ {
+ delay_einschalten = 200;
+ modell_fliegt = 1;
+ MotorenEin = 1;
+ sollGier = 0;
+ Mess_Integral_Gier = 0;
+ Mess_Integral_Gier2 = 0;
+ Mess_IntegralNick = 0;
+ Mess_IntegralRoll = 0;
+ Mess_IntegralNick2 = IntegralNick;
+ Mess_IntegralRoll2 = IntegralRoll;
+ SummeNick = 0;
+ SummeRoll = 0;
+ }
+ }
+ else delay_einschalten = 0;
+ //Auf Neutralwerte setzen
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Auschalten
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75)
+ {
+ if(++delay_ausschalten > 200) // nicht sofort
+ {
+ MotorenEin = 0;
+ delay_ausschalten = 200;
+ modell_fliegt = 0;
+ }
+ }
+ else delay_ausschalten = 0;
+ }
+ }
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// neue Werte von der Funke
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(!NewPpmData-- || Notlandung)
+ {
+ ParameterZuordnung();
+ StickNick = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P;
+ StickNick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
+ StickRoll = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P;
+ StickRoll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
+ StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
+
+ GyroFaktor = ((float)Parameter_Gyro_P + 10.0) / 256.0;
+ IntegralFaktor = ((float) Parameter_Gyro_I) / 44000;
+
+ if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
+ if(GyroFaktor < 0) GyroFaktor = 0;
+ if(IntegralFaktor < 0) IntegralFaktor = 0;
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Bei Empfangsausfall im Flug
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(Notlandung)
+ {
+ StickGier = 0;
+ StickNick = 0;
+ StickRoll = 0;
+ GyroFaktor = 0.1;
+ IntegralFaktor = 0.005;
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Gyro-Drift kompensieren
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#define DRIFT_FAKTOR 3
+ if(ZaehlMessungen >= 1000 / DRIFT_FAKTOR)
+ {
+ IntegralFehlerNick = IntegralNick2 - IntegralNick;
+ IntegralFehlerRoll = IntegralRoll2 - IntegralRoll;
+ ZaehlMessungen = 0;
+ if(IntegralFehlerNick > 500/DRIFT_FAKTOR) AdNeutralNick++;
+ if(IntegralFehlerNick < -500/DRIFT_FAKTOR) AdNeutralNick--;
+ if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++;
+ if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--;
+ //if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--;
+ //if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++;
+ ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
+ Mess_IntegralNick2 = IntegralNick;
+ Mess_IntegralRoll2 = IntegralRoll;
+ Mess_Integral_Gier2 = Integral_Gier;
+ ANALOG_ON; // ADC einschalten
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Integrale auf ACC-Signal abgleichen
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick) / 16;
+ tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll) / 16;
+#define AUSGLEICH 500
+ if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH;
+ if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH;
+ if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH;
+ if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH;
+ ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
+ Mess_IntegralNick -= tmp_long;
+ Mess_IntegralRoll -= tmp_long2;
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Gieren
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ sollGier = StickGier;
+ if(abs(StickGier) > 35)
+ {
+ if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) NeueKompassRichtungMerken = 1;
+ }
+ tmp_int = EE_Parameter.Gier_P * (sollGier * abs(sollGier)) / 256; // expo
+ Mess_Integral_Gier -= tmp_int;
+ if(Mess_Integral_Gier > 30000) Mess_Integral_Gier = 30000; // begrenzen
+ if(Mess_Integral_Gier <-30000) Mess_Integral_Gier =-30000;
+
+ ANALOG_ON; // ADC einschalten
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Kompass
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
+ {
+ if(NeueKompassRichtungMerken)
+ {
+ KompassStartwert = KompassValue;
+ NeueKompassRichtungMerken = 0;
+ }
+ ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
+ Mess_Integral_Gier -= (KompassRichtung * Parameter_KompassWirkung) / 32; // nach Kompass ausrichten
+ ANALOG_ON; // ADC einschalten
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Debugwerte zuordnen
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+DebugOut.Sekunden++;
+ if(!TimerWerteausgabe--)
+ {
+ TimerWerteausgabe = 49;
+// DebugOut.Analog[0] = MesswertNick;
+// DebugOut.Analog[1] = MesswertRoll;
+// DebugOut.Analog[2] = MesswertGier;
+// DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
+// DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
+
+ DebugOut.Analog[0] = MM3.NickGrad;
+ DebugOut.Analog[1] = MM3.RollGrad;
+ DebugOut.Analog[2] = Mittelwert_AccNick;
+ DebugOut.Analog[3] = Mittelwert_AccRoll;
+ DebugOut.Analog[4] = MesswertGier;
+ DebugOut.Analog[5] = HoehenWert;
+ DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
+ DebugOut.Analog[7] = GasMischanteil;
+ DebugOut.Analog[8] = KompassValue;
+
+//DebugOut.Analog[8] = MM3_heading();
+DebugOut.Analog[9] = MM3.x_axis;
+DebugOut.Analog[10] = MM3.y_axis;
+DebugOut.Analog[11] = MM3.z_axis;
+
+// DebugOut.Analog[9] = SollHoehe;
+// DebugOut.Analog[10] = Mess_Integral_Gier / 128;
+// DebugOut.Analog[11] = KompassStartwert;
+// DebugOut.Analog[10] = Parameter_Gyro_I;
+// DebugOut.Analog[10] = EE_Parameter.Gyro_I;
+// DebugOut.Analog[9] = KompassRichtung;
+// DebugOut.Analog[10] = GasMischanteil;
+// DebugOut.Analog[3] = HoeheD * 32;
+// DebugOut.Analog[4] = hoehenregler;
+ }
+
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
+ MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
+ MesswertGier = MesswertGier * (GyroFaktor/2) + Integral_Gier * IntegralFaktor;
+ // Maximalwerte abfangen
+ #define MAX_SENSOR 2048
+ if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
+ if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR;
+ if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR;
+ if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR;
+ if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR;
+ if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR;
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Höhenregelung
+// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//OCR0B = 180 - (Poti1 + 120) / 4;
+//DruckOffsetSetting = OCR0B;
+ if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung
+ {
+ int tmp_int;
+ if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
+ {
+ if(Parameter_MaxHoehe < 50)
+ {
+ SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters
+ HoehenReglerAktiv = 0;
+ }
+ else
+ HoehenReglerAktiv = 1;
+ }
+ else
+ {
+ SollHoehe = Parameter_MaxHoehe * EE_Parameter.Hoehe_Verstaerkung - 20;
+ HoehenReglerAktiv = 1;
+ }
+
+ if(Notlandung) SollHoehe = 0;
+ h = HoehenWert;
+ if((h > SollHoehe) && HoehenReglerAktiv) // zu hoch --> drosseln
+ { h = ((h - SollHoehe) * (int) Parameter_Hoehe_P) / 16; // Differenz bestimmen --> P-Anteil
+ h = GasMischanteil - h; // vom Gas abziehen
+ h -= (HoeheD * Parameter_Luftdruck_D)/8; // D-Anteil
+ tmp_int = ((Mess_Integral_Hoch / 512) * (signed long) Parameter_Hoehe_ACC_Wirkung) / 32;
+ if(tmp_int > 50) tmp_int = 50;
+ else if(tmp_int < -50) tmp_int = -50;
+ h -= tmp_int;
+ hoehenregler = (hoehenregler*15 + h) / 16;
+ if(hoehenregler < EE_Parameter.Hoehe_MinGas) // nicht unter MIN
+ {
+ if(GasMischanteil >= EE_Parameter.Hoehe_MinGas) hoehenregler = EE_Parameter.Hoehe_MinGas;
+ if(GasMischanteil < EE_Parameter.Hoehe_MinGas) hoehenregler = GasMischanteil;
+ }
+ if(hoehenregler > GasMischanteil) hoehenregler = GasMischanteil; // nicht mehr als Gas
+ GasMischanteil = hoehenregler;
+ }
+ }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Mischer und PI-Regler
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Gier-Anteil
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ GierMischanteil = MesswertGier - sollGier; // Regler für Gier
+ if(GierMischanteil > 100) GierMischanteil = 100;
+ if(GierMischanteil < -100) GierMischanteil = -100;
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Nick-Achse
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ DiffNick = Kp * (MesswertNick - (StickNick - GPS_Nick)); // Differenz bestimmen
+ SummeNick += DiffNick; // I-Anteil
+ if(SummeNick > 0) SummeNick-= (abs(SummeNick)/256 + 1); else SummeNick += abs(SummeNick)/256 + 1;
+ if(SummeNick > 16000) SummeNick = 16000;
+ if(SummeNick < -16000) SummeNick = -16000;
+ pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick
+ // Motor Vorn
+ motorwert = GasMischanteil + pd_ergebnis + GierMischanteil; // Mischer
+ if ((motorwert < 0) | (GasMischanteil < 10)) motorwert = 0;
+ else if(motorwert > MAX_GAS) motorwert = MAX_GAS;
+ if (motorwert < MIN_GAS) motorwert = MIN_GAS;
+ Motor_Vorne = motorwert;
+ // Motor Heck
+ motorwert = GasMischanteil - pd_ergebnis + GierMischanteil;
+ if ((motorwert < 0) | (GasMischanteil < 10)) motorwert = 0;
+ else if(motorwert > MAX_GAS) motorwert = MAX_GAS;
+ if (motorwert < MIN_GAS) motorwert = MIN_GAS;
+ Motor_Hinten = motorwert;
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Roll-Achse
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ DiffRoll = Kp * (MesswertRoll - (StickRoll - GPS_Roll)); // Differenz bestimmen
+ SummeRoll += DiffRoll; // I-Anteil
+ if(SummeRoll > 0) SummeRoll-= (abs(SummeRoll)/256 + 1); else SummeRoll += abs(SummeRoll)/256 + 1;
+ if(SummeRoll > 16000) SummeRoll = 16000;
+ if(SummeRoll < -16000) SummeRoll = -16000;
+ pd_ergebnis = DiffRoll + Ki * SummeRoll; // PI-Regler für Roll
+ // Motor Links
+ motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
+ if ((motorwert < 0) | (GasMischanteil < 10)) motorwert = 0;
+ else if(motorwert > MAX_GAS) motorwert = MAX_GAS;
+ if (motorwert < MIN_GAS) motorwert = MIN_GAS;
+ Motor_Links = motorwert;
+ // Motor Rechts
+ motorwert = GasMischanteil - pd_ergebnis - GierMischanteil;
+ if ((motorwert < 0) | (GasMischanteil < 10)) motorwert = 0;
+ else if(motorwert > MAX_GAS) motorwert = MAX_GAS;
+ if (motorwert < MIN_GAS) motorwert = MIN_GAS;
+ Motor_Rechts = motorwert;
+ // +++++++++++++++++++++++++++++++++++++++++++++++
+
+}
+
/branches/v0.60_MicroMag3_Nick666/trunc/fc.d
0,0 → 1,2
fc.o fc.d : fc.c main.h old_macros.h _settings.h printf_P.h compass.h timer0.h \
uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/fc.h
0,0 → 1,117
/*#######################################################################################
Flight Control
#######################################################################################*/
 
#ifndef _FC_H
#define _FC_H
 
extern volatile unsigned char Timeout;
extern unsigned char Sekunde,Minute;
extern volatile long IntegralNick,IntegralNick2;
extern volatile long IntegralRoll,IntegralRoll2;
extern volatile long Mess_IntegralNick,Mess_IntegralNick2;
extern volatile long Mess_IntegralRoll,Mess_IntegralRoll2;
extern volatile long Mess_Integral_Hoch;
extern volatile long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2;
extern volatile int KompassValue;
extern volatile int KompassStartwert;
extern volatile int KompassRichtung;
extern int HoehenWert;
extern int SollHoehe;
extern volatile int MesswertNick,MesswertRoll,MesswertGier;
extern volatile int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll;
extern volatile int NeutralAccX, NeutralAccY,Mittelwert_AccHoch;
extern volatile float NeutralAccZ;
 
 
void MotorRegler(void);
void SendMotorData(void);
void CalibrierMittelwert(void);
void Mittelwert(void);
void SetNeutral(void);
void Piep(unsigned char Anzahl);
void DefaultKonstanten1(void);
void DefaultKonstanten2(void);
 
unsigned char h,m,s;
volatile unsigned char Timeout ;
unsigned char CosinusNickWinkel, CosinusRollWinkel;
volatile long IntegralNick,IntegralNick2;
volatile long IntegralRoll,IntegralRoll2;
volatile long Integral_Gier;
volatile long Mess_IntegralNick,Mess_IntegralNick2;
volatile long Mess_IntegralRoll,Mess_IntegralRoll2;
volatile long Mess_Integral_Gier;
volatile int DiffNick,DiffRoll;
extern int Poti1, Poti2, Poti3, Poti4;
volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count;
unsigned char MotorWert[5];
volatile unsigned char SenderOkay;
int StickNick,StickRoll,StickGier;
char MotorenEin;
extern void DefaultKonstanten(void);
 
#define STRUCT_PARAM_LAENGE 58
struct mk_param_struct
{
unsigned char Kanalbelegung[8]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
unsigned char Hoehe_MinGas; // Wert : 0-100
unsigned char Luftdruck_D; // Wert : 0-250
unsigned char MaxHoehe; // Wert : 0-32
unsigned char Hoehe_P; // Wert : 0-32
unsigned char Hoehe_Verstaerkung; // Wert : 0-50
unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
unsigned char Stick_P; // Wert : 1-6
unsigned char Stick_D; // Wert : 0-64
unsigned char Gier_P; // Wert : 1-20
unsigned char Gas_Min; // Wert : 0-32
unsigned char Gas_Max; // Wert : 33-250
unsigned char GyroAccFaktor; // Wert : 1-64
unsigned char KompassWirkung; // Wert : 0-32
unsigned char Gyro_P; // Wert : 10-250
unsigned char Gyro_I; // Wert : 0-250
unsigned char UnterspannungsWarnung; // Wert : 0-250
unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
unsigned char UfoAusrichtung; // X oder + Formation
unsigned char I_Faktor; // Wert : 0-250
unsigned char UserParam1; // Wert : 0-250
unsigned char UserParam2; // Wert : 0-250
unsigned char UserParam3; // Wert : 0-250
unsigned char UserParam4; // Wert : 0-250
unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
unsigned char ServoNickRefresh; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
unsigned char ServoNickCompInvert; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
unsigned char Reserved[7];
char Name[12];
};
 
typedef struct
{
int X;
int Y;
float Z;
}acc_neutral_struct;
 
extern acc_neutral_struct acc_neutral;
extern void Neutral_calib(void);
 
 
extern struct mk_param_struct EE_Parameter;
 
extern unsigned char Parameter_Luftdruck_D;
extern unsigned char Parameter_MaxHoehe;
extern unsigned char Parameter_Hoehe_P;
extern unsigned char Parameter_Hoehe_ACC_Wirkung;
extern unsigned char Parameter_KompassWirkung;
extern unsigned char Parameter_Gyro_P;
extern unsigned char Parameter_Gyro_I;
extern unsigned char Parameter_Gier_P;
extern unsigned char Parameter_ServoNickControl;
 
#endif //_FC_H
 
/branches/v0.60_MicroMag3_Nick666/trunc/flight.pnproj
0,0 → 1,0
<Project name="Flight-Ctrl"><File path="uart.h"></File><File path="main.c"></File><File path="main.h"></File><File path="makefile"></File><File path="uart.c"></File><File path="printf_P.h"></File><File path="printf_P.c"></File><File path="timer0.c"></File><File path="timer0.h"></File><File path="old_macros.h"></File><File path="twimaster.c"></File><File path="version.txt"></File><File path="twimaster.h"></File><File path="rc.c"></File><File path="rc.h"></File><File path="fc.h"></File><File path="fc.c"></File><File path="menu.h"></File><File path="menu.c"></File><File path="_Settings.h"></File><File path="analog.c"></File><File path="analog.h"></File><File path="GPS.c"></File><File path="gps.h"></File><File path="License.txt"></File><File path="math.c"></File><File path="math.h"></File><File path="compass.c"></File><File path="compass.h"></File></Project>
/branches/v0.60_MicroMag3_Nick666/trunc/flight.pnps
0,0 → 1,0
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd>
/branches/v0.60_MicroMag3_Nick666/trunc/gps.h
0,0 → 1,4
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern void GPS_Neutral(void);
extern void GPS_BerechneZielrichtung(void);
/branches/v0.60_MicroMag3_Nick666/trunc/license_buss.txt
0,0 → 1,52
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nichtkommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-profit use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet, our webpage (http://www.MikroKopter.de) must be
// + clearly linked and named as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/v0.60_MicroMag3_Nick666/trunc/main.c
0,0 → 1,231
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
// unsigned char EEPromArray[E2END+1] EEMEM;
unsigned char EEPromArray[501] EEMEM;
 
// -- Parametersatz aus EEPROM lesen ---
// number [0..5]
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
{
if (number > 5) number = 5;
eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
 
}
 
 
// -- Parametersatz ins EEPROM schreiben ---
// number [0..5]
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
{
if (number > 5) number = 5;
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
 
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken
}
 
unsigned char GetActiveParamSetNumber(void)
{
return(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]));
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer;
unsigned int timer2 = 0;
 
DDRC = 0x01; // SCL
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB |= (1<<PB0); // LED_Rot
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5
DDRD |= (1<<PD7); // J7
PORTD = 0xF7;
 
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 1000;
 
StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0;
 
ROT_OFF;
Timer_Init();
UART_Init();
rc_sum_init();
ADC_Init();
i2c_init();
MM3_init();
sei();
 
VersionInfo.Hauptversion = VERSION_HAUPTVERSION;
VersionInfo.Nebenversion = VERSION_NEBENVERSION;
VersionInfo.PCKompatibel = VERSION_KOMPATIBEL;
printf("\n\rFlightControl V%d.%d ", VERSION_HAUPTVERSION, VERSION_NEBENVERSION);
printf("\n\r==============================");
GRN_ON;
 
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != 59) // seit V 0.60
{
printf("\n\rInit. EEPROM: Generiere Default-Parameter...");
DefaultKonstanten1();
for (unsigned char i=0;i<6;i++)
{
if(i==2) DefaultKonstanten2();
WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
}
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], 1);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], 59);
}
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
printf("\n\rBenutze Parametersatz %d", GetActiveParamSetNumber());
//kurze Wartezeit (sonst reagiert die "Kompass kalibrieren?"-Abfrage nicht
timer = SetDelay(500);
while(!CheckDelay(timer));
//Kompass kalibrieren?
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 100 && PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 100)
{
printf("\n\rKalibriere Kompass");
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) calib_MM3();
}
//Neutrallage kalibrieren?
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 100 && PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -100)
{
printf("\n\rKalibriere Neutrallage");
Neutral_calib();
}
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rAbgleich Luftdrucksensor..");
timer = SetDelay(2500);
SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
SetNeutral();
 
ROT_OFF;
beeptime = 2000;
DebugIn.Analog[1] = 1000;
DebugIn.Digital[0] = 0x55;
 
printf("\n\rSteuerung: ");
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold");
else printf("Neutral");
printf("\n\n\r");
LcdClear();
while (1)
{
if (UpdateMotor) // ReglerIntervall
{
UpdateMotor=0;
MotorRegler();
SendMotorData();
ROT_OFF;
if(PcZugriff) PcZugriff--;
if(SenderOkay) SenderOkay--;
if (UBat < EE_Parameter.UnterspannungsWarnung)
{
beeptime = 2000;
}
if(!Timeout)
{
i2c_init();
}
else
{
ROT_OFF;
}
}
 
if(SIO_DEBUG)
{
DatenUebertragung();
BearbeiteRxDaten();
}
else BearbeiteRxDaten();
if(CheckDelay(timer2))
{
if(MotorenEin) PORTC ^= 0x10; else PORTC &= ~0x10;
timer = SetDelay(500);
}
}
return (1);
}
 
/branches/v0.60_MicroMag3_Nick666/trunc/main.d
0,0 → 1,2
main.o main.d : main.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/main.h
0,0 → 1,94
#ifndef _MAIN_H
#define _MAIN_H
 
//Hier die Quarz Frequenz einstellen
#if defined (__AVR_ATmega32__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
#endif
 
#if defined (__AVR_ATmega644__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
//#define SYSCLK 16000000L //Quarz Frequenz in Hz
#endif
 
 
// neue Hardware
#define ROT_OFF PORTB &=~(1<<PB0)
#define ROT_ON PORTB |= (1<<PB0)
#define ROT_FLASH PORTB ^= (1<<PB0)
#define GRN_OFF PORTB &=~(1<<PB1)
#define GRN_ON PORTB |= (1<<PB1)
#define GRN_FLASH PORTD ^= (1<<PB1)
 
//#ifndef F_CPU
//#error ################## F_CPU nicht definiert oder ungültig #############
//#endif
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
//#define ANZ_MITTELWERT 4
 
#define EEPROM_ADR_VALID 1
#define EEPROM_ADR_ACTIVE_SET 2
 
#define EEPROM_ADR_PARAM_BEGIN 100
 
#define CFG_HOEHENREGELUNG 0x01
#define CFG_HOEHEN_SCHALTER 0x02
#define CFG_HEADING_HOLD 0x04
#define CFG_KOMPASS_AKTIV 0x08
#define CFG_KOMPASS_FIX 0x10
#define CFG_GPS_AKTIV 0x20
 
 
//#define SYSCLK
//extern unsigned long SYSCLK;
extern volatile int i_Nick[20],i_Roll[20],DiffNick,DiffRoll;
extern volatile unsigned char SenderOkay;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
 
extern void ReadParameterSet (unsigned char number, unsigned char *buffer, unsigned char length);
extern void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length);
extern unsigned char GetActiveParamSetNumber(void);
extern unsigned char EEPromArray[];
 
#include <stdlib.h>
#include <string.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/boot.h>
#include <avr/wdt.h>
 
#include "old_macros.h"
 
#include "_settings.h"
#include "printf_P.h"
#include "compass.h"
#include "timer0.h"
#include "uart.h"
#include "analog.h"
#include "twimaster.h"
#include "menu.h"
#include "rc.h"
#include "fc.h"
#include "gps.h"
#include "math.h"
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
 
#define DEBUG_DISPLAY_INTERVALL 123 // in ms
 
 
#define DELAY_US(x) ((unsigned int)( (x) * 1e-6 * F_CPU ))
#endif //_MAIN_H
 
 
 
 
 
 
/branches/v0.60_MicroMag3_Nick666/trunc/makefile
0,0 → 1,393
#--------------------------------------------------------------------
# MCU name
MCU = atmega644
F_CPU = 20000000
#-------------------------------------------------------------------
HAUPT_VERSION = 0
NEBEN_VERSION = 60
VERSION_KOMPATIBEL = 4 # PC-Kompatibilität
#-------------------------------------------------------------------
 
ifeq ($(MCU), atmega32)
# FUSE_SETTINGS= -u -U lfuse:w:0xff:m -U hfuse:w:0xcf:m
 
HEX_NAME = MEGA32
endif
 
ifeq ($(MCU), atmega644)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
#FUSE_SETTINGS = -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
 
# -u bei neuen Controllern wieder einspielen
 
HEX_NAME = MEGA644
endif
 
ifeq ($(F_CPU), 16000000)
QUARZ = 16MHZ
endif
 
ifeq ($(F_CPU), 20000000)
QUARZ = 20MHZ
endif
 
 
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
 
# Target file name (without extension).
 
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)_MM3
 
# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT = s
 
##########################################################################################################
# List C source files here. (C dependencies are automatically generated.)
SRC = main.c uart.c printf_P.c timer0.c analog.c menu.c compass.c math.c
SRC += twimaster.c rc.c fc.c GPS.c
 
##########################################################################################################
 
 
# List Assembler source files here.
# Make them always end in a capital .S. Files ending in a lowercase .s
# will not be considered source files but generated files (assembler
# output from the compiler), and will be deleted upon "make clean"!
# Even though the DOS/Win* filesystem matches both .s and .S the same,
# it will preserve the spelling of the filenames, and gcc itself does
# care about how the name is spelled on its command-line.
ASRC =
 
 
 
# List any extra directories to look for include files here.
# Each directory must be seperated by a space.
EXTRAINCDIRS =
 
 
# Optional compiler flags.
# -g: generate debugging information (for GDB, or for COFF conversion)
# -O*: optimization level
# -f...: tuning, see gcc manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create assembler listing
CFLAGS = -O$(OPT) \
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
-Wall -Wstrict-prototypes \
-mtiny-stack -mcall-prologues \
#-Wno-pointer-sign \
-Wa,-adhlns=$(<:.c=.lst) \
$(patsubst %,-I%,$(EXTRAINCDIRS))
 
 
# Set a "language standard" compiler flag.
# Unremark just one line below to set the language standard to use.
# gnu99 = C99 + GNU extensions. See GCC manual for more information.
#CFLAGS += -std=c89
#CFLAGS += -std=gnu89
#CFLAGS += -std=c99
CFLAGS += -std=gnu99
 
CFLAGS += -DVERSION_HAUPTVERSION=$(HAUPT_VERSION) -DVERSION_NEBENVERSION=$(NEBEN_VERSION) -DVERSION_KOMPATIBEL=$(VERSION_KOMPATIBEL)
 
 
# Optional assembler flags.
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
 
 
 
# Optional linker flags.
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
 
# Additional libraries
 
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
 
# Floating point printf version (requires -lm below)
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
 
# -lm = math library
LDFLAGS += -lm
 
 
##LDFLAGS += -T./linkerfile/avr5.x
 
 
 
# Programming support using avrdude. Settings and variables.
 
# Programming hardware: alf avr910 avrisp bascom bsd
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
#
# Type: avrdude -c ?
# to get a full listing.
#
#AVRDUDE_PROGRAMMER = stk200
AVRDUDE_PROGRAMMER = dt006
#AVRDUDE_PROGRAMMER = ponyser
#falls Ponyser ausgewählt wird, muss sich unsere avrdude-Configdatei im Bin-Verzeichnis des Compilers befinden
 
 
#AVRDUDE_PORT = com1 # programmer connected to serial device
AVRDUDE_PORT = lpt1 # programmer connected to parallel port
 
#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_SETTINGS)
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE += -y
 
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
AVRDUDE_FLAGS += -V
 
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_FLAGS += -v -v
 
# ---------------------------------------------------------------------------
# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
 
 
# Define programs and commands.
SHELL = sh
 
CC = avr-gcc
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
# Programming support using avrdude.
AVRDUDE = avrdude
 
REMOVE = rm -f
COPY = cp
 
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf
 
# Define Messages
# English
MSG_ERRORS_NONE = Errors: none
MSG_BEGIN = -------- begin --------
MSG_END = -------- end --------
MSG_SIZE_BEFORE = Size before:
MSG_SIZE_AFTER = Size after:
MSG_COFF = Converting to AVR COFF:
MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
MSG_FLASH = Creating load file for Flash:
MSG_EEPROM = Creating load file for EEPROM:
MSG_EXTENDED_LISTING = Creating Extended Listing:
MSG_SYMBOL_TABLE = Creating Symbol Table:
MSG_LINKING = Linking:
MSG_COMPILING = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
 
 
# Define all object files.
OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
 
# Define all listing files.
LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
 
# Combine all necessary flags and optional flags.
# Add target processor to flags.
#ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS)
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 
 
# Default target.
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex $(TARGET).eep \
$(TARGET).lss $(TARGET).sym sizeafter finished end
 
 
# Eye candy.
# AVR Studio 3.x does not check make's exit code but relies on
# the following magic strings to be generated by the compile job.
begin:
@echo
@echo $(MSG_BEGIN)
 
finished:
@echo $(MSG_ERRORS_NONE)
 
end:
@echo $(MSG_END)
@echo
 
 
# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi
 
sizeafter:
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
 
 
 
# Display compiler version information.
gccversion :
@$(CC) --version
 
 
# Convert ELF to COFF for use in debugging / simulating in
# AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
 
 
coff: $(TARGET).elf
@echo
@echo $(MSG_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
 
 
extcoff: $(TARGET).elf
@echo
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
 
 
 
 
# Program the device.
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 
 
 
 
# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
@echo
@echo $(MSG_FLASH) $@
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
 
# Create extended listing file from ELF output file.
%.lss: %.elf
@echo
@echo $(MSG_EXTENDED_LISTING) $@
$(OBJDUMP) -h -S $< > $@
 
# Create a symbol table from ELF output file.
%.sym: %.elf
@echo
@echo $(MSG_SYMBOL_TABLE) $@
avr-nm -n $< > $@
 
 
 
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
@echo
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
 
 
# Compile: create object files from C source files.
%.o : %.c
@echo
@echo $(MSG_COMPILING) $<
$(CC) -c $(ALL_CFLAGS) $< -o $@
 
 
# Compile: create assembler files from C source files.
%.s : %.c
$(CC) -S $(ALL_CFLAGS) $< -o $@
 
 
# Assemble: create object files from assembler source files.
%.o : %.S
@echo
@echo $(MSG_ASSEMBLING) $<
$(CC) -c $(ALL_ASFLAGS) $< -o $@
 
 
 
 
 
 
# Target: clean project.
clean: begin clean_list finished end
 
clean_list :
@echo
@echo $(MSG_CLEANING)
# $(REMOVE) $(TARGET).hex
$(REMOVE) $(TARGET).eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) $(TARGET).elf
$(REMOVE) $(TARGET).map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) $(TARGET).sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
 
 
# Automatically generate C source code dependencies.
# (Code originally taken from the GNU make user manual and modified
# (See README.txt Credits).)
#
# Note that this will work with sh (bash) and sed that is shipped with WinAVR
# (see the SHELL variable defined above).
# This may not work with other shells or other seds.
#
%.d: %.c
set -e; $(CC) -MM $(ALL_CFLAGS) $< \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
[ -s $@ ] || rm -f $@
 
 
# Remove the '-' if you want to see the dependency files generated.
-include $(SRC:.c=.d)
 
 
 
# Listing of phony targets.
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
clean clean_list program
 
/branches/v0.60_MicroMag3_Nick666/trunc/math.c
0,0 → 1,118
/*
 
Copyright 2007, Niklas Nold
 
This program (files math.c and math.h) is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
 
Please note: All the other files for the project "Mikrokopter" by H. Buss are under the license (license_buss.txt) published by www.mikrokopter.de
*/
 
#include "main.h"
 
 
const uint8_t pgm_atan[270] PROGMEM = {0,1,2,3,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,27,28,29,30,31,32,33,33,34,35,36,37,37,38,39,39,40,41,41,42,43,43,44,44,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,52,53,53,54,54,54,55,55,56,56,56,57,57,57,58,58,58,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,64,64,64,64,65,65,65,65,65,66,66,66,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79};
 
// Arkustangens2 im Gradmaß
signed int atan2_i(signed int x, signed int y)
{
int i,angle;
int8_t m;
if (!x && !y) return 0; //atan2 = 0 für x und y = 0
if (y < 0) m=-1;
else m=1;
if (x==0) return (90*m); // atan2 = 90° für x = 0
i = abs(((float)y / x) * 50); // Berechne i für die Lookup table (Schrittweite atan(x) ist 0.02 -> *50)
 
if (i<270) angle = pgm_read_byte(&pgm_atan[i]); // Lookup für 1° bis 79°
else if (i>5750) angle = 90; // Grenzwert ist 90°
else if (i>=1910) angle = 89; // 89° bis 80° über Wertebereiche
else if (i>=1150) angle = 88;
else if (i>=820) angle = 87;
else if (i>=640) angle = 86;
else if (i>=520) angle = 85;
else if (i>=440) angle = 84;
else if (i>=380) angle = 83;
else if (i>=335) angle = 82;
else if (i>=299) angle = 81;
else angle = 80; // (i>=270)
if (x > 0) return (angle*m); // Quadrant I und IV
else if ((x < 0) && (y >= 0)) return ((angle*-1) + 180); // Quadrant II
else return (angle - 180); // x < 0 && y < 0 Quadrant III
}
 
 
 
 
 
const float pgm_sinus_f [91] PROGMEM = {0.000,0.017,0.035,0.052,0.070,0.087,0.105,0.122,0.139,0.156,0.174,0.191,0.208,0.225,0.242,0.259,0.276,0.292,0.309,0.326,0.342,0.358,0.375,0.391,0.407,0.423,0.438,0.454,0.469,0.485,0.500,0.515,0.530,0.545,0.559,0.574,0.588,0.602,0.616,0.629,0.643,0.656,0.669,0.682,0.695,0.707,0.719,0.731,0.743,0.755,0.766,0.777,0.788,0.799,0.809,0.819,0.829,0.839,0.848,0.857,0.866,0.875,0.883,0.891,0.899,0.906,0.914,0.921,0.927,0.934,0.940,0.946,0.951,0.956,0.961,0.966,0.970,0.974,0.978,0.982,0.985,0.988,0.990,0.993,0.995,0.996,0.998,0.999,0.999,1.000,1.000};
 
inline float pgm_read_float(const float *addr)
{
union
{
uint16_t i[2]; // 2 16-bit-Worte
float f;
} u;
u.i[0]=pgm_read_word((PGM_P)addr);
u.i[1]=pgm_read_word((PGM_P)addr+2);
return u.f;
}
 
// Kosinusfunktion im Gradmaß
float cos_f(signed int winkel)
{
return (sin_f(90-winkel));
}
 
// Sinusfunktion im Gradmaß
float sin_f(signed int winkel)
{
short int m,n;
float sinus;
//winkel = winkel % 360;
if (winkel < 0)
{
m = -1;
winkel = abs(winkel);
}
else m = +1;
// Quadranten auswerten
if ((winkel > 90 ) && (winkel <= 180)) {winkel = 180 - winkel; n = 1;}
else if ((winkel > 180 ) && (winkel <= 270)) {winkel = winkel - 180; n = -1;}
else if ((winkel > 270) && (winkel <= 360)) {winkel = 360 - winkel; n = -1;}
else n = 1; //0 - 90 Grad
 
sinus = pgm_read_float(&pgm_sinus_f[winkel]);
 
return (sinus*m*n);
}
 
 
const uint8_t pgm_asin[201] PROGMEM = {0,0,1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9,10,10,10,11,11,11,12,12,12,12,13,13,13,14,14,14,14,15,15,15,16,16,16,17,17,17,17,18,18,18,19,19,19,20,20,20,20,21,21,21,22,22,22,23,23,23,24,24,24,25,25,25,25,26,26,26,27,27,27,28,28,28,29,29,29,30,30,30,31,31,31,32,32,32,33,33,33,34,34,34,35,35,35,36,36,37,37,37,38,38,38,39,39,39,40,40,41,41,41,42,42,42,43,43,44,44,44,45,45,46,46,46,47,47,48,48,49,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,62,62,63,64,64,65,66,66,67,68,68,69,70,71,72,73,74,75,76,77,79,80,82,84,90};
 
// Akurssinusfunktion im Gradmaß
int8_t asin_i(signed int i)
{
signed char m;
if (i < 0) {m=-1;i=abs(i);}
else m=1;
return (pgm_read_byte(&pgm_asin[i]) * m);
}
/branches/v0.60_MicroMag3_Nick666/trunc/math.d
0,0 → 1,2
math.o math.d : math.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/math.h
0,0 → 1,11
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Peter Muehlenbrock
// Definitionen fuer Modul math
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
extern signed int atan2_i(signed int x, signed int y);
extern float cos_f(signed int winkel);
extern float sin_f(signed int winkel);
extern int8_t asin_i(signed int i);
/branches/v0.60_MicroMag3_Nick666/trunc/menu.c
0,0 → 1,124
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
unsigned int TestInt = 0;
#define ARRAYGROESSE 10
unsigned char Array[ARRAYGROESSE] = {1,2,3,4,5,6,7,8,9,10};
char DisplayBuff[80] = "Hallo Welt";
unsigned char DispPtr = 0;
unsigned char RemoteTasten = 0;
 
#define KEY1 0x01
#define KEY2 0x02
#define KEY3 0x04
#define KEY4 0x08
#define KEY5 0x10
 
void LcdClear(void)
{
unsigned char i;
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
}
 
void Menu(void)
{
static unsigned char MaxMenue = 11,MenuePunkt=0;
if(RemoteTasten & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue; LcdClear(); }
if(RemoteTasten & KEY2) { MenuePunkt++; LcdClear(); }
if((RemoteTasten & KEY1) && (RemoteTasten & KEY2)) MenuePunkt = 0;
LCD_printfxy(17,0,"[%i]",MenuePunkt);
switch(MenuePunkt)
{
case 0:
LCD_printfxy(0,0,"++ MikroKopter ++");
LCD_printfxy(0,1,"V%d.%d",VERSION_HAUPTVERSION, VERSION_NEBENVERSION);
LCD_printfxy(0,2,"Setting: %d ",GetActiveParamSetNumber());
LCD_printfxy(0,3,"(c) Holger Buss");
// if(RemoteTasten & KEY3) TestInt--;
// if(RemoteTasten & KEY4) TestInt++;
break;
case 1:
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
LCD_printfxy(0,0,"Hoehe: %5i",HoehenWert);
LCD_printfxy(0,1,"SollHoehe: %5i",SollHoehe);
LCD_printfxy(0,2,"Luftdruck: %5i",MessLuftdruck);
LCD_printfxy(0,3,"Off : %5i",DruckOffsetSetting);
}
else
{
LCD_printfxy(0,1,"Keine ");
LCD_printfxy(0,2,"Höhenregelung");
}
break;
case 2:
LCD_printfxy(0,0,"akt. Lage");
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Kompass: %5i",KompassValue);
break;
case 3:
LCD_printfxy(0,0,"K1:%4i K2:%4i ",PPM_in[1],PPM_in[2]);
LCD_printfxy(0,1,"K3:%4i K4:%4i ",PPM_in[3],PPM_in[4]);
LCD_printfxy(0,2,"K5:%4i K6:%4i ",PPM_in[5],PPM_in[6]);
LCD_printfxy(0,3,"K7:%4i Kanäle ",PPM_in[7]);
break;
case 4:
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]);
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]],PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]);
LCD_printfxy(0,3,"P3:%4i Kanäle ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]);
break;
case 5:
LCD_printfxy(0,0,"Gyro - Sensor");
LCD_printfxy(0,1,"Nick %4i (%3i)",AccumulateNick / MessanzahlNick, AdNeutralNick);
LCD_printfxy(0,2,"Roll %4i (%3i)",AccumulateRoll / MessanzahlRoll, AdNeutralRoll);
LCD_printfxy(0,3,"Gier %4i (%3i)",AccumulateGier / MessanzahlGier, AdNeutralGier);
break;
case 6:
LCD_printfxy(0,0,"ACC - Sensor");
LCD_printfxy(0,1,"Nick %4i (%3i)",accumulate_AccNick / messanzahl_AccNick,acc_neutral.X);
LCD_printfxy(0,2,"Roll %4i (%3i)",accumulate_AccRoll / messanzahl_AccRoll,acc_neutral.Y);
LCD_printfxy(0,3,"Hoch %4i (%3i)",Aktuell_az/*accumulate_AccHoch / messanzahl_AccHoch*/,(int)acc_neutral.Z);
break;
case 7:
LCD_printfxy(0,1,"Spannung: %5i",UBat);
LCD_printfxy(0,2,"Empf.Pegel:%5i",SenderOkay);
break;
case 8:
LCD_printfxy(0,0,"Kompass ");
LCD_printfxy(0,1,"Richtung: %5i",KompassRichtung);
LCD_printfxy(0,2,"Messwert: %5i",KompassValue);
LCD_printfxy(0,3,"Start: %5i",KompassStartwert);
break;
case 9:
LCD_printfxy(0,0,"Poti1: %3i",Poti1);
LCD_printfxy(0,1,"Poti2: %3i",Poti2);
LCD_printfxy(0,2,"Poti3: %3i",Poti3);
LCD_printfxy(0,3,"Poti4: %3i",Poti4);
break;
case 10:
LCD_printfxy(0,0,"Servo " );
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
LCD_printfxy(0,2,"Stellung: %3i",ServoValue);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 11:
LCD_printfxy(0,0,"MM3 kalib.");
LCD_printfxy(0,1,"X_Offset: %3i",MM3_calib.X_off);
LCD_printfxy(0,2,"Y_Offset: %3i",MM3_calib.Y_off);
LCD_printfxy(0,3,"Z_Offset: %3i",MM3_calib.Z_off);
break;
default: MaxMenue = MenuePunkt - 1;
MenuePunkt = 0;
break;
}
RemoteTasten = 0;
}
/branches/v0.60_MicroMag3_Nick666/trunc/menu.d
0,0 → 1,2
menu.o menu.d : menu.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/menu.h
0,0 → 1,7
void LcdClear(void);
 
extern void Menu(void);
extern char DisplayBuff[80];
extern unsigned char DispPtr;
unsigned char RemoteTasten;
 
/branches/v0.60_MicroMag3_Nick666/trunc/old_macros.h
0,0 → 1,47
/*
For backwards compatibility only.
Ingo Busker ingo@mikrocontroller.com
*/
 
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
 
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
 
#ifndef inb
#define inb(sfr) _SFR_BYTE(sfr)
#endif
 
#ifndef outb
#define outb(sfr, val) (_SFR_BYTE(sfr) = (val))
#endif
 
#ifndef inw
#define inw(sfr) _SFR_WORD(sfr)
#endif
 
#ifndef outw
#define outw(sfr, val) (_SFR_WORD(sfr) = (val))
#endif
 
#ifndef outp
#define outp(val, sfr) outb(sfr, val)
#endif
 
#ifndef inp
#define inp(sfr) inb(sfr)
#endif
 
#ifndef BV
#define BV(bit) _BV(bit)
#endif
 
 
#ifndef PRG_RDB
#define PRG_RDB pgm_read_byte
#endif
 
/branches/v0.60_MicroMag3_Nick666/trunc/printf_P.c
0,0 → 1,480
// Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist nicht von der Lizenz für den MikroKopter-Teil unterstellt
 
/*
Copyright (C) 1993 Free Software Foundation
 
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
 
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
 
/*
* Copyright (c) 1990 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. [rescinded 22 July 1999]
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
 
/******************************************************************************
This file is a patched version of printf called _printf_P
It is made to work with avr-gcc for Atmel AVR MCUs.
There are some differences from standard printf:
1. There is no floating point support (with fp the code is about 8K!)
2. Return type is void
3. Format string must be in program memory (by using macro printf this is
done automaticaly)
4. %n is not implemented (just remove the comment around it if you need it)
5. If LIGHTPRINTF is defined, the code is about 550 bytes smaller and the
folowing specifiers are disabled :
space # * . - + p s o O
6. A function void uart_sendchar(char c) is used for output. The UART must
be initialized before using printf.
 
Alexander Popov
sasho@vip.orbitel.bg
******************************************************************************/
 
/*
* Actual printf innards.
*
* This code is large and complicated...
*/
 
#include <string.h>
#ifdef __STDC__
#include <stdarg.h>
#else
#include <varargs.h>
#endif
 
#include "main.h"
 
 
//#define LIGHTPRINTF
char PrintZiel;
 
 
char Putchar(char zeichen)
{
if(PrintZiel == OUT_LCD) { DisplayBuff[DispPtr++] = zeichen; return(1);}
else return(uart_putchar(zeichen));
}
 
 
void PRINT(const char * ptr, unsigned int len)
{
for(;len;len--) Putchar(*ptr++);
}
void PRINTP(const char * ptr, unsigned int len)
{
for(;len;len--) Putchar(pgm_read_byte(ptr++));
}
 
void PAD_SP(signed char howmany)
{
for(;howmany>0;howmany--) Putchar(' ');
}
 
void PAD_0(signed char howmany)
{
for(;howmany>0;howmany--) Putchar('0');
}
 
#define BUF 40
 
/*
* Macros for converting digits to letters and vice versa
*/
#define to_digit(c) ((c) - '0')
#define is_digit(c) ((c)<='9' && (c)>='0')
#define to_char(n) ((n) + '0')
 
/*
* Flags used during conversion.
*/
#define LONGINT 0x01 /* long integer */
#define LONGDBL 0x02 /* long double; unimplemented */
#define SHORTINT 0x04 /* short integer */
#define ALT 0x08 /* alternate form */
#define LADJUST 0x10 /* left adjustment */
#define ZEROPAD 0x20 /* zero (as opposed to blank) pad */
#define HEXPREFIX 0x40 /* add 0x or 0X prefix */
 
void _printf_P (char ziel,char const *fmt0, ...) /* Works with string from FLASH */
{
va_list ap;
register const char *fmt; /* format string */
register char ch; /* character from fmt */
register int n; /* handy integer (short term usage) */
register char *cp; /* handy char pointer (short term usage) */
const char *fmark; /* for remembering a place in fmt */
register unsigned char flags; /* flags as above */
signed char width; /* width from format (%8d), or 0 */
signed char prec; /* precision from format (%.3d), or -1 */
char sign; /* sign prefix (' ', '+', '-', or \0) */
unsigned long _ulong=0; /* integer arguments %[diouxX] */
#define OCT 8
#define DEC 10
#define HEX 16
unsigned char base; /* base for [diouxX] conversion */
signed char dprec; /* a copy of prec if [diouxX], 0 otherwise */
signed char dpad; /* extra 0 padding needed for integers */
signed char fieldsz; /* field size expanded by sign, dpad etc */
/* The initialization of 'size' is to suppress a warning that
'size' might be used unitialized. It seems gcc can't
quite grok this spaghetti code ... */
signed char size = 0; /* size of converted field or string */
char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */
char ox[2]; /* space for 0x hex-prefix */
 
PrintZiel = ziel; // bestimmt, LCD oder UART
va_start(ap, fmt0);
fmt = fmt0;
 
/*
* Scan the format for conversions (`%' character).
*/
for (;;) {
for (fmark = fmt; (ch = pgm_read_byte(fmt)) != '\0' && ch != '%'; fmt++)
/* void */;
if ((n = fmt - fmark) != 0) {
PRINTP(fmark, n);
}
if (ch == '\0')
goto done;
fmt++; /* skip over '%' */
 
flags = 0;
dprec = 0;
width = 0;
prec = -1;
sign = '\0';
 
rflag: ch = PRG_RDB(fmt++);
reswitch:
#ifdef LIGHTPRINTF
if (ch=='o' || ch=='u' || (ch|0x20)=='x') {
#else
if (ch=='u' || (ch|0x20)=='x') {
#endif
if (flags&LONGINT) {
_ulong=va_arg(ap, unsigned long);
} else {
register unsigned int _d;
_d=va_arg(ap, unsigned int);
_ulong = flags&SHORTINT ? (unsigned long)(unsigned short)_d : (unsigned long)_d;
}
}
#ifndef LIGHTPRINTF
if(ch==' ') {
/*
* ``If the space and + flags both appear, the space
* flag will be ignored.''
* -- ANSI X3J11
*/
if (!sign)
sign = ' ';
goto rflag;
} else if (ch=='#') {
flags |= ALT;
goto rflag;
} else if (ch=='*'||ch=='-') {
if (ch=='*') {
/*
* ``A negative field width argument is taken as a
* - flag followed by a positive field width.''
* -- ANSI X3J11
* They don't exclude field widths read from args.
*/
if ((width = va_arg(ap, int)) >= 0)
goto rflag;
width = -width;
}
flags |= LADJUST;
flags &= ~ZEROPAD; /* '-' disables '0' */
goto rflag;
} else if (ch=='+') {
sign = '+';
goto rflag;
} else if (ch=='.') {
if ((ch = PRG_RDB(fmt++)) == '*') {
n = va_arg(ap, int);
prec = n < 0 ? -1 : n;
goto rflag;
}
n = 0;
while (is_digit(ch)) {
n = n*10 + to_digit(ch);
ch = PRG_RDB(fmt++);
}
prec = n < 0 ? -1 : n;
goto reswitch;
} else
#endif /* LIGHTPRINTF */
if (ch=='0') {
/*
* ``Note that 0 is taken as a flag, not as the
* beginning of a field width.''
* -- ANSI X3J11
*/
if (!(flags & LADJUST))
flags |= ZEROPAD; /* '-' disables '0' */
goto rflag;
} else if (ch>='1' && ch<='9') {
n = 0;
do {
n = 10 * n + to_digit(ch);
ch = PRG_RDB(fmt++);
} while (is_digit(ch));
width = n;
goto reswitch;
} else if (ch=='h') {
flags |= SHORTINT;
goto rflag;
} else if (ch=='l') {
flags |= LONGINT;
goto rflag;
} else if (ch=='c') {
*(cp = buf) = va_arg(ap, int);
size = 1;
sign = '\0';
} else if (ch=='D'||ch=='d'||ch=='i') {
if(ch=='D')
flags |= LONGINT;
if (flags&LONGINT) {
_ulong=va_arg(ap, long);
} else {
register int _d;
_d=va_arg(ap, int);
_ulong = flags&SHORTINT ? (long)(short)_d : (long)_d;
}
if ((long)_ulong < 0) {
_ulong = -_ulong;
sign = '-';
}
base = DEC;
goto number;
} else
/*
if (ch=='n') {
if (flags & LONGINT)
*va_arg(ap, long *) = ret;
else if (flags & SHORTINT)
*va_arg(ap, short *) = ret;
else
*va_arg(ap, int *) = ret;
continue; // no output
} else
*/
#ifndef LIGHTPRINTF
if (ch=='O'||ch=='o') {
if (ch=='O')
flags |= LONGINT;
base = OCT;
goto nosign;
} else if (ch=='p') {
/*
* ``The argument shall be a pointer to void. The
* value of the pointer is converted to a sequence
* of printable characters, in an implementation-
* defined manner.''
* -- ANSI X3J11
*/
/* NOSTRICT */
_ulong = (unsigned int)va_arg(ap, void *);
base = HEX;
flags |= HEXPREFIX;
ch = 'x';
goto nosign;
} else if (ch=='s') { // print a string from RAM
if ((cp = va_arg(ap, char *)) == NULL) {
cp=buf;
cp[0] = '(';
cp[1] = 'n';
cp[2] = 'u';
cp[4] = cp[3] = 'l';
cp[5] = ')';
cp[6] = '\0';
}
if (prec >= 0) {
/*
* can't use strlen; can only look for the
* NUL in the first `prec' characters, and
* strlen() will go further.
*/
char *p = (char*)memchr(cp, 0, prec);
 
if (p != NULL) {
size = p - cp;
if (size > prec)
size = prec;
} else
size = prec;
} else
size = strlen(cp);
sign = '\0';
} else
#endif /* LIGHTPRINTF */
if(ch=='U'||ch=='u') {
if (ch=='U')
flags |= LONGINT;
base = DEC;
goto nosign;
} else if (ch=='X'||ch=='x') {
base = HEX;
/* leading 0x/X only if non-zero */
if (flags & ALT && _ulong != 0)
flags |= HEXPREFIX;
 
/* unsigned conversions */
nosign: sign = '\0';
/*
* ``... diouXx conversions ... if a precision is
* specified, the 0 flag will be ignored.''
* -- ANSI X3J11
*/
number: if ((dprec = prec) >= 0)
flags &= ~ZEROPAD;
 
/*
* ``The result of converting a zero value with an
* explicit precision of zero is no characters.''
* -- ANSI X3J11
*/
cp = buf + BUF;
if (_ulong != 0 || prec != 0) {
register unsigned char _d,notlastdigit;
do {
notlastdigit=(_ulong>=base);
_d = _ulong % base;
 
if (_d<10) {
_d+='0';
} else {
_d+='a'-10;
if (ch=='X') _d&=~0x20;
}
*--cp=_d;
_ulong /= base;
} while (notlastdigit);
#ifndef LIGHTPRINTF
// handle octal leading 0
if (base==OCT && flags & ALT && *cp != '0')
*--cp = '0';
#endif
}
 
size = buf + BUF - cp;
} else { //default
/* "%?" prints ?, unless ? is NUL */
if (ch == '\0')
goto done;
/* pretend it was %c with argument ch */
cp = buf;
*cp = ch;
size = 1;
sign = '\0';
}
 
/*
* All reasonable formats wind up here. At this point,
* `cp' points to a string which (if not flags&LADJUST)
* should be padded out to `width' places. If
* flags&ZEROPAD, it should first be prefixed by any
* sign or other prefix; otherwise, it should be blank
* padded before the prefix is emitted. After any
* left-hand padding and prefixing, emit zeroes
* required by a decimal [diouxX] precision, then print
* the string proper, then emit zeroes required by any
* leftover floating precision; finally, if LADJUST,
* pad with blanks.
*/
 
/*
* compute actual size, so we know how much to pad.
*/
fieldsz = size;
 
dpad = dprec - size;
if (dpad < 0)
dpad = 0;
 
if (sign)
fieldsz++;
else if (flags & HEXPREFIX)
fieldsz += 2;
fieldsz += dpad;
 
/* right-adjusting blank padding */
if ((flags & (LADJUST|ZEROPAD)) == 0)
PAD_SP(width - fieldsz);
 
/* prefix */
if (sign) {
PRINT(&sign, 1);
} else if (flags & HEXPREFIX) {
ox[0] = '0';
ox[1] = ch;
PRINT(ox, 2);
}
 
/* right-adjusting zero padding */
if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD)
PAD_0(width - fieldsz);
 
/* leading zeroes from decimal precision */
PAD_0(dpad);
 
/* the string or number proper */
PRINT(cp, size);
 
/* left-adjusting padding (always blank) */
if (flags & LADJUST)
PAD_SP(width - fieldsz);
}
done:
va_end(ap);
}
/branches/v0.60_MicroMag3_Nick666/trunc/printf_P.d
0,0 → 1,3
printf_P.o printf_P.d : printf_P.c main.h old_macros.h _settings.h printf_P.h \
compass.h timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h \
math.h
/branches/v0.60_MicroMag3_Nick666/trunc/printf_P.h
0,0 → 1,19
#ifndef _PRINTF_P_H_
#define _PRINTF_P_H_
 
#include <avr/pgmspace.h>
 
#define OUT_V24 0
#define OUT_LCD 1
 
 
extern void _printf_P (char, char const *fmt0, ...);
extern char PrintZiel;
 
 
#define printf_P(format, args...) _printf_P(OUT_V24,format , ## args)
#define printf(format, args...) _printf_P(OUT_V24,PSTR(format) , ## args)
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(OUT_LCD,PSTR(format) , ## args);}
#define LCD_printf(format, args...) { _printf_P(OUT_LCD,PSTR(format) , ## args);}
 
#endif
/branches/v0.60_MicroMag3_Nick666/trunc/rc.c
0,0 → 1,85
/*#######################################################################################
Decodieren eines RC Summen Signals
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "rc.h"
#include "main.h"
 
volatile int PPM_in[11];
volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
volatile unsigned char NewPpmData = 1;
 
//############################################################################
//zum decodieren des PPM-Signals wird Timer1 mit seiner Input
//Capture Funktion benutzt:
void rc_sum_init (void)
//############################################################################
{
TCCR1B=(1<<CS11)|(1<<CS10)|(1<<ICES1)|(1<<ICNC1);//|(1 << WGM12); //timer1 prescale 64
 
 
// PWM
//TCCR1A = (1 << COM1B1) | (1 << WGM11) | (1 << WGM10);
//TCCR1B |= (1 << WGM12);
//OCR1B = 55;
TIMSK1 |= _BV(ICIE1);
AdNeutralGier = 0;
AdNeutralRoll = 0;
AdNeutralNick = 0;
return;
}
 
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
SIGNAL(SIG_INPUT_CAPTURE1)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0;
static int index;
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause?
if ((signal > 1500) && (signal < 8000))
{
index = 1;
NewPpmData = 0; // Null bedeutet: Neue Daten
// OCR2A = Poti2/2 + 80;
}
else
{
if(index < 10)
{
if((signal > 250) && (signal < 687))
{
signal -= 466;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10;}
signal = (3 * (PPM_in[index]) + signal) / 4;
//373 entspricht ca. 1.5ms also Mittelstellung
PPM_diff[index] = signal - PPM_in[index];
PPM_in[index] = signal;
}
index++;
/* if(index == 5) PORTD |= 0x20; else PORTD &= ~0x20; // Servosignal an J3 anlegen
if(index == 6) PORTD |= 0x10; else PORTD &= ~0x10; // Servosignal an J4 anlegen
if(index == 7) PORTD |= 0x08; else PORTD &= ~0x08; // Servosignal an J5 anlegen */
}
}
}
 
 
 
 
 
/branches/v0.60_MicroMag3_Nick666/trunc/rc.d
0,0 → 1,2
rc.o rc.d : rc.c rc.h main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/rc.h
0,0 → 1,29
/*#######################################################################################
Derkodieren eines RC Summen Signals
#######################################################################################*/
 
#ifndef _RC_H
#define _RC_H
 
#if defined (__AVR_ATmega32__)
#define TIMER_TEILER CK64
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644__)
//#define TIMER_TEILER CK64
#define TIMER_RELOAD_VALUE 250
//#define TIMER_TEILER CK256 // bei 20MHz
//#define TIMER_RELOAD_VALUE -78 // bei 20MHz
#endif
 
#define GAS PPM_in[2]
 
 
extern void rc_sum_init (void);
 
extern volatile int PPM_in[11];
extern volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
extern volatile unsigned char NewPpmData;
 
#endif //_RC_H
/branches/v0.60_MicroMag3_Nick666/trunc/timer0.c
0,0 → 1,134
#include "main.h"
 
volatile unsigned int CountMilliseconds = 0;
volatile static unsigned int tim_main;
volatile unsigned char UpdateMotor = 0;
volatile unsigned int beeptime = 0;
volatile unsigned int cntKompass = 800;
int ServoValue = 0;
 
enum {
STOP = 0,
CK = 1,
CK8 = 2,
CK64 = 3,
CK256 = 4,
CK1024 = 5,
T0_FALLING_EDGE = 6,
T0_RISING_EDGE = 7
};
 
 
SIGNAL (SIG_OVERFLOW0) // 8kHz
{
static unsigned char cnt_1ms = 1,cnt = 0;
// TCNT0 -= 250;//TIMER_RELOAD_VALUE;
 
if(!cnt--)
{
cnt = 9;
cnt_1ms++;
cnt_1ms %= 2;
if(!cnt_1ms) UpdateMotor = 1;
CountMilliseconds++;
if(Timeout) Timeout--;
}
 
if(beeptime > 1)
{
beeptime--;
PORTD &= ~(1<<PD2);//PORTD |= (1<<PD2);
}
else
PORTD &= ~(1<<PD2);
 
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
MM3_timer0(); // Kompass auslesen
 
if (!cntKompass--) // Aufruf mit 10 Hz
{
KompassValue = MM3_heading();
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
cntKompass = 800;
}
}
 
}
 
 
void Timer_Init(void)
{
tim_main = SetDelay(10);
TCCR0B = CK8;
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM
OCR0A = 0;
OCR0B = 120;
//TCNT0 = -TIMER_RELOAD_VALUE; // reload
//OCR1 = 0x00;
 
TCCR2A=(1<<COM2A1)|(1<<COM2A0)|3;
TCCR2B=(0<<CS20)|(1<<CS21)|(1<<CS22);
// TIMSK2 |= _BV(TOIE2);
TIMSK2 |= _BV(OCIE2A);
 
TIMSK0 |= _BV(TOIE0);
OCR2A = 10;
TCNT2 = 0;
}
 
// -----------------------------------------------------------------------
 
unsigned int SetDelay (unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
char CheckDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(((t - CountMilliseconds) & 0x8000) >> 9);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
void Delay_ms(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt));
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Servo ansteuern
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(SIG_OUTPUT_COMPARE2A)
{
static unsigned char timer = 10;
if(!timer--)
{
TCCR2A=(1<<COM2A1)|(0<<COM2A0)|3;
ServoValue = Parameter_ServoNickControl;
if(EE_Parameter.ServoNickCompInvert & 0x01) ServoValue += ((long) EE_Parameter.ServoNickComp * (IntegralNick / 128)) / 512;
else ServoValue -= ((long) EE_Parameter.ServoNickComp * (IntegralNick / 128)) / 512;
if(ServoValue < EE_Parameter.ServoNickMin) ServoValue = EE_Parameter.ServoNickMin;
else if(ServoValue > EE_Parameter.ServoNickMax) ServoValue = EE_Parameter.ServoNickMax;
 
//DebugOut.Analog[10] = ServoValue;
OCR2A = ServoValue;// + 75;
timer = EE_Parameter.ServoNickRefresh;
}
else
{
TCCR2A =3;
PORTD&=~0x80;
}
}
/branches/v0.60_MicroMag3_Nick666/trunc/timer0.d
0,0 → 1,2
timer0.o timer0.d : timer0.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/timer0.h
0,0 → 1,14
 
#define TIMER_TEILER CK8
#define TIMER_RELOAD_VALUE 250
 
void Timer_Init(void);
void Delay_ms(unsigned int);
unsigned int SetDelay (unsigned int t);
char CheckDelay (unsigned int t);
 
extern volatile unsigned int CountMilliseconds;
extern volatile unsigned char UpdateMotor;
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern int ServoValue;
/branches/v0.60_MicroMag3_Nick666/trunc/twimaster.c
0,0 → 1,131
/*############################################################################
############################################################################*/
 
#include "main.h"
 
unsigned char twi_state = 0;
unsigned char motor = 0;
unsigned char motorread = 0;
unsigned char motor_rx[8];
 
//############################################################################
//Initzialisieren der I2C (TWI) Schnittstelle
void i2c_init(void)
//############################################################################
{
TWSR = 0;
TWBR = ((SYSCLK/SCL_CLOCK)-16)/2;
}
 
//############################################################################
//Start I2C
char i2c_start(void)
//############################################################################
{
TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE);
return(0);
}
 
//############################################################################
//Start I2C
void i2c_stop(void)
//############################################################################
{
TWCR = (1<<TWEN) | (1<<TWSTO) | (1<<TWINT);
}
 
//############################################################################
//Start I2C
char i2c_write_byte(char byte)
//############################################################################
{
TWSR = 0x00;
TWDR = byte;
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);
return(0);
}
 
//############################################################################
//Start I2C
SIGNAL (TWI_vect)
//############################################################################
{
switch (twi_state++)
{
case 0:
i2c_write_byte(0x52+(motor*2));
break;
case 1:
switch(motor++)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 2:
i2c_stop();
if (motor<4) twi_state = 0;
else motor = 0;
i2c_start();
break;
//Liest Daten von Motor
case 3:
i2c_write_byte(0x53+(motorread*2));
break;
case 4:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 5: //1 Byte vom Motor lesen
motor_rx[motorread] = TWDR;
case 6:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
break;
case 7: //2 Byte vom Motor lesen
motor_rx[motorread+4] = TWDR;
motorread++;
if (motorread>3) motorread=0;
i2c_stop();
twi_state = 0;
}
}
/branches/v0.60_MicroMag3_Nick666/trunc/twimaster.d
0,0 → 1,3
twimaster.o twimaster.d : twimaster.c main.h old_macros.h _settings.h printf_P.h \
compass.h timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h \
math.h
/branches/v0.60_MicroMag3_Nick666/trunc/twimaster.h
0,0 → 1,32
/*############################################################################
############################################################################*/
 
#ifndef _I2C_MASTER_H
#define _I2C_MASTER_H
 
//############################################################################
 
// I2C Konstanten
#define SCL_CLOCK 200000L
#define I2C_TIMEOUT 30000
#define I2C_START 0x08
#define I2C_REPEATED_START 0x10
#define I2C_TX_SLA_ACK 0x18
#define I2C_TX_DATA_ACK 0x28
#define I2C_RX_SLA_ACK 0x40
#define I2C_RX_DATA_ACK 0x50
 
//############################################################################
 
extern unsigned char twi_state;
extern unsigned char motor;
extern unsigned char motorread;
extern unsigned char motor_rx[8];
 
 
void i2c_init (void); // I2C initialisieren
char i2c_start (void); // Start I2C
void i2c_stop (void); // Stop I2C
char i2c_write_byte (char byte); // 1 Byte schreiben
 
#endif
/branches/v0.60_MicroMag3_Nick666/trunc/uart.c
0,0 → 1,328
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "uart.h"
 
unsigned char DebugGetAnforderung = 0,DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0;
unsigned volatile char SioTmp = 0;
unsigned volatile char SendeBuffer[MAX_SENDE_BUFF];
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
unsigned volatile char NMEABuffer[MAX_EMPFANGS_BUFF];
unsigned volatile char NeuerDatensatzEmpfangen = 0;
unsigned volatile char NeueKoordinateEmpfangen = 0;
unsigned volatile char UebertragungAbgeschlossen = 1;
unsigned volatile char CntCrcError = 0;
unsigned volatile char AnzahlEmpfangsBytes = 0;
unsigned volatile char PC_DebugTimeout = 0;
unsigned char PcZugriff = 100;
unsigned char MotorTest[4] = {0,0,0,0};
unsigned char MeineSlaveAdresse;
struct str_DebugOut DebugOut;
struct str_Debug DebugIn;
struct str_VersionInfo VersionInfo;
int Debug_Timer;
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(INT_VEC_TX)
{
static unsigned int ptr = 0;
unsigned char tmp_tx;
if(!UebertragungAbgeschlossen)
{
ptr++; // die [0] wurde schon gesendet
tmp_tx = SendeBuffer[ptr];
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
{
ptr = 0;
UebertragungAbgeschlossen = 1;
}
UDR = tmp_tx;
}
else ptr = 0;
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(INT_VEC_RX)
{
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
SioTmp = UDR;
if(buf_ptr >= MAX_EMPFANGS_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
UartState = 0;
crc -= RxdBuffer[buf_ptr-2];
crc -= RxdBuffer[buf_ptr-1];
crc %= 4096;
crc1 = '=' + crc / 64;
crc2 = '=' + crc % 64;
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
{
NeuerDatensatzEmpfangen = 1;
AnzahlEmpfangsBytes = buf_ptr;
RxdBuffer[buf_ptr] = '\r';
if(/*(RxdBuffer[1] == MeineSlaveAdresse || (RxdBuffer[1] == 'a')) && */(RxdBuffer[2] == 'R')) wdt_enable(WDTO_250MS); // Reset-Commando
}
}
else
switch(UartState)
{
case 0:
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet
buf_ptr = 0;
RxdBuffer[buf_ptr++] = SioTmp;
crc = SioTmp;
break;
case 1: // Adresse auswerten
UartState++;
RxdBuffer[buf_ptr++] = SioTmp;
crc += SioTmp;
break;
case 2: // Eingangsdaten sammeln
RxdBuffer[buf_ptr] = SioTmp;
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++;
else UartState = 0;
crc += SioTmp;
break;
default:
UartState = 0;
break;
}
}
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
{
tmpCRC += SendeBuffer[i];
}
tmpCRC %= 4096;
SendeBuffer[i++] = '=' + tmpCRC / 64;
SendeBuffer[i++] = '=' + tmpCRC % 64;
SendeBuffer[i++] = '\r';
UebertragungAbgeschlossen = 0;
UDR = SendeBuffer[0];
}
 
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char modul, unsigned char *snd, unsigned char len)
{
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
SendeBuffer[pt++] = '#'; // Startzeichen
SendeBuffer[pt++] = modul; // Adresse (a=0; b=1,...)
SendeBuffer[pt++] = cmd; // Commando
 
while(len)
{
if(len) { a = snd[ptr++]; len--;} else a = 0;
if(len) { b = snd[ptr++]; len--;} else b = 0;
if(len) { c = snd[ptr++]; len--;} else c = 0;
SendeBuffer[pt++] = '=' + (a >> 2);
SendeBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
SendeBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
SendeBuffer[pt++] = '=' + ( c & 0x3f);
}
AddCRC(pt);
}
 
 
// --------------------------------------------------------------------------
void Decode64(unsigned char *ptrOut, unsigned char len, unsigned char ptrIn,unsigned char max) // Wohin mit den Daten; Wie lang; Wo im RxdBuffer
{
unsigned char a,b,c,d;
unsigned char ptr = 0;
unsigned char x,y,z;
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
if(ptrIn > max - 2) break; // nicht mehr Daten verarbeiten, als empfangen wurden
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) ptrOut[ptr++] = x; else break;
if(len--) ptrOut[ptr++] = y; else break;
if(len--) ptrOut[ptr++] = z; else break;
}
 
}
 
// --------------------------------------------------------------------------
void BearbeiteRxDaten(void)
{
if(!NeuerDatensatzEmpfangen) return;
 
//unsigned int tmp_int_arr1[1];
//unsigned int tmp_int_arr2[2];
//unsigned int tmp_int_arr3[3];
unsigned char tmp_char_arr2[2];
//unsigned char tmp_char_arr3[3];
//unsigned char tmp_char_arr4[4];
//if(!MotorenEin)
PcZugriff = 255;
switch(RxdBuffer[2])
{
case 'c':// Debugdaten incl. Externe IOs usw
Decode64((unsigned char *) &DebugIn,sizeof(DebugIn),3,AnzahlEmpfangsBytes);
/* for(unsigned char i=0; i<4;i++)
{
EE_CheckAndWrite(&EE_Buffer[EE_DEBUGWERTE + i*2], DebugIn.Analog[i]);
EE_CheckAndWrite(&EE_Buffer[EE_DEBUGWERTE + i*2 + 1], DebugIn.Analog[i] >> 8);
}*/
RemoteTasten |= DebugIn.RemoteTasten;
DebugDataAnforderung = 1;
break;
 
case 'h':// x-1 Displayzeilen
Decode64((unsigned char *) &tmp_char_arr2[0],sizeof(tmp_char_arr2),3,AnzahlEmpfangsBytes);
RemoteTasten |= tmp_char_arr2[0];
DebugDisplayAnforderung = 1;
break;
case 't':// Motortest
Decode64((unsigned char *) &MotorTest[0],sizeof(MotorTest),3,AnzahlEmpfangsBytes);
break;
case 'v': // Version-Anforderung und Ausbaustufe
GetVersionAnforderung = 1;
break;
case 'g':// "Get"-Anforderung für Debug-Daten
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
DebugGetAnforderung = 1;
break;
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
Decode64((unsigned char *) &tmp_char_arr2[0],sizeof(tmp_char_arr2),3,AnzahlEmpfangsBytes);
if(tmp_char_arr2[0] != 0xff)
{
if(tmp_char_arr2[0] > 5) tmp_char_arr2[0] = 5;
ReadParameterSet(tmp_char_arr2[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
SendOutData('L' + tmp_char_arr2[0] -1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],STRUCT_PARAM_LAENGE);
}
else
SendOutData('L' + GetActiveParamSetNumber()-1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],STRUCT_PARAM_LAENGE);
break;
case 'l':
case 'm':
case 'n':
case 'o':
case 'p': // Parametersatz speichern
Decode64((unsigned char *) &EE_Parameter.Kanalbelegung[0],STRUCT_PARAM_LAENGE,3,AnzahlEmpfangsBytes);
WriteParameterSet(RxdBuffer[2] - 'l' + 1, (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], RxdBuffer[2] - 'l' + 1); // aktiven Datensatz merken
Piep(GetActiveParamSetNumber());
break;
}
// DebugOut.AnzahlZyklen = Debug_Timer_Intervall;
NeuerDatensatzEmpfangen = 0;
}
 
//############################################################################
//Routine für die Serielle Ausgabe
int uart_putchar (char c)
//############################################################################
{
if (c == '\n')
uart_putchar('\r');
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(USR, UDRE);
//Ausgabe des Zeichens
UDR = c;
return (0);
}
 
// --------------------------------------------------------------------------
void WriteProgramData(unsigned int pos, unsigned char wert)
{
//if (ProgramLocation == IN_RAM) Buffer[pos] = wert;
// else eeprom_write_byte(&EE_Buffer[pos], wert);
// Buffer[pos] = wert;
}
 
//############################################################################
//INstallation der Seriellen Schnittstelle
void UART_Init (void)
//############################################################################
{
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
 
UCR=(1 << TXEN) | (1 << RXEN);
// UART Double Speed (U2X)
USR |= (1<<U2X);
// RX-Interrupt Freigabe
UCSRB |= (1<<RXCIE);
// TX-Interrupt Freigabe
UCSRB |= (1<<TXCIE);
 
//Teiler wird gesetzt
UBRR=(SYSCLK / (BAUD_RATE * 8L) - 1);
//UBRR = 33;
//öffnet einen Kanal für printf (STDOUT)
//fdevopen (uart_putchar, 0);
//sbi(PORTD,4);
Debug_Timer = SetDelay(200);
}
 
//---------------------------------------------------------------------------------------------
void DatenUebertragung(void)
{
static char dis_zeile = 0;
if(!UebertragungAbgeschlossen) return;
 
if(DebugGetAnforderung && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
{
SendOutData('G',MeineSlaveAdresse,(unsigned char *) &DebugIn,sizeof(DebugIn));
DebugGetAnforderung = 0;
}
 
if((CheckDelay(Debug_Timer) || DebugDataAnforderung) && UebertragungAbgeschlossen)
{
SendOutData('D',MeineSlaveAdresse,(unsigned char *) &DebugOut,sizeof(DebugOut));
DebugDataAnforderung = 0;
Debug_Timer = SetDelay(MIN_DEBUG_INTERVALL);
}
 
if(DebugDisplayAnforderung && UebertragungAbgeschlossen)
{
Menu();
DebugDisplayAnforderung = 0;
if(++dis_zeile == 4) dis_zeile = 0;
SendOutData('0' + dis_zeile,0,&DisplayBuff[20 * dis_zeile],20); // DisplayZeile übertragen
}
if(GetVersionAnforderung && UebertragungAbgeschlossen)
{
SendOutData('V',MeineSlaveAdresse,(unsigned char *) &VersionInfo,sizeof(VersionInfo));
GetVersionAnforderung = 0;
}
 
}
 
/branches/v0.60_MicroMag3_Nick666/trunc/uart.d
0,0 → 1,2
uart.o uart.d : uart.c main.h old_macros.h _settings.h printf_P.h compass.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h math.h
/branches/v0.60_MicroMag3_Nick666/trunc/uart.h
0,0 → 1,95
#ifndef _UART_H
#define _UART_H
 
#define MAX_SENDE_BUFF 150
#define MAX_EMPFANGS_BUFF 150
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
extern unsigned volatile char SendeBuffer[MAX_SENDE_BUFF];
extern unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
extern unsigned volatile char UebertragungAbgeschlossen;
extern unsigned volatile char PC_DebugTimeout;
extern unsigned volatile char NeueKoordinateEmpfangen;
extern unsigned char MeineSlaveAdresse;
extern unsigned char PcZugriff;
extern int Debug_Timer;
extern void UART_Init (void);
extern int uart_putchar (char c);
extern void boot_program_page (uint32_t page, uint8_t *buf);
extern void DatenUebertragung(void);
extern void DecodeNMEA(void);
extern unsigned char MotorTest[4];
struct str_DebugOut
{
unsigned char Digital[13];
unsigned int AnzahlZyklen;
unsigned int Zeit;
unsigned char Sekunden;
unsigned int Analog[16]; // Debugwerte
};
 
extern struct str_DebugOut DebugOut;
 
struct str_Debug
{
unsigned char Digital[2];
unsigned char RemoteTasten;
unsigned int Analog[4];
};
extern struct str_Debug DebugIn;
 
struct str_VersionInfo
{
unsigned char Hauptversion;
unsigned char Nebenversion;
unsigned char PCKompatibel;
unsigned char Rserved[7];
};
extern struct str_VersionInfo VersionInfo;
 
//Die Baud_Rate der Seriellen Schnittstelle ist 9600 Baud
//#define BAUD_RATE 9600 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 14400 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 28800 //Baud Rate für die Serielle Schnittstelle
//#define BAUD_RATE 38400 //Baud Rate für die Serielle Schnittstelle
#define BAUD_RATE 57600 //Baud Rate für die Serielle Schnittstelle
 
//Anpassen der seriellen Schnittstellen Register wenn ein ATMega128 benutzt wird
#if defined (__AVR_ATmega128__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICRB
#endif
 
#if defined (__AVR_ATmega32__)
# define USR UCSRA
# define UCR UCSRB
# define UBRR UBRRL
# define EICR EICRB
# define INT_VEC_RX SIG_UART_RECV
# define INT_VEC_TX SIG_UART_TRANS
#endif
 
#if defined (__AVR_ATmega644__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICR0B
# define TXEN TXEN0
# define RXEN RXEN0
# define RXCIE RXCIE0
# define TXCIE TXCIE0
# define U2X U2X0
# define UCSRB UCSR0B
# define UDRE UDRE0
# define INT_VEC_RX SIG_USART_RECV
# define INT_VEC_TX SIG_USART_TRANS
#endif
 
 
#endif //_UART_H
/branches/v0.60_MicroMag3_Nick666/trunc/version.txt
0,0 → 1,49
 
-------
V0.53 27.04.2007 H.Buss
- erste öffentliche Version
 
V0.53b 29.04.2007 H.Buss
- der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft
 
V0.53c 29.04.2007 H.Buss
- es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind.
Die angezeigten Werte waren nicht die Werte der Funke
 
V0.54 01.05.2007 H.Buss
- die Paramtersätze können jetzt vor dem Start ausgewählt werden
Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt:
2 3 4
1 x 5
- - -
Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw.
- der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt
 
V0.55 14.05.2007 H.Buss
- es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden
 
V0.56 14.05.2007 H.Buss
- es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren
- Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen
V0.57 24.05.2007 H.Buss
- Der Höhenregler kann nun auch mittels Schalter bedient werden
- Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat
- Kompass-Einfluss dämpfen bei Neigung
- Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen
- Der Motortest vom Kopter-Tool geht jetzt
- Man kann den Parametersätzen einen Namen geben
- Das Kamerasetting ist unter Setting 2 defaultmässig integriert
V0.58 30.05.2007 H.Buss
- Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist
 
V0.60 17.08.2007 H.Buss
- "Schwindel-Bug" behoben
- Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft
- Poti4 zugefügt
- Es werden jetzt 8 Kanäle ausgewertet
- Kamera-Servo (an J7)
- Die Settings müssen überschrieben werden