/branches/v0.60_MicroMag3_Nick666/license_buss.txt |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/COPYING.LESSER |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/uart.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/old_macros.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/_Settings.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/gps.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/rc.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/rc.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/flight.pnps |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/version.txt |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/GPS.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/analog.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/analog.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/printf_P.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/Flight-Ctrl_MEGA644_V0_60_MM3.hex |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/printf_P.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/README.pdf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/branches/v0.60_MicroMag3_Nick666/twimaster.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/uart.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/version.txt |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/v0.66c/COPYING.LESSER |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/main.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/twimaster.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/old_macros.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/main.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/GPS.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/makefile |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/timer0.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/flight.pnproj |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/v0.66c/compass.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/timer0.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/compass.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/flight.pnps |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/v0.66c/printf_P.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/README.pdf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/branches/v0.60_MicroMag3_Nick666/v0.66c/printf_P.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/COPYING |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/eeprom.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/eeprom.d |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/fc.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/fc.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/gps.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/mymath.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/analog.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/FlightCtrl.aps |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/menu.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/mymath.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/_Settings.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/rc.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/analog.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/rc.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/menu.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/license_buss.txt |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/uart.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/v0.66c/twimaster.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/COPYING |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/flight.pnproj |
---|
File deleted |
\ No newline at end of file |
/branches/v0.60_MicroMag3_Nick666/twimaster.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/main.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/timer0.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/timer0.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/menu.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/compass.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/main.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/math.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/menu.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/compass.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/math.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/fc.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/fc.h |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/makefile |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/uart.c |
---|
File deleted |
/branches/v0.60_MicroMag3_Nick666/V0.67g/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/V0.67g/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/V0.67g/Flight-Ctrl_MEGA644_V0_67g.hex |
---|
0,0 → 1,2005 |
:100000000C94C3030C94E0030C94E0030C94E00301 |
:100010000C94E0030C94E0030C94E0030C94E003D4 |
:100020000C94E0030C94E40C0C94E0030C94E003B7 |
:100030000C9442160C94E0030C94E0030C94E0033F |
:100040000C94E0030C94E0030C94870D0C94173788 |
:100050000C9488060C94E0030C9452060C94E00374 |
:100060000C942F0E0C94E0030C9480150C94E00378 |
:100070002109D9092D09D909D909D9096F094009D7 |
:10008000D909D90962099B099B099B099B099B090D |
:100090007309D909D9095B09D9096B09590E6E0E83 |
:1000A000770E810E9E0EB60ECF0EEC0E090F260FA8 |
:1000B000F40F3E118611E7113D1291121513BC1376 |
:1000C000121436146C14A814E6141F1599159E15F5 |
:1000D000AF15BD15CA15C215CA15DE150A0A0D00E1 |
:1000E0004E65757472616C0048656164696E67483D |
:1000F0006F6C64000A0D537465756572756E673AAE |
:1001000020004F4B0A0D000A0D4162676C65696360 |
:1001100068204C756674647275636B73656E736F7B |
:10012000722E2E000A0D4B616C69627269657265F0 |
:10013000204B6F6D70617373000A0D42656E7574AC |
:100140007A6520506172616D657465727361747A4D |
:10015000202564000A0D414343206E6963687420C2 |
:1001600061626765676C696368656E21000A0D49A5 |
:100170006E69742E20454550524F4D3A2047656EAA |
:100180006572696572652044656661756C742D5091 |
:100190006172616D657465722E2E2E000A0D3D3DF3 |
:1001A0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D7F |
:1001B0003D3D3D3D3D3D3D3D3D3D3D3D000A0D4606 |
:1001C0006C69676874436F6E74726F6C0A0D486176 |
:1001D0007264776172653A25642E25640A0D536F47 |
:1001E0006674776172653A5625642E25642563200E |
:1001F000002E005A5F52616E67653A2020253469EF |
:1002000000595F52616E67653A20202534690058B5 |
:100210005F52616E67653A2020253469004D4D3389 |
:100220002052616E6765005A5F4F66667365743A67 |
:10023000202025336900595F4F66667365743A2044 |
:100240002025336900585F4F66667365743A202035 |
:10025000253369004D4D33204F66660052616E674D |
:10026000653A2533692D253369005374656C6C75C7 |
:100270006E673A2025336900536574706F696E7438 |
:10028000202025336900536572766F202000506F5F |
:100290007469343A202025336900506F7469333A09 |
:1002A000202025336900506F7469323A20202533AD |
:1002B0006900506F7469313A202025336900537406 |
:1002C0006172743A2020202020253569004D657325 |
:1002D00073776572743A2020253569005269636826 |
:1002E00074756E673A2020253569004B6F6D70611B |
:1002F00073732020202020202000456D70662E5032 |
:100300006567656C3A253569005370616E6E756E70 |
:10031000673A202025356900486F636820253469D5 |
:1003200020282533692900526F6C6C202534692000 |
:100330002825336929004E69636B202534692028FC |
:100340002533692900414343202D2053656E736F87 |
:100350007200476965722025346920282533692990 |
:1003600000526F6C6C2025346920282533692900E0 |
:100370004E69636B2025346920282533692900479D |
:100380006965722025346920282533692900526F58 |
:100390006C6C20253469202825336929004E696357 |
:1003A0006B20253469202825336929004779726F2D |
:1003B000202D2053656E736F720050333A253469D7 |
:1003C000202050343A253469200050313A253469D0 |
:1003D000202050323A253469200047733A25346989 |
:1003E000202047693A25346920004E693A2534694E |
:1003F0002020526F3A25346920004B373A25346962 |
:1004000020204B383A25346920004B353A25346991 |
:1004100020204B363A25346920004B333A25346985 |
:1004200020204B343A25346920004B313A25346979 |
:1004300020204B323A25346920004B6F6D70617378 |
:10044000733A20202025356900526F6C6C3A2020C9 |
:1004500020202020253569004E69636B3A2020203A |
:1004600020202025356900616B742E204C61676562 |
:100470000048F668656E726567656C756E67004B5F |
:1004800065696E6520004F66662020202020203A96 |
:1004900020253569004C756674647275636B3A206B |
:1004A00025356900536F6C6C486F6568653A202587 |
:1004B000356900486F6568653A2020202020253581 |
:1004C000690028632920486F6C6765722042757344 |
:1004D000730053657474696E673A20256420004880 |
:1004E000573A5625642E25642053573A25642E2505 |
:1004F000642563002B2B204D696B726F4B6F7074FA |
:100500006572202B2B005B25695D0000010203054D |
:10051000060708090A0B0C0D0F10111213141516FB |
:100520001718191A1B1B1C1D1E1F202121222324F2 |
:1005300025252627272829292A2B2B2C2C2D2E2E22 |
:100540002F2F303031313232333334343435353685 |
:10055000363637373838383939393A3A3A3B3B3B0F |
:100560003C3C3C3C3D3D3D3D3E3E3E3E3F3F3F3FB3 |
:100570004040404041414141414242424242434366 |
:100580004343434344444444444445454545454529 |
:1005900045464646464646464647474747474747F5 |
:1005A00047484848484848484848494949494949C6 |
:1005B000494949494A4A4A4A4A4A4A4A4A4A4A4A9F |
:1005C0004B4B4B4B4B4B4B4B4B4B4B4B4B4C4C4C78 |
:1005D0004C4C4C4C4C4C4C4C4C4C4C4C4D4D4D4D57 |
:1005E0004D4D4D4D4D4D4D4D4D4D4D4D4D4E4E4E38 |
:1005F0004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E1B |
:100600004E4F4F4F4F4F4F4F4F4F4F4F4F4F4F4FFB |
:100610004F4F4F4F4F4F4F4F4F0000000056F88E37 |
:100620003CC7F20E3D465E563D7FDC8E3DB07EB24D |
:100630003D0A13D63D9D96F93D65830E3E5E302002 |
:100640003ED5D0313E6F63433ECEE6543E8E596672 |
:100650003E60BA773EED83843E55208D3EBEB19517 |
:100660003E7A379E3EDDB0A63E421DAF3EFF7BB7D1 |
:100670003E70CCBF3EE80DC83EC83FD03E6A61D850 |
:100680003E2D72E03E7171E83E925EF03EF738F822 |
:100690003E0000003F89D9033FCBA8073F766D0B92 |
:1006A0003F44270F3FE7D5123F1779163F8C101AAA |
:1006B0003FFE9B1D3F241B213FBA8D243F7CF32727 |
:1006C0003F254C2B3F71972E3F22D5313FF4043507 |
:1006D0003FA726383FFF393B3FBD3E3E3FA6344152 |
:1006E0003F7C1B443F09F3463F12BB493F60734CBC |
:1006F0003FBD1B4F3FF2B3513FCF3B543F1EB3565C |
:100700003FAE19593F516F5B3FD7B35D3F14E75F71 |
:100710003FDB08623F0119643F5D17663FCA03680B |
:100720003F1DDE693F34A66B3FEB5B6D3F20FF6EE4 |
:100730003FB28F703F820D723F7078733F63D07409 |
:100740003F3F15763FEA46773F4D65783F527079D7 |
:100750003FE2677A3FEC4B7B3F5C1C7C3F24D97CBB |
:100760003F36827D3F80177E3FFD987E3F9E067F0D |
:100770003F5B607F3F2FA67F3F13D87F3F05F67F0B |
:100780003F0000803F0011241FBECFEFD0E1DEBF4D |
:10079000CDBF13E0A0E0B1E0E2E8FAE702C00590C7 |
:1007A0000D92A23AB107D9F717E0A2EAB3E001C06F |
:1007B0001D92A13CB107E1F70E9420040C94403D3A |
:1007C0000C94000022E030E0D9010E94223D802DEF |
:1007D000863028F082E0D901082E0E942F3D99270B |
:1007E0000895FB01863008F085E0282F2150842FE2 |
:1007F0009927A6E42A9FD0011124A65FBF4F019735 |
:1008000024F001900E942F3DFACFA2E0B0E0022E2A |
:100810000E942F3D0895FB01282F863008F025E027 |
:10082000842F99272150A6E42A9FD0011124A65F86 |
:10083000BF4F019724F00E94223D0192FACF089504 |
:100840001F93CF93DF9314B815B8189B02C08BE0A9 |
:1008500001C08AE08093000181E887B98FEF88B9F1 |
:100860008BE184B981E085B98EE38AB9579A87EF25 |
:100870008BB984B7877F84BF809160008861809343 |
:1008800060001092600080ED97E09093C103809328 |
:10089000C003109254041092530410920A0710924D |
:1008A00009071092520410925104109250041092B1 |
:1008B0004F04809100018A3011F4289801C0289AD1 |
:1008C0000E94B10C0E9458080E942D160E94290E09 |
:1008D0000E9466150E94BD3978941092080683E440 |
:1008E0008093090687E080930A062091000187E63D |
:1008F00090E09F938F9383E490E09F938F931F9258 |
:100900001F92822F6AE00E94753C892F99279F933E |
:100910008F93822F0E94753C99279F938F938DEB25 |
:1009200091E09F938F931F920E94380A8CE991E087 |
:100930009F938F931F920E94380A299AA1E0B0E0FA |
:100940000E94223D802D2DB73EB7205F3F4F2DBF27 |
:10095000843409F43FC08DE691E09F938F931F92FA |
:100960000E94380A0E94642310E00F900F900F90AD |
:10097000123049F40E94D22246E461E377E082E03B |
:100980000E94F10302C0133051F40E94412246E458 |
:1009900061E377E083E00E94F10314E002C01430C9 |
:1009A00010F00E94D22246E461E377E0812F0E949A |
:1009B000F1031F5F1630E0F283E022E030E0D9015E |
:1009C000082E0E942F3D84E421503040D901082E8A |
:1009D0000E942F3DC4E0D0E0DE010E94223D802D28 |
:1009E000853050F084E591E09F938F931F920E9491 |
:1009F000380A0F900F900F902297DE010E94223D3F |
:100A0000802D863028F082E0DE01082E0E942F3DE6 |
:100A100046E461E377E00E940B04DE010E94223D80 |
:100A2000802D863028F082E0DE01082E0E942F3DC6 |
:100A300099279F938F9389E391E09F938F931F92C0 |
:100A40000E94380A84EF91E00E94CF0CEC010F90D5 |
:100A50000F900F900F900F90CE010E94D80C88231A |
:100A6000D9F3E0913307FF27EE0FFF1FEB5FF84F3D |
:100A70008081918185369105C4F0E0913407FF278C |
:100A8000EE0FFF1FEB5FF84F808191818536910556 |
:100A900064F084E291E09F938F931F920E94380A42 |
:100AA0000E94F1380F900F900F908091390780FFCE |
:100AB00020C087E091E09F938F931F920E94380A95 |
:100AC00088EE93E00E94CF0CEC010E9495100F90ED |
:100AD0000F900F90CE010E94D80C8823D9F382E0AA |
:100AE00091E09F938F931F920E94380A0F900F906E |
:100AF0000F900E94D320809100018A3011F4289831 |
:100B000001C0289A80ED97E09093C1038093C003C1 |
:100B100088EE93E0909303068093020685E5809328 |
:100B2000FD0584EF90E09F938F931F920E94380AF7 |
:100B3000809139070F900F900F9082FF03C088EECD |
:100B400090E002C080EE90E09F938F931F920E94EE |
:100B5000380A0F900F900F908CED90E09F938F9339 |
:100B60001F920E94380A0E94D91088E893E190935E |
:100B70008603809385030F900F900F908091BF03A1 |
:100B8000882309F462C01092BF030E94F5230E94DB |
:100B90008C20209100012A3011F4289801C0289A55 |
:100BA00080910301882321F081508093030110C0BC |
:100BB0001092B2031092B30310926F0410926E045D |
:100BC00010927104109270041092730410927204C7 |
:100BD00080914E04882329F080914E0481508093A7 |
:100BE0004E048091850390918603892B01F585E061 |
:100BF00090E090938603809385030E94071680916E |
:100C00000403909105038F5F9F4FF9F48091550481 |
:100C10008823D9F080E197E29093C1038093C003C9 |
:100C200080E890E090930503809304030EC08091C8 |
:100C300085039091860301979093860380938503A3 |
:100C40002A3011F4289801C0289A0E9473080E9443 |
:100C50000309CE010E94D80C882309F48FCF20917C |
:100C6000080330910903809149079927281739070C |
:100C70009CF480910403909105038F5F9F4F61F472 |
:100C800080E797E19093C1038093C00380E093E0F5 |
:100C9000909305038093040384E690E00E94CF0CB8 |
:100CA000EC016CCF1F920F920FB60F9211248F930D |
:100CB0009F93EF93FF93809101018823E1F480914A |
:100CC000BB039091BC0301969093BC038093BB033C |
:100CD000FC01E153FB4FE081ED3019F086399105BD |
:100CE00039F41092BC031092BB0381E080930101A0 |
:100CF000E093C60004C01092BC031092BB03FF91A6 |
:100D0000EF919F918F910F900FBE0F901F901895AC |
:100D10001F920F920FB60F9211242F933F934F9370 |
:100D20008F939F93AF93BF93CF93DF93EF93FF93F3 |
:100D30008091C6008093A6034091B603463910F017 |
:100D40001092B5038091A6038D3009F05CC08091AC |
:100D5000B503823009F057C01092B503A42FBB270A |
:100D6000FD01E05FF94F3081ED01CF5ED94F288161 |
:100D70008091B9039091BA03831B9109821B910959 |
:100D80009F709093BA038093B9039C0196E03695C7 |
:100D900027959A95E1F7235C2093B803982F9F73CA |
:100DA000935C9093B7038081281729F48881981762 |
:100DB00011F491E006C08091A9038F5F8093A9038D |
:100DC00090E08091A703882309F064C0992309F477 |
:100DD00061C081E08093A7034093AA03AE5EB94F40 |
:100DE0008DE08C9380911406823509F053C088E120 |
:100DF00090E02CE00FB6F894A895809360000FBEA9 |
:100E00002093600047C08091B5038130D9F08130D4 |
:100E100018F08230E9F530C08091A603833239F4AE |
:100E20008091A703882319F481E08093B503809112 |
:100E3000A6038093120681E08093B6038091A603F7 |
:100E4000992715C082E08093B503E42FFF27809196 |
:100E5000A603EE5EF94F80834F5F4093B603209167 |
:100E6000A6038091B9039091BA03820F911D9093CC |
:100E7000BA038093B9030EC0E42FFF278091A60325 |
:100E8000EE5EF94F8083463938F31092B503E7CF11 |
:100E90001092B503FF91EF91DF91CF91BF91AF9188 |
:100EA0009F918F914F913F912F910F900FBE0F9077 |
:100EB0001F901895DC0120E030E040E050E0EFECBE |
:100EC000F4E005C08191280F311D4F5F5F4F4A1735 |
:100ED0005B07C1F73F70C90136E0969587953A9553 |
:100EE000E1F7835CFD01E153FB4F808311962F7383 |
:100EF000235CFD01E153FB4F2083A053BB4F8DE0EA |
:100F00008C93109201018091CF048093C6000895C4 |
:100F1000EF92FF920F931F93CF93DF937A01722F7B |
:100F200093E29093CF046093D0048093D10403E0C4 |
:100F300010E060E0A2EDB4E046C0F701E60FF11D5D |
:100F400090816F5F715019F4E0E040E00FC0F7014D |
:100F5000E60FF11D40816F5F715011F4E0E006C0B3 |
:100F6000F701E60FF11DE0816F5F7150892F8695C3 |
:100F70008695835C8C935527892F99278370907071 |
:100F800024E0880F991F2A95E1F79A0194E036959D |
:100F900027959A95E1F7822B835CED0189834F7049 |
:100FA0005070440F551F440F551F8E2F8295869504 |
:100FB00086958370842B835C8A83EF73E35CEB8379 |
:100FC0000C5F1F4F1496772309F0B7CFC8010E941A |
:100FD0005A07E6E0CDB7DEB70C940D3D1F93CF93D3 |
:100FE000DF93EC0170E0A22FBB27129748C0E42FDB |
:100FF000FF27EE5EF94F30814F5FE42FFF27EE5E53 |
:10100000F94F50814F5FE42FFF27EE5EF94F1081BB |
:101010004F5FE42FFF27EE5EF94F20814F5F842F53 |
:101020009927A817B90774F15D53FE01E70FF11D69 |
:101030003D53330F330F852F82958F70382B3083BC |
:10104000613001F1912F9D537F5FFE01E70FF11D8C |
:1010500071505295507F892F86958695582B5083D5 |
:1010600063506F3F79F07E5FFE01E70FF11D9295AF |
:10107000990F990F907C2D53922B90837F5F66235D |
:1010800009F0B5CFDF91CF911F9108951F93182FCD |
:101090008A3019F48DE00E9446088091C00085FFD7 |
:1010A000FCCF1093C60080E090E01F910895089552 |
:1010B000E1ECF0E088E18083A0ECB0E08C9182600C |
:1010C0008C938081806880838081806480838AE2C1 |
:1010D0008093C40088EC90E00E94CF0C9093FC05B4 |
:1010E0008093FB05089580910101882309F48AC04B |
:1010F0008091A203882371F080910101882351F02F |
:101100002BE04DEF55E06091CE0487E40E94880704 |
:101110001092A2038091FB059091FC050E94D80CCF |
:10112000882321F48091A4038823B1F080910101E8 |
:10113000882391F022E448EA56E06091CE0484E4EA |
:101140000E9488071092A40384EF91E00E94CF0CC4 |
:101150009093FC058093FB05609102016F3F89F03D |
:10116000462F552734E0440F551F3A95E1F74C5F61 |
:101170005E4F605D20E181E40E9488078FEF8093DD |
:1011800002018091A303882359F1809101018823F2 |
:1011900039F10E94E2101092A3033091AC03932F17 |
:1011A0009F5F9093AC03943021F08091AD0388232E |
:1011B00059F026E145E057E060E084E30E948807AB |
:1011C0008FEF8093AC030CC044E1949FA0011124E5 |
:1011D000465E5C4F24E160E0832F8F5C0E948807AD |
:1011E0008091A503882371F080910101882351F03B |
:1011F0002AE048E056E06091CE0486E50E94880728 |
:101200001092A5030895A2E0B0E0E9E0F9E00C94A3 |
:10121000F43C8091A703882309F4CDC08FEF80931D |
:101220000301809114069927AA27BB27FC01E156E8 |
:10123000F040E631F10508F0BCC0E85CFF4F0C94CB |
:101240001C3D2091AA0343E062E0CE0101960E947A |
:10125000EE07898180930201ACC02091AA0343E08C |
:101260006BE08DEF95E00E94EE078091E603909190 |
:10127000FF05892B8093E60381E08093A40399C046 |
:101280002091AA0343E062E0CE0101960E94EE079E |
:101290008091E6039981892B8093E6038A818F3FB1 |
:1012A00021F481E08093AD0302C01092AD0381E090 |
:1012B0008093A3037EC02091AA0343E064E08EEAFA |
:1012C00093E006C02091AA0343E063E082EB93E041 |
:1012D0000E94EE076EC081E08093A5036AC081E0A2 |
:1012E0008093A20366C02091AA0343E062E0CE018E |
:1012F00001960E94EE0789818F3F89F0863010F0B9 |
:1013000085E0898346E461E377E089810E940B04EC |
:10131000898126E441E357E06091CE0408C0109132 |
:10132000CE040E94E20326E441E357E0612F855B8F |
:101330000E9488073EC02091AA0343E066E481E34F |
:1013400097E00E94EE078091140646E461E377E09F |
:101350008B560E94F103809114068B56A2E0B0E0F8 |
:10136000082E0E942F3D60915C07772788279927D8 |
:1013700024EC39E040E050E00E94563C6093870343 |
:10138000709388038093890390938A0360915D072B |
:101390007727882799270E94563C60938B03709388 |
:1013A0008C0380938D0390938E030E94E2030E942E |
:1013B0002C221092A703E3E0CE5F0C94103D982FEF |
:1013C0008091EA06813069F48091E503E82FFF27D8 |
:1013D000E65EFC4F90838F5F8093E50321E030E071 |
:1013E00005C0892F0E944608282F3327C901089578 |
:1013F0001F93182F04C080E30E94DF0911501116BB |
:10140000D4F31F9108951F93182F04C080E20E9407 |
:10141000DF0911501116D4F31F9108950F931F93F4 |
:10142000CF93DF938C01EB0108C0F8010F5F1F4FD2 |
:10143000E4918E2F0E94DF0921972097B1F7DF9169 |
:10144000CF911F910F9108950F931F93CF93DF9327 |
:101450008C01EB0106C0F80181918F010E94DF0928 |
:1014600021972097C1F7DF91CF911F910F91089598 |
:10147000A3E3B0E0EEE3FAE00C94E53C29968FADEF |
:1014800029978093EA06CE01855B9F4F9D838C83CD |
:101490002B968EAD9FAD2B979FA78EA7222433242A |
:1014A000210102C0130124010EA51FA502C00F5F78 |
:1014B0001F4FF801F490FF2019F0F5E2FF16B9F77D |
:1014C000B8018EA59FA5681B790B11F00E940E0A2A |
:1014D000FF2009F442C20F5F1F4F1FA70EA71982FA |
:1014E000AC81BD811BAA1AAA9FEF99ABEEA5FFA5FF |
:1014F000CF0101969FA78EA7B49095E7B91621F06A |
:101500008B2D8062883789F4EBA9E0FF07C02D900E |
:101510003D904D905C901397149607C08D919C91CF |
:1015200011971C01442455241296F0E2BF1621F4B1 |
:1015300089818823D9F685C083E2B81609F483C06F |
:101540009AE2B91621F0EDE2BE1669F408C0FD0179 |
:101550001296E081EAABE7FFC9CFE195EAABFBA9C0 |
:10156000F061FF7D72C08BE2B81609F46AC09EE29A |
:10157000B916B1F52EA53FA52F5F3F4FEEA5FFA5EC |
:1015800084918A3221F0B82E20E030E01BC0FD01AA |
:1015900012964081518157FF02C04FEF5FEF49AB78 |
:1015A0003FA72EA7A3CFC90103E0880F991F0A9573 |
:1015B000E1F7220F331F280F391F2B0D311D205348 |
:1015C0003040B49031968B2D80538A3060F3FFA762 |
:1015D000EEA7A90137FF02C04FEF5FEF49AB8DCFF8 |
:1015E000F0E3BF1631F48BA984FD80CF80628BAB12 |
:1015F0007DCF8B2D81538930E8F420E030E0C901A4 |
:10160000F3E0880F991FFA95E1F7220F331F280F97 |
:10161000391F2B0D311D20533040EEA5FFA5CF0102 |
:1016200001969FA78EA7B4908B2D80538A3038F3F4 |
:101630002AAB63CF98E6B91651F4EBA9E460EBABA3 |
:1016400055CFB98253CFFBA9F860FBAB4FCF8CE6E7 |
:10165000B81621F49BA991609BAB48CFBD83AC83A6 |
:10166000E3E6BE1639F41296BD83AC8312978C91D3 |
:101670008E8318C1F4E4BF1639F084E6B81639F049 |
:1016800099E6B91659F503C0EBA9E160EBABFBA9EC |
:10169000F0FF08C01496BD83AC835E904E903E90E0 |
:1016A0002E900AC01296BD83AC839E918E911C0130 |
:1016B000442437FC4094542C57FC03C08AE088AB88 |
:1016C00092C05094409430942094211C311C411CB1 |
:1016D000511C8DE289839AE098AB85C0EFE4BE1679 |
:1016E00029F0FFE6BF1639F488E061C09BA991603C |
:1016F0009BABE8E056C0F0E7BF1671F41296BD83CD |
:10170000AC839E918E911C01442455248BA9806446 |
:101710008BAB78E7B72E5EC0E3E7BE16D9F512961D |
:10172000BD83AC83DE90CE90C114D10489F488E2ED |
:101730008E838EE68F8385E788878CE689878A8704 |
:1017400089E28B871C8666E0C62ED12CCC0EDD1E6E |
:10175000F9A9F7FD13C04F2F552747FD509560E0BD |
:1017600070E0C6010E94E13A009711F419A90DC07A |
:101770008C1919A981174CF4182F07C0F601019094 |
:101780000020E9F731971E2F1C19198242013101FF |
:1017900040E094C085E5B81631F095E7B91649F4F4 |
:1017A000EAE0E8AB1FC0FBA9F160FBAB8AE088ABC5 |
:1017B00019C098E5B91621F0E8E7BE1609F06EC029 |
:1017C000FBA9F3FD02C080E1F2CF211431044104F2 |
:1017D000510419F490E198AB05C0EBA9E064EBABC0 |
:1017E000F0E1F8AB198289A987FD03C09BA99F7D11 |
:1017F0009BAB211431044104510461F4E9A9EE23A7 |
:1018000049F46624772443015EE2C52ED12CCC0E28 |
:10181000DD1E3EC04EE2C42ED12CCC0EDD1EF8A93A |
:10182000EF2EFF2400271127C201B101A801970163 |
:101830000E94A83C6A3020F430E3A32EA60E08C014 |
:1018400027E5A22EA60E88E5B81611F49FEDA92271 |
:10185000F601A2926F01C201B101A80197010E9495 |
:10186000A83C39014A012E143F044006510618F0E5 |
:1018700019012A01D9CFF8A9F83051F48BA983FFB7 |
:1018800007C090E3A91621F080E3F60182936F016F |
:10189000CE018C19182F125D49A910C0BB2009F484 |
:1018A0005CC0BE8219824201310100E096E0C92E7F |
:1018B000D12CCC0EDD1E11E021E005C0212F042F1C |
:1018C000011B07FD00E08981882319F0812F8F5FBC |
:1018D00007C09BA996FD02C0812F02C0822F8E5F98 |
:1018E000A82EA00EEBA9EE2EFF2480E3482E512C4B |
:1018F0004E205F204114510421F48AA98A190E94C4 |
:10190000030A8981882329F061E070E0CE01019605 |
:1019100009C0E6FE09C080E38A83BB8262E070E012 |
:10192000CE0102960E94240AF0E24F16510421F4DF |
:101930008AA98A190E94F809802F0E94F809612F4C |
:10194000772767FD7095C6010E94240AE4FEAACDA0 |
:101950008AA98A190E94030AA5CDE2E1CD5C0C9404 |
:10196000013D82E085BD83EA84BD17BC88E788BD60 |
:1019700096E096BD83EC8093B0009093B100E0E7D1 |
:10198000F0E0808182608083EEE6F0E0808181601B |
:1019900080838AE08093B3001092B2000895209172 |
:1019A000BD033091BE032F5F3F4F820F931F0895F9 |
:1019B0002091BD033091BE03821B930B892F992781 |
:1019C00086958074992708951F920F920FB60F92F3 |
:1019D0001124EF92FF920F931F932F933F934F93F6 |
:1019E0005F936F937F938F939F93AF93BF93CF93A7 |
:1019F000DF93EF93FF93809106038150809306035A |
:101A00008F3F09F069C083E88093B00080919C0308 |
:101A1000C82FDD27D093C303C093C203809166070C |
:101A2000E090530720910104309102044091030497 |
:101A30005091040480FF18C0FF2400271127CA0119 |
:101A4000B90120E830E040E050E00E94CA3CC80103 |
:101A5000B7010E94563C20E032E040E050E00E9496 |
:101A6000CA3CC20FD31F17C0FF2400271127CA0189 |
:101A7000B90120E830E040E050E00E94CA3CC801D3 |
:101A8000B7010E94563C20E032E040E050E00E9466 |
:101A9000CA3CC21BD30BD093C303C093C203209193 |
:101AA000C2033091C303809154079927281739073F |
:101AB00034F08091550799278217930724F4909367 |
:101AC000C3038093C2038091C2038093B3008091CB |
:101AD00056078093060304C083E08093B0005F98AC |
:101AE000FF91EF91DF91CF91BF91AF919F918F9136 |
:101AF0007F916F915F914F913F912F911F910F9126 |
:101B0000FF90EF900F900FBE0F901F9018951F92AF |
:101B10000F920FB60F9211242F933F934F935F9321 |
:101B20006F937F938F939F93AF93BF93EF93FF93A5 |
:101B30008091C40381508093C4038F3FB9F48AE03D |
:101B40008093C403809107038F5F817080930703A4 |
:101B5000882319F481E08093BF038091BD039091A5 |
:101B6000BE0301969093BE038093BD038091C00392 |
:101B70009091C1030297B0F08091C0039091C1038E |
:101B800001979093C1038093C0038091C00390910B |
:101B9000C103209104033091050382239323892BF1 |
:101BA000D1F406C08FEF9FEF909305038093040359 |
:101BB000809100018A3039F404C05A9A05C0479ACE |
:101BC00003C05A9801C047988091390783FF08C025 |
:101BD0000E94BF3805C0809100018A3081F7EDCFA7 |
:101BE000FF91EF91BF91AF919F918F917F916F91F5 |
:101BF0005F914F913F912F910F900FBE0F901F90CB |
:101C000018952091BD033091BE032F5F3F4F280FE1 |
:101C1000391F4FEE02C040937A008091BD0390912E |
:101C2000BE03B901681B790B77FFF5CF08952091AA |
:101C3000BD033091BE032F5F3F4F280F391F8091A6 |
:101C4000BD039091BE03A901481B590B57FFF7CF65 |
:101C5000089510927C008FEE80937A0008951F9271 |
:101C60000F920FB60F921124DF92EF92FF920F9313 |
:101C70001F932F933F934F935F936F937F938F9314 |
:101C80009F93AF93BF93CF93DF93EF93FF93109204 |
:101C90007A008091E103D82ED394D092E103E82F0B |
:101CA000FF27EB30F10508F022C2E25BFF4F0C94F6 |
:101CB0001C3D80917800909179009093E00380938F |
:101CC000DF0381E08093E2038091D9039091DA03EE |
:101CD00001969093DA038093D903FFC18091780035 |
:101CE000909179009093DE038093DD0390C0809102 |
:101CF0007800909179009093DC038093DB0384E07B |
:101D000070C140910803509109038091780090912F |
:101D100079009A01220F331F240F351F63E070E012 |
:101D20000E94813C260F371F3695279536952795BB |
:101D3000309309032093080386E053C18091FB038D |
:101D40009091FC032091780030917900821B930BD5 |
:101D50009093EC068093EB068091EB069091EC0655 |
:101D60009093CC038093CB0387E03BC180917800B4 |
:101D7000909179002091F9033091FA03821B930B23 |
:101D80009093F7068093F6068091F6069091F706F9 |
:101D90009093CE038093CD031092E2039EC1809175 |
:101DA00000012091DF033091E0038A3049F48091F3 |
:101DB000780090917900820F931F9695879506C0C1 |
:101DC0008091780090917900820F931F9093CA03BD |
:101DD0008093C90381E005C1809100012091DD035A |
:101DE0003091DE038A3049F4809178009091790037 |
:101DF000820F931F9695879506C0809178009091E9 |
:101E00007900820F931F9093C8038093C70382E0E9 |
:101E1000E8C0809100012091DB033091DC038A301F |
:101E200049F48091780090917900820F931F9695E4 |
:101E3000879506C08091780090917900820F931F5A |
:101E40009093C6038093C50385E0CBC06091780072 |
:101E500070917900E090FD03F090FE030091FF0384 |
:101E600010910004882777FD8095982F0E94943B5D |
:101E7000A80197010E94EE3A0E94773B7093D0032D |
:101E80006093CF032091CF033091D003E091EB0614 |
:101E9000F091EC068091F6069091F70697FF03C04B |
:101EA000909581959F4F64E070E00E94953CEB0116 |
:101EB000CF01F7FF03C0909581959F4F64E070E0DC |
:101EC0000E94953C260F371F2C0F3D1F3093D003E7 |
:101ED0002093CF038091CF039091D003029704F118 |
:101EE0006091FD037091FE038091FF0390910004C7 |
:101EF00020E030E048E454E40E949E3B88230CF04C |
:101F00003CC06091FD037091FE038091FF039091AE |
:101F100000042AE037ED43EA5CE30E94EF3A25C073 |
:101F20008091CF039091D0038F5F9F4F34F56091E4 |
:101F3000FD037091FE038091FF039091000420E067 |
:101F400030E046E154E40E94A13B1816B4F46091DD |
:101F5000FD037091FE038091FF03909100042AE03D |
:101F600037ED43EA5CE30E94EE3A6093FD03709321 |
:101F7000FE038093FF039093000481E08093D603D7 |
:101F800080917800909179009093EE068093ED0611 |
:101F9000E090CF03F090D0030027F7FC0095102FBE |
:101FA0008091390490913A04A0913B04B0913C0493 |
:101FB000E80EF91E0A1F1B1FC801B70120E034E01C |
:101FC00040E050E00E94CA3CE21AF30A040B150BF1 |
:101FD000E0923904F0923A0400933B0410933C04DD |
:101FE00083E08093E20379C08091FB069091FC0628 |
:101FF0002091780030917900820F931F9093FC0616 |
:102000008093FB068091F3068F5F8093F3068091A7 |
:10201000F306853008F46BC08091780090917900C8 |
:1020200090930F0380930E031092F3068091EF06B6 |
:102030009091F0062091FB063091FC06821B930BD9 |
:102040002091560430915704821B930B9093D80330 |
:102050008093D7036091FB067091FC06E0900A0321 |
:10206000F0900B0300910C0310910D03882777FD6E |
:102070008095982FA8019701220F331F441F551FE9 |
:102080002E0D3F1D401F511F620F731F841F951F90 |
:1020900024E030E040E050E00E94CA3C20930A0374 |
:1020A00030930B0340930C0350930D032091EF06E4 |
:1020B0003091F00680910A0390910B03A0910C03DC |
:1020C000B0910D03281B390B30935704209356040D |
:1020D0001092FC061092FB060AC08091E2038093E6 |
:1020E0007C00DD2051F08FEE80937A0006C01092C4 |
:1020F000E2031092E10310927C00FF91EF91DF91D7 |
:10210000CF91BF91AF919F918F917F916F915F918F |
:102110004F913F912F911F910F91FF90EF90DF9082 |
:102120000F900FBE0F901F901895CF93DF93A3E0F1 |
:10213000B0E00E94223D802DC82FDD27C531D1059A |
:1021400008F02A97C7BD84E690E00E94010E8091B6 |
:102150000E0390910F0382559340D0F4C0E0D0E07D |
:1021600017C0C7BD82E390E00E94010E81EF91E0AD |
:102170009F938F931F920E94380A80910E03909133 |
:102180000F030F900F900F908458934020F02196EA |
:10219000CA3FD10530F3A3E0B0E00C2E0E942F3DE2 |
:1021A000C093F8068CE291E00E94010EDF91CF917E |
:1021B0000895EAE1F3E080E2819393E0EA36F907DB |
:1021C000D9F708951F938091E603282F3327C9017B |
:1021D00081709070682F8823A9F08091E70388238D |
:1021E00011F0815002C080916A038093E703EAE115 |
:1021F000F3E080E2819393E0EA36F907D9F78FEFB5 |
:102200008093AC03A9014270507021FF10C08091EF |
:10221000E7038F5F8093E703EAE1F3E080E28193D5 |
:1022200093E0EA36F907D9F78FEF8093AC03662382 |
:1022300021F0452B11F01092E70381E18093E50333 |
:102240008091E70399279F938F9386E095E09F9372 |
:102250008F9381E08F930E94380A8091E7030F905B |
:102260000F900F900F900F90E82FFF27ED30F105A2 |
:1022700008F023C4E75AFF4F0C941C3D1092E5036D |
:1022800084EF94E09F938F9311E01F930E94380A8C |
:1022900084E18093E5032091000187E690E09F931D |
:1022A0008F9383E490E09F938F931F921F92822FCE |
:1022B0006AE00E94753C892F99279F938F93822F04 |
:1022C0000E94753C99279F938F938FED94E09F9385 |
:1022D0008F931F930E94380A88E28093E5030E943F |
:1022E000E20399279F938F9382ED94E09F938F93BE |
:1022F0001F930E94380A8CE38093E50382EC94E0FC |
:102300009F938F931F930E94380A88C28091390748 |
:1023100080FF44C01092E5038091560490915704C9 |
:102320009F938F9383EB94E09F938F9311E01F9380 |
:102330000E94380A84E18093E503809158049091CB |
:1023400059049F938F9384EA94E09F938F931F93F4 |
:102350000E94380A88E28093E50380910E039091F1 |
:102360000F039F938F9385E994E09F938F931F931F |
:102370000E94380A8CE38093E5038091F806992740 |
:102380009F938F9386E894E09F938F931F930E946F |
:10239000380A8DB79EB744968DBF94C384E180936D |
:1023A000E5038FE794E09F938F9311E01F930E94C2 |
:1023B000380A88E28093E50381E794E09F938F9346 |
:1023C0001F930E94380A8DB79EB70696E5CF1092EC |
:1023D000E50387E694E09F938F9311E01F930E949B |
:1023E000380A84E18093E50360910104709102044E |
:1023F000809103049091040420E034E040E050E038 |
:102400000E94CA3C5F934F933F932F9388E594E0DB |
:102410009F938F931F930E94380A88E28093E5036D |
:102420006091090470910A0480910B0490910C044E |
:1024300020E034E040E050E00E94CA3C5F934F93BC |
:102440003F932F9389E494E09F938F931F930E946F |
:10245000380A8CE38093E50380913D0490913E041B |
:102460009F938F938AE394E09F938F931F930E948F |
:10247000380A8DB79EB746968FCF1092E5038091AC |
:10248000090790910A0720910707309108079F9349 |
:102490008F933F932F938AE294E09F938F9311E061 |
:1024A0001F930E94380A84E18093E50380910D0711 |
:1024B00090910E0720910B0730910C079F938F93FB |
:1024C0003F932F938AE194E09F938F931F930E94F1 |
:1024D000380A88E28093E5038091110790911207F2 |
:1024E00020910F07309110079F938F933F932F9365 |
:1024F0008AE094E09F938F931F930E94380A8CE3A5 |
:102500008093E5038091150790911607209113079A |
:10251000309114079F938F933F932F938AEF93E00B |
:102520007BC01092E503E0913207FF27EE0FFF1FFB |
:10253000EB5FF84F20813181E0913107FF27EE0FEB |
:10254000FF1FEB5FF84F808191813F932F939F9303 |
:102550008F938AEE93E09F938F9311E01F930E94D5 |
:10256000380A84E18093E503E0913407FF27EE0FFA |
:10257000FF1FEB5FF84F20813181E0913307FF2788 |
:10258000EE0FFF1FEB5FF84F808191813F932F93F8 |
:102590009F938F938AED93E09F938F931F930E9455 |
:1025A000380A88E28093E503E0913607FF27EE0FB3 |
:1025B000FF1FEB5FF84F20813181E0913507FF2746 |
:1025C000EE0FFF1FEB5FF84F808191813F932F93B8 |
:1025D0009F938F938AEC93E09F938F931F930E9416 |
:1025E000380A8CE38093E503E0913807FF27EE0F6C |
:1025F000FF1FEB5FF84F20813181E0913707FF2704 |
:10260000EE0FFF1FEB5FF84F808191813F932F9377 |
:102610009F938F938AEB93E09F938F931F930E94D6 |
:10262000380A8DB79EB74C96B7CE1092E5038CEA68 |
:1026300093E09F938F9311E01F930E94380A0F90AD |
:102640000F900F9080910001E091EF03F091F00363 |
:102650008A30F1F584E18093E5038091C503909180 |
:10266000C603FF93EF938E1B9F0B9F938F938DE970 |
:1026700093E09F938F931F930E94380A88E2809380 |
:10268000E5032091F1033091F2038091C70390910B |
:10269000C8033F932F93821B930B9F938F938EE8D6 |
:1026A00093E09F938F931F930E94380A8CE380934B |
:1026B000E5038091F3039091F4039F938F938091AE |
:1026C000A0079091A1079F938F938FE793E04BC052 |
:1026D00084E18093E5032091C5033091C603CF01C7 |
:1026E00062E070E00E94953C7F936F932E1B3F0B3E |
:1026F0003F932F9380E793E09F938F931F930E94C4 |
:10270000380A88E28093E503E091F103F091F20347 |
:102710002091C7033091C803CF0162E070E00E94AE |
:10272000953C7F936F932E1B3F0B3F932F9381E636 |
:1027300093E09F938F931F930E94380A8CE38093BA |
:10274000E5038091F3039091F40362E070E00E944E |
:10275000953C7F936F938091A0079091A1079F93E1 |
:102760008F9382E593E09F938F931F930E94380A83 |
:102770008DB79EB7459610CE1092E50385E493E0A1 |
:102780009F938F9311E01F930E94380A84E18093F6 |
:10279000E5038091F9039091FA032091CD033091E4 |
:1027A000CE039F938F933F932F9386E393E09F9362 |
:1027B0008F931F930E94380A88E28093E5038091EB |
:1027C000FB039091FC032091CB033091CC039F93AA |
:1027D0008F933F932F9387E293E09F938F931F9361 |
:1027E0000E94380A8CE38093E5036091FD037091A9 |
:1027F000FE038091FF03909100040E94773B7F933A |
:102800006F9380918807909189079F938F9388E1B8 |
:1028100093E09F938F931F930E94380A8DB79EB7C2 |
:102820004896BACD84E18093E503809108039091A6 |
:1028300009039F938F9389E093E09F938F9311E017 |
:102840001F930E94380A88E28093E50380914E042A |
:1028500099279F938F938AEF92E09F938F931F9373 |
:102860000E94380A8DB79EB70A9696CD1092E5035E |
:102870008BEE92E09F938F9311E01F930E94380A92 |
:1028800084E18093E50380914104909142049F93F9 |
:102890008F938CED92E09F938F931F930E94380A41 |
:1028A00088E28093E50380913D0490913E049F93DC |
:1028B0008F938DEC92E09F938F931F930E94380A21 |
:1028C0008CE38093E50380913F04909140049F93B3 |
:1028D0008F938EEB92E0E8C01092E503809146045E |
:1028E000909147049F938F9382EB92E09F938F93F5 |
:1028F00011E01F930E94380A84E18093E5038091E0 |
:102900004804909149049F938F9386EA92E09F93A5 |
:102910008F931F930E94380A88E28093E503809189 |
:102920004A0490914B049F938F938AE992E09F937E |
:102930008F931F930E94380A8CE38093E503809164 |
:102940004C0490914D049F938F938EE892E01CCDA0 |
:102950001092E50386E892E09F938F9311E01F9316 |
:102960000E94380A84E18093E50380919C039927B3 |
:102970009F938F9388E792E09F938F931F930E947A |
:10298000380A88E28093E5038091C2039091C303E3 |
:102990009F938F938AE692E09F938F931F930E9459 |
:1029A000380A8CE38093E5038091550799279F931C |
:1029B0008F938091540799279F938F938CE592E092 |
:1029C0009F938F931F930E94380AE3CC1092E503E4 |
:1029D00084E592E09F938F9311E01F930E94380A41 |
:1029E00084E18093E5038091AE07992787FD909558 |
:1029F0009F938F9385E492E09F938F931F930E9400 |
:102A0000380A88E28093E5038091AF07992787FD14 |
:102A100090959F938F9386E392E09F938F931F935C |
:102A20000E94380A8CE38093E5038091B0079927D0 |
:102A300087FD90959F938F9387E292E035C0109227 |
:102A4000E5038DE192E09F938F9311E01F930E9425 |
:102A5000380A84E18093E5038091B1079091B20731 |
:102A60009F938F938FE092E09F938F931F930E9489 |
:102A7000380A88E28093E5038091B3079091B40708 |
:102A80009F938F9381E092E09F938F931F930E9477 |
:102A9000380A8CE38093E5038091B5079091B607DF |
:102AA0009F938F9383EF91E09F938F931F930E9447 |
:102AB000380A8DB79EB742966FCC815080936A03D7 |
:102AC0001092E7031092E6031F9108951092B90047 |
:102AD0008AE28093B800089585EA8093BC0080E084 |
:102AE00090E0089584E98093BC0008951092B900A5 |
:102AF0008093BB0085E88093BC0080E090E008955F |
:102B00001F920F920FB60F9211248F939F93EF9302 |
:102B1000FF938091E8038F5F8093E8038150E82F53 |
:102B2000FF27E830F10508F064C0EA59FF4F0C9424 |
:102B30001C3D8091E903880F8E5A09C08091E903FA |
:102B40008F5F8093E903815027C080917B071092AB |
:102B5000B9008093BB0085E88093BC004AC084E93B |
:102B60008093BC008091E903843018F41092E8034C |
:102B700002C01092E90385EAEFCF8091EA03880F43 |
:102B80008D5AE5CF8091BB00E091EA03FF27E35027 |
:102B9000F94F80838091EA03813039F08130A8F2C7 |
:102BA000823031F0833029F506C080918007CFCF85 |
:102BB00080919807CCCF80919A07C9CF8091EA0382 |
:102BC0009091BB00E82FFF27E350F94F94838F5F6C |
:102BD0008093EA03843010F01092EA0384E9809332 |
:102BE000BC008AE090E09093860380938503109266 |
:102BF000E8038091BC0080688093BC00FF91EF9156 |
:102C00009F918F910F900FBE0F901F9018954CEBD6 |
:102C100050E084E9DA018C931092E8032BEB30E06A |
:102C2000F90180811092E90380E88C931092BD0035 |
:102C30001092BA001082E9EBF0E01082A8EBB0E04D |
:102C40001C9210828AE28C9385EADA018C931082BE |
:102C5000F901108285E88C93089583EC80938100BC |
:102C6000EFE6F0E08081806280831092F40310929E |
:102C7000F3031092F2031092F1031092F0031092FA |
:102C8000EF0308951F920F920FB60F9211240F9326 |
:102C90001F932F933F934F935F936F937F938F93E4 |
:102CA0009F93AF93BF93CF93DF93EF93FF932091C5 |
:102CB0008600309187008091ED039091EE03281BF0 |
:102CC000390B80918600909187009093EE0380935A |
:102CD000ED03C9018D549440C091EB03D091EC03F6 |
:102CE000835F9A4158F4249714F010926B0381E0AB |
:102CF00090E09093EC038093EB035CC0CA30D10565 |
:102D00000CF058C0C9018B5F9040845B914008F083 |
:102D100040C0A901425D5140FE01EE0FFF1FEB5F75 |
:102D2000F84F80819181FA01E81BF90BCF01F7FF81 |
:102D300003C0909581959F4F06974CF480914E0467 |
:102D4000883C28F480914E04865F80934E04FE01F7 |
:102D5000EE0FFF1F8F010B5F184FD8012D913C9193 |
:102D6000C901880F991F820F931F840F951F64E07C |
:102D700070E00E94953CD8018D919C9111979B0128 |
:102D8000281B390BE55EF84F3183208311967C9325 |
:102D90006E93FE013196F093EC03E093EB03E53084 |
:102DA000F10511F45D9A05C05D98369711F45C9AAF |
:102DB00001C05C98FF91EF91DF91CF91BF91AF91EE |
:102DC0009F918F917F916F915F914F913F912F9143 |
:102DD0001F910F910F900FBE0F901F901895A2E1B9 |
:102DE000B0E0E5EFF6E10C94E53C8091C9039091E9 |
:102DF000CA034090F3035090F403481A590A5092C2 |
:102E0000A1074092A0078091C7039091C803988BB7 |
:102E10008F87A091F103B091F203BA8BA98BE09157 |
:102E2000C503F091C603FE87ED878091EF03909173 |
:102E3000F0039C878B876091CD037091CE03E09067 |
:102E40009D07F0909E070027F7FC0095102F88271C |
:102E500077FD8095982F2CE030E040E050E00E9414 |
:102E6000563CE60EF71E081F191FC801B70122E0E5 |
:102E700030E040E050E00E94CA3C30939E0720932F |
:102E80009D076091CB037091CC03E090A707F09071 |
:102E9000A8070027F7FC0095102F882777FD80955D |
:102EA000982F2CE030E040E050E00E94563CE60EC7 |
:102EB000F71E081F191FC801B70122E030E040E0EB |
:102EC00050E00E94CA3C3093A8072093A7072091A6 |
:102ED000CF033091D00360918807709189078827CC |
:102EE00077FD8095982F442737FD4095542F620F2A |
:102EF000731F841F951F22E030E040E050E00E94E5 |
:102F0000CA3C30938907209388072091CD033091E4 |
:102F1000CE03C901880F991F820F931F880F991F35 |
:102F2000880F991FAA2797FDA095BA2F2091110409 |
:102F3000309112044091130450911404280F391F4A |
:102F40004A1F5B1F20931104309312044093130413 |
:102F5000509314042091CB033091CC03C901880F06 |
:102F6000991F820F931F880F991F880F991FAA27F7 |
:102F700097FDA095BA2F2091150430911604409129 |
:102F8000170450911804280F391F4A1F5B1F209304 |
:102F90001504309316044093170450931804E090DE |
:102FA000ED06F090EE06A090FD03B090FE03C090F9 |
:102FB000FF03D09000046091190470911A0480916D |
:102FC0001B0490911C040E94943B3B014C01002780 |
:102FD000F7FC0095102FC801B7010E94943BA60191 |
:102FE00095010E94EE3A9B01AC01C401B3010E941D |
:102FF000EF3A0E94773B6093190470931A04809310 |
:103000001B0490931C045201CC24B7FCC094DC2C0C |
:1030100060903104709032048090330490903404B6 |
:103020006A0C7B1C8C1C9D1C6092310470923204D3 |
:103030008092330490923404809135049091360448 |
:10304000A0913704B09138048A0D9B1DAC1DBD1DA5 |
:103050008093350490933604A0933704B0933804DA |
:1030600090915E049A87992309F05FC080915F0474 |
:10307000882309F05AC08091390786FF56C0E09036 |
:103080006C04FF2400271127609121047091220411 |
:10309000809123049091240420E030E140E050E04E |
:1030A0000E94CA3CCA01B901A80197010E94563C7E |
:1030B0009B01AC01C601B5010E94563C20E038E0FE |
:1030C00040E050E00E94CA3C2093B5043093B6041F |
:1030D0004093B7045093B8046091290470912A0476 |
:1030E00080912B0490912C0420E030E140E050E0EE |
:1030F0000E94CA3CCA01B901A80197010E94563C2E |
:103100009B01AC01C601B5010E94563C20E038E0AD |
:1031100040E050E00E94CA3C2093B1043093B204D6 |
:103120004093B3045093B40410C01092B1041092B1 |
:10313000B2041092B3041092B4041092B504109229 |
:10314000B6041092B7041092B8048091B50490911F |
:10315000B604A091B704B091B8048E839F83A8876A |
:10316000B9878091B1049091B204A091B304B09159 |
:10317000B4048A839B83AC83BD8380916D04282E25 |
:10318000332444245524EF84F888A989BA89EA1A9B |
:10319000FB0AEE81FF81EE0EFF1E6A817B818C812E |
:1031A0009D81A20191010E94563C20E032E040E066 |
:1031B00050E00E94CA3CE20EF31EF0927A07E092C1 |
:1031C00079079701442737FD4095542F80912D04AE |
:1031D00090912E04A0912F04B0913004820F931F80 |
:1031E000A41FB51F80932D0490932E04A0932F0449 |
:1031F000B093300480915A0490915B04E81AF90A64 |
:103200000027F7FC0095102F8091290490912A0443 |
:10321000A0912B04B0912C04E80EF91E0A1F1B1F6D |
:10322000E0922904F0922A0400932B0410932C04BA |
:10323000A0908B03B0908C03C0908D03D0908E0330 |
:10324000AE14BF04C006D106C4F480E197E2A0E04A |
:10325000B0E08A199B09AC09BD09809329049093B9 |
:103260002A04A0932B04B0932C0480932D049093F4 |
:103270002E04A0932F04B093300422273327A901F2 |
:103280002A193B094C095D098091290490912A046F |
:10329000A0912B04B0912C0482179307A407B507C3 |
:1032A000B4F4D601C50180519742A040B04080934C |
:1032B000290490932A04A0932B04B0932C048093A8 |
:1032C0002D0490932E04A0932F04B093300480918A |
:1032D000C7039091C8030F9734F488E19CEF909353 |
:1032E0007A07809379078091C7039091C803079765 |
:1032F00034F480E398EF90937A0780937907F09104 |
:103300000001F983FA30A9F48091C7039091C803B2 |
:10331000835F934034F088EE93E090937A07809334 |
:1033200079078091C7039091C8038A5F9340DCF0CE |
:1033300014C08091C7039091C803855E974034F014 |
:1033400088EE93E090937A07809379078091C70382 |
:103350009091C803835F974034F080ED97E090939D |
:103360007A0780937907ED84FE848B859C85E81A23 |
:10337000F90AAA81BB81EA1AFB0A6E817F818885DE |
:103380009985A20191010E94563C20E032E040E084 |
:1033900050E00E94CA3CE21AF30AF0928207E092DF |
:1033A00081079701442737FD4095542F80912504CC |
:1033B00090912604A0912704B0912804820F931FB6 |
:1033C000A41FB51F8093250490932604A09327047F |
:1033D000B093280480915C0490915D04E81AF90A86 |
:1033E0000027F7FC0095102F809121049091220472 |
:1033F000A0912304B0912404E80EF91E0A1F1B1F9C |
:10340000E0922104F09222040093230410932404F8 |
:10341000A0908703B0908803C0908903D0908A035E |
:10342000AE14BF04C006D106C4F480E197E2A0E068 |
:10343000B0E08A199B09AC09BD09809321049093DF |
:103440002204A0932304B093240480932504909332 |
:103450002604A0932704B093280422273327A90128 |
:103460002A193B094C095D0980912104909122049D |
:10347000A0912304B091240482179307A407B507F1 |
:10348000B4F4D601C50180519742A040B04080936A |
:10349000210490932204A0932304B09324048093E6 |
:1034A000250490932604A0932704B09328048091C8 |
:1034B000C5039091C6030F9734F488E19CEF909375 |
:1034C0008207809381078091C5039091C603079777 |
:1034D00034F480E398EF9093820780938107B98159 |
:1034E000BA30A9F48091C5039091C603835F9340DD |
:1034F00034F088EE93E09093820780938107809167 |
:10350000C5039091C6038A5F9340DCF014C080919C |
:10351000C5039091C603855E974034F088EE93E032 |
:1035200090938207809381078091C5039091C60391 |
:10353000835F974034F080ED97E09093820780930B |
:1035400081078FEE80937A0060921D0470921E04B2 |
:1035500080921F0490922004809121049091220473 |
:10356000A0912304B0912404809301049093020459 |
:10357000A0930304B09304048091290490912A0439 |
:10358000A0912B04B0912C048093090490930A0419 |
:10359000A0930B04B0930C04809125049091260411 |
:1035A000A0912704B0912804809305049093060409 |
:1035B000A0930704B093080480912D0490912E04E9 |
:1035C000A0912F04B091300480930D0490930E04C9 |
:1035D000A0930F04B09310048091390787FF3FC078 |
:1035E000BA85BB23E1F580915F048823C1F5209162 |
:1035F000810730918207293C310524F0C9018052AE |
:10360000934007C0EFEF28333E076CF4C901805E9A |
:103610009C4F220F331F220F331F280F391F309367 |
:103620008207209381072091790730917A07293CFE |
:10363000310524F0C9018052934007C0FFEF2833C1 |
:103640003F076CF4C901805E9C4F220F331F220F8D |
:10365000331F280F391F30937A0720937907209161 |
:1036600046043091470480913507E82FFF27EE0F7D |
:10367000FF1FEB5FF84F8081918182599F4F281780 |
:1036800039071CF42F5F3F4F0CC080819181825914 |
:103690009F4F821793074CF42115310531F02150CB |
:1036A00030403093470420934604209148043091E1 |
:1036B000490480913607E82FFF27EE0FFF1FEB5FCD |
:1036C000F84F8081918182599F4F281739071CF448 |
:1036D0002F5F3F4F0CC08081918182599F4F82178D |
:1036E00093074CF42115310531F0215030403093CF |
:1036F00049042093480420914A0430914B0480915E |
:103700003707E82FFF27EE0FFF1FEB5FF84F808191 |
:10371000918182599F4F281739071CF42F5F3F4F23 |
:103720000CC08081918182599F4F821793074CF47E |
:103730002115310531F02150304030934B04209356 |
:103740004A0420914C0430914D0480913807E82FB1 |
:10375000FF27EE0FFF1FEB5FF84F808191818259A9 |
:103760009F4F281739071CF42F5F3F4F0CC08081F3 |
:10377000918182599F4F821793074CF4211531058F |
:1037800031F02150304030934D0420934C0480910F |
:1037900046049091470497FF05C010924704109289 |
:1037A00046040AC08F3F910539F034F08FEF90E066 |
:1037B0009093470480934604809148049091490473 |
:1037C00097FF05C010924904109248040AC08F3F29 |
:1037D000910539F034F08FEF90E090934904809395 |
:1037E000480480914A0490914B0497FF05C01092C1 |
:1037F0004B0410924A040AC08F3F910539F034F00F |
:103800008FEF90E090934B0480934A0480914C0496 |
:1038100090914D0497FF05C010924D0410924C04F6 |
:103820000AC08F3F910539F034F08FEF90E090930C |
:103830004D0480934C04E2E1CE5E0C94013D109265 |
:103840007A008091C5039091C6039093820780937C |
:1038500081078091C7039091C80390937A07809362 |
:1038600079078091C9039091CA039093A10780932F |
:10387000A0076091CD037091CE03882777FD8095D6 |
:10388000982F2CE030E040E050E00E94563C7093CE |
:103890009E0760939D076091CB037091CC038827AE |
:1038A00077FD8095982F0E94563C7093A8076093EF |
:1038B000A7078091CF039091D003909389078093BD |
:1038C00088078FEE80937A00209146043091470458 |
:1038D00080913507E82FFF27EE0FFF1FEB5FF84FB2 |
:1038E0008081918182599F4F281739071CF42F5FDF |
:1038F0003F4F0CC08081918182599F4F821793075F |
:103900004CF42115310531F02150304030934704FB |
:103910002093460420914804309149048091360751 |
:10392000E82FFF27EE0FFF1FEB5FF84F808191819B |
:1039300082599F4F281739071CF42F5F3F4F0CC047 |
:103940008081918182599F4F821793074CF42115F2 |
:10395000310531F021503040309349042093480420 |
:1039600020914A0430914B0480913707E82FFF27BC |
:10397000EE0FFF1FEB5FF84F8081918182599F4FBF |
:10398000281739071CF42F5F3F4F0CC080819181AD |
:1039900082599F4F821793074CF42115310531F05E |
:1039A0002150304030934B0420934A0420914C0422 |
:1039B00030914D0480913807E82FFF27EE0FFF1F4D |
:1039C000EB5FF84F8081918182599F4F281739070B |
:1039D0001CF42F5F3F4F0CC08081918182599F4F13 |
:1039E000821793074CF42115310531F021503040F6 |
:1039F00030934D0420934C048091460490914704E9 |
:103A000097FF05C010924704109246040AC08F3FEA |
:103A1000910539F034F08FEF90E090934704809354 |
:103A20004604809148049091490497FF05C0109284 |
:103A30004904109248040AC08F3F910539F034F0D0 |
:103A40008FEF90E0909349048093480480914A045A |
:103A500090914B0497FF05C010924B0410924A04BA |
:103A60000AC08F3F910539F034F08FEF90E09093CA |
:103A70004B0480934A0480914C0490914D0497FF2D |
:103A800005C010924D0410924C040AC08F3F91055E |
:103A900039F034F08FEF90E090934D0480934C0414 |
:103AA00060915C0777278827992724EC39E040E06C |
:103AB00050E00E94563C6093870370938803809384 |
:103AC000890390938A0360938B0370938C03809394 |
:103AD0008D0390938E0308951F9380913C078B3F35 |
:103AE00098F08B3F19F4809146040EC08C3F19F476 |
:103AF0008091480409C08D3F19F480914A0404C0A4 |
:103B00008E3F21F480914C04809394038091940320 |
:103B1000882319F41092940304C08F3F11F480930A |
:103B2000940380913B078B3F98F08B3F19F4809171 |
:103B300046040EC08C3F19F48091480409C08D3FA3 |
:103B400019F480914A0404C08E3F21F480914C0402 |
:103B50008093930380919303882319F41092930325 |
:103B600005C0843618F084E68093930380913D0766 |
:103B70008B3F98F08B3F19F4809146040EC08C3F28 |
:103B800019F48091480409C08D3F19F480914A04CA |
:103B900004C08E3F21F480914C0480939503809162 |
:103BA0009503882319F41092950305C0843618F004 |
:103BB00084E68093950380913F078B3F98F08B3F7D |
:103BC00019F4809146040EC08C3F19F4809148048A |
:103BD00009C08D3F19F480914A0404C08E3F21F43E |
:103BE00080914C048093960380919603882319F466 |
:103BF0001092960304C08F3F11F480939603809136 |
:103C000046078B3F98F08B3F19F4809146040EC015 |
:103C10008C3F19F48091480409C08D3F19F48091BC |
:103C20004A0404C08E3F21F480914C048093970392 |
:103C300080919703882319F41092970304C08F3F53 |
:103C400011F480939703809147078B3F98F08B3F47 |
:103C500019F4809146040EC08C3F19F480914804F9 |
:103C600009C08D3F19F480914A0404C08E3F21F4AD |
:103C700080914C0480939803809198038B3010F4CA |
:103C80008AE002C08F3F11F4809398038091480727 |
:103C90008B3F98F08B3F19F4809146040EC08C3F07 |
:103CA00019F48091480409C08D3F19F480914A04A9 |
:103CB00004C08E3F21F480914C048093990380913D |
:103CC0009903882319F41092990304C08F3F11F4CB |
:103CD0008093990380914D078B3F98F08B3F19F4A7 |
:103CE000809146040EC08C3F19F48091480409C0AD |
:103CF0008D3F19F480914A0404C08E3F21F48091D5 |
:103D00004C0480939B0380919B03882319F41092A9 |
:103D10009B0304C08F3F11F480939B0380914E0757 |
:103D20008B3F98F08B3F19F4809146040EC08C3F76 |
:103D300019F48091480409C08D3F19F480914A0418 |
:103D400004C08E3F21F480914C04809364048091E0 |
:103D50006404882319F41092640404C08F3F11F4A2 |
:103D60008093640480914F078B3F98F08B3F19F448 |
:103D7000809146040EC08C3F19F48091480409C01C |
:103D80008D3F19F480914A0404C08E3F21F4809144 |
:103D90004C048093650480916504882319F4109283 |
:103DA000650404C08F3F11F480936504809150072F |
:103DB0008B3F98F08B3F19F4809146040EC08C3FE6 |
:103DC00019F48091480409C08D3F19F480914A0488 |
:103DD00004C08E3F21F480914C048093660480914E |
:103DE0006604882319F41092660404C08F3F11F40E |
:103DF00080936604809151078B3F98F08B3F19F4B4 |
:103E0000809146040EC08C3F19F48091480409C08B |
:103E10008D3F19F480914A0404C08E3F21F48091B3 |
:103E20004C048093670480916704882319F41092EE |
:103E3000670404C08F3F11F4809367048091610789 |
:103E40008B3F98F08B3F19F4809146040EC08C3F55 |
:103E500019F48091480409C08D3F19F480914A04F7 |
:103E600004C08E3F21F480914C04809368048091BB |
:103E70006804882319F41092680404C08F3F11F479 |
:103E800080936804809162078B3F98F08B3F19F410 |
:103E9000809146040EC08C3F19F48091480409C0FB |
:103EA0008D3F19F480914A0404C08E3F21F4809123 |
:103EB0004C048093690480916904882319F410925A |
:103EC000690404C08F3F11F48093690480916307F3 |
:103ED0008B3F98F08B3F19F4809146040EC08C3FC5 |
:103EE00019F48091480409C08D3F19F480914A0467 |
:103EF00004C08E3F21F480914C0480936A04809129 |
:103F00006A04882319F410926A0404C08F3F11F4E4 |
:103F100080936A04809164078B3F98F08B3F19F47B |
:103F2000809146040EC08C3F19F48091480409C06A |
:103F30008D3F19F480914A0404C08E3F21F4809192 |
:103F40004C0480936B0480916B04882319F41092C5 |
:103F50006B0404C08F3F11F480936B04809152076F |
:103F60008B3F98F08B3F19F4809146040EC08C3F34 |
:103F700019F48091480409C08D3F19F480914A04D6 |
:103F800004C08E3F21F480914C0480939C03809167 |
:103F90009C03882319F410929C0304C08F3F11F4F2 |
:103FA00080939C03809157078B3F98F08B3F19F4C7 |
:103FB000809146040EC08C3F19F48091480409C0DA |
:103FC0008D3F19F480914A0404C08E3F21F4809102 |
:103FD0004C0480939D0380919D03882319F41092D3 |
:103FE0009D0304C08F3F11F480939D0380915A0775 |
:103FF0008B3F98F08B3F19F4809146040EC08C3FA4 |
:1040000019F48091480409C08D3F19F480914A0445 |
:1040100004C08E3F21F480914C0480936C04809105 |
:104020006C04882319F410926C0404C08F3F11F4BF |
:1040300080936C0480915B078B3F98F08B3F19F461 |
:10404000809146040EC08C3F19F48091480409C049 |
:104050008D3F19F480914A0404C08E3F21F4809171 |
:104060004C0480936D0480916D04882319F41092A0 |
:104070006D0404C08F3F11F480936D04809160073C |
:104080008B3F98F08B3F19F4809146040EC08C3F13 |
:1040900019F48091480409C08D3F19F480914A04B5 |
:1040A00004C08E3F21F480914C0480939E03809144 |
:1040B0009E03882319F410929E0304C08F3F11F4CD |
:1040C00080939E0310919B03612F772767FD709566 |
:1040D000872F972F0E94943B17FF06C020E030E007 |
:1040E00040E853E40E94EF3A27E137EB41ED58E313 |
:1040F0000E940E3C60938F03709390038093910312 |
:10410000909392038091440780939F078091430787 |
:10411000809383071F91089580915504882301F5AA |
:104120001092800710927B071092980710929A07BE |
:104130008091AE03882311F080937B078091AF03B9 |
:10414000882311F0809380078091B003882311F0B9 |
:1041500080939A078091B103882311F08093980788 |
:1041600080917B0799279093C3068093C206809124 |
:10417000800799279093C5068093C40680919A077B |
:1041800099279093C7068093C60680919807992730 |
:104190009093C9068093C8061092E8031092E90331 |
:1041A0000E946C1508951092FA031092F903109270 |
:1041B000FC031092FB0380E090E0A0E0B0E080936D |
:1041C000FD039093FE03A093FF03B09300041092AD |
:1041D000F0031092EF031092F2031092F103109289 |
:1041E000F4031092F30310926C0410926D040E9479 |
:1041F0001F1C84E690E00E94010E0E941F1C80910B |
:10420000390780FF10C080910E0390910F03875BE8 |
:10421000934038F480910E0390910F038E5E92408C |
:1042200010F40E9495104091C5035091C60350931D |
:10423000F0034093EF032091C7033091C8033093FC |
:10424000F2032093F1038091C9039091CA039093E4 |
:10425000F4038093F3033093F6032093F503509314 |
:10426000F8034093F70344E050E0DA010E94223D56 |
:10427000802D853038F18091A7079091A80797FF8E |
:1042800003C0909581959F4F6CE070E00E94953C33 |
:104290007093FC036093FB0380919D0790919E07B0 |
:1042A00097FF03C0909581959F4F6CE070E00E944E |
:1042B000953C7093FA036093F9036091ED06709159 |
:1042C000EE0639C0DA010E94223D802D4F5F5F4F1C |
:1042D000DA010E94223D202D9927982F8827820FEE |
:1042E000911D9093FA038093F9034F5F5F4FDA01BA |
:1042F0000E94223D802D4F5F5F4FDA010E94223DD8 |
:10430000202D9927982F8827820F911D9093FC03C9 |
:104310008093FB034F5F5F4FDA010E94223D602DC7 |
:104320004F5F5F4FDA010E94223D202D7727762FC5 |
:104330006627620F711D882777FD8095982F0E9450 |
:10434000943B6093FD037093FE038093FF0390936F |
:10435000000410922104109222041092230410925F |
:10436000240410922504109226041092270410921F |
:1043700028041092290410922A0410922B041092FF |
:104380002C0410922D0410922E0410922F041092DF |
:1043900030041092310410923204109233041092BF |
:1043A0003404109282071092810710927A071092BB |
:1043B00079071092A1071092A00780910A039091AB |
:1043C0000B03A0910C03B0910D039093F006809322 |
:1043D000EF061092D8031092D7031092390410926E |
:1043E0003A0410923B0410923C0480913D04909159 |
:1043F0003E049093400480933F040E94ED3682E394 |
:1044000090E09093C1038093C00360915C0777278D |
:104410008827992724EC39E040E050E00E94563C80 |
:1044200060938703709388038093890390938A0332 |
:1044300060915D077727882799270E94563C6093F3 |
:104440008B0370938C0380938D0390938E03109253 |
:10445000A00310929F0308951F93182F0EC0809100 |
:104460005504882361F484E690E09093C10380931F |
:10447000C0038AEF90E00E94170E115080F71F9141 |
:10448000089581E08093310752E05093320743E072 |
:104490004093330774E07093340765E06093350709 |
:1044A00086E08093360787E08093370798E0909303 |
:1044B000380780EC809339078EE180933A078BEFC1 |
:1044C00080933C073AE030933D0722E320933B077B |
:1044D00020933F0750933E074093400710924107B7 |
:1044E000909342078FE0809343078AEF80934407BD |
:1044F0008AE18093450780E88093460788EC8093A3 |
:1045000047078FEA809348078EE58093490783E247 |
:1045100080934A0784E180934B0710924C073093B5 |
:104520004D0780E580934E0710924F071092500779 |
:104530001092510710926107109262071092630760 |
:104540001092640794E69093520788E28093530791 |
:10455000109266072093540786E98093550760936D |
:104560005607209357078AE58093580720935907E9 |
:104570001092650790935A0730935B0790935C07FE |
:1045800090935D0790935E0770935F072093600799 |
:10459000ABE6B7E0ECE6F3E08CE001900D928150E1 |
:1045A000E1F7089581E08093310792E0909332071C |
:1045B00083E08093330744E04093340755E0509301 |
:1045C000350786E08093360787E08093370788E0D9 |
:1045D0008093380780E4809339078EE180933A070F |
:1045E0008BEF80933C073AE030933D0722E3209322 |
:1045F0003B0720933F0790933E074093400710925C |
:104600004107309342078FE0809343078AEF8093FE |
:1046100044078AE18093450780E8809346078FEA44 |
:1046200080934707809348078EE58093490783E28C |
:1046300080934A0784E180934B0710924C0780E2F5 |
:1046400080934D0780E580934E0710924F0710929C |
:104650005007109251071092610710926207109252 |
:1046600063071092640794E69093520788E2809360 |
:104670005307109266072093540786E980935507E5 |
:1046800050935607209357078AE580935807209345 |
:1046900059071092650790935A0730935B079093E0 |
:1046A0005C0790935D0790935E0740935F078BE4F0 |
:1046B00080936007ABE6B7E0E6E7F3E08CE00190BB |
:1046C0000D928150E1F7089581E08093310782E0F7 |
:1046D0008093320783E08093330734E030933407CC |
:1046E00065E06093350786E08093360787E0809326 |
:1046F000370798E09093380780E4809339078EE17C |
:1047000080933A078BEF80933C075AE050933D0724 |
:1047100022E320933B0720933F0730933E073093DB |
:104720004007909341078EE0809342078FE080938B |
:1047300043078AEF809344078AE18093450790E816 |
:104740009093460788E78093470746E940934807D8 |
:104750008EE58093490783E280934A0784E1809342 |
:104760004B0710924C0780E280934D0790934E07C1 |
:1047700010924F0710925007109251071092610744 |
:1047800010926207109263071092640794E6909368 |
:10479000520788E2809353071092660720935407CC |
:1047A0004093550760935607209357078AE58093F7 |
:1047B0005807209359071092650790935A07509312 |
:1047C0005B0790935C0790935D0720935E0730939F |
:1047D0005F0790936007ABE6B7E0EEE7F3E08CE0AD |
:1047E00001900D928150E1F70895A6E3B0E0EBEF60 |
:1047F000F3E20C94E53C0E94EF16299AE09133070E |
:10480000FF27EE0FFF1FEB5FF84F0190F081E02DC7 |
:10481000E858FF4F80919F0799274497E817F907B9 |
:104820000CF4CF019A83898397FF02C01A82198200 |
:1048300080914E04843608F05DC080910301882386 |
:1048400099F480910403909105038F5F9F4F61F469 |
:1048500088E99AE39093C1038093C00380E09CE0D1 |
:1048600090930503809304038091930490919404A2 |
:10487000009731F00197909394048093930404C0BF |
:104880001092550410924404809100018A3011F472 |
:10489000289A01C0289880918E0490918F04815DA0 |
:1048A000974028F180914A07482F55275A8349831A |
:1048B00081E080934404E0913107FF27EE0FFF1F52 |
:1048C000EB5FF84F11821082E0913207FF27EE0F65 |
:1048D000FF1FEB5FF84F11821082E0913407FF2732 |
:1048E000EE0FFF1FEB5FF84F118210824FC2109244 |
:1048F00055044CC280914E048D3808F447C2109282 |
:10490000440480914B0722E3829FC00111249093BD |
:1049100094048093930489819A8189976CF08091A3 |
:104920008E0490918F04AFEF8F3F9A0781F101962B |
:1049300090938F0480938E0480918E0490918F04C5 |
:10494000883C910520F0E981FA81B89704F510922E |
:10495000AD041092AE041092AF041092B004109205 |
:10496000A9041092AA041092AB041092AC04109205 |
:1049700031041092320410923304109234041092D5 |
:1049800035041092360410923704109238042981AD |
:104990003A81293C31050CF459C180915504882392 |
:1049A00009F0F4C180913407E82FFF27EE0FFF1FB5 |
:1049B000EB5FF84F808191818C3491050CF4BCC081 |
:1049C000809192048F5F80939204893C08F4DEC149 |
:1049D0002998109255041092920410928F0410920C |
:1049E0008E0480913107282F3327F901EE0FFF1F26 |
:1049F000EB5FF84F80819181873491059CF4E091C1 |
:104A00003207FF27EE0FFF1FEB5FF84F0190F08199 |
:104A1000E02DF7FF03C0F095E195FF4FE734F10576 |
:104A20000CF46CC080913207682F7727DB01AA0F46 |
:104A3000BB1FAB5FB84F8D919C9111978734910547 |
:104A40003CF0F901EE0FFF1FEB5FF84F8081918181 |
:104A50008D919C918734910564F0F901EE0FFF1F51 |
:104A6000EB5FF84F808191818734910514F042E02B |
:104A700001C041E0FB01EE0FFF1FEB5FF84F8081AB |
:104A80009181863491055CF4F901EE0FFF1FEB5F15 |
:104A9000F84F80819181873491050CF043E0FB0150 |
:104AA000EE0FFF1FEB5FF84F808191818A5B9F4F74 |
:104AB0005CF4F901EE0FFF1FEB5FF84F80819181ED |
:104AC000873491050CF044E0660F771F6B5F784FD9 |
:104AD000DB018D919C918A5B9F4F5CF4220F331F09 |
:104AE0002B5F384FF90180819181863491050CF458 |
:104AF00045E0A2E0B0E0042E0E942F3D80913907EE |
:104B000080FF10C080910E0390910F03875B93404C |
:104B100038F480910E0390910F038E5E924010F452 |
:104B20000E9495100E94E20346E461E377E00E9450 |
:104B30000B040E94D32082C080819181855B9F4FAE |
:104B40000CF081C0809192048F5F80939204893C25 |
:104B500008F41CC129988FEF04E010E0D801082E5A |
:104B60000E942F3D109255041092920410928F04CF |
:104B700010928E040E94D3208091F9039091FA0341 |
:104B800060E071E00E94953CD801062E0E942F3D06 |
:104B90008091F9039091FA0360E071E00E94953CE6 |
:104BA0000F5F1F4FD801082E0E942F3D8091FB03FD |
:104BB0009091FC0360E071E00E94953C0F5F1F4FF5 |
:104BC000D801062E0E942F3D8091FB039091FC039B |
:104BD00060E071E00E94953C0F5F1F4FD801082EE6 |
:104BE0000E942F3D6091FD037091FE038091FF03B1 |
:104BF000909100040E94773BDC01CB0160E071E002 |
:104C00000E94953C0F5F1F4FD801062E0E942F3D3A |
:104C10006091FD037091FE038091FF039091000469 |
:104C20000E94773BDC01CB0160E071E00E94953C83 |
:104C30000F5F1F4FD801082E0E942F3D0E94E203F4 |
:104C40000E942C22A3C010929204A0C0E981FA8194 |
:104C5000B3970CF09BC080913407482F5527FA0179 |
:104C6000EE0FFF1FEB5FF84F80819181855B9F4FB7 |
:104C70000CF06DC0809191048F5F80939104893C0A |
:104C800008F467C088EC8093910481E090E09093F1 |
:104C90008F0480938E0481E0809355041092A504C4 |
:104CA0001092A6041092A7041092A8041092310446 |
:104CB000109232041092330410923404109235048E |
:104CC0001092360410923704109238041092210486 |
:104CD00010922204109223041092240410922904AA |
:104CE00010922A0410922B0410922C04809101043B |
:104CF00090910204A0910304B091040480932504D0 |
:104D000090932604A0932704B0932804809109046B |
:104D100090910A04A0910B04B0910C0480932D048F |
:104D200090932E04A0932F04B09330041092AD04FE |
:104D30001092AE041092AF041092B0041092A90425 |
:104D40001092AA041092AB041092AC0402C010920C |
:104D50009104440F551F4B5F584FDA018D919C9180 |
:104D60008C3491058CF0809190048F5F8093900437 |
:104D7000893C60F01092550488EC80939004109266 |
:104D80008F0410928E0402C01092900480916B03E5 |
:104D9000815080936B0380916B038F3F29F080914A |
:104DA0004404882309F4FCC20E946C1D80913107E1 |
:104DB000A82EBB24D501AA0FBB1FFD01EB5FF84F46 |
:104DC0000190F081E02DFCABEBAB80914007E82E29 |
:104DD000FF24A55EB84F0D90BC91A02DBAA7A9A73E |
:104DE00080914107482E552480913207C82EDD243A |
:104DF000C601880F991FDC01AB5FB84F0D90BC91C5 |
:104E0000A02DB8A7AFA3855E984FFC01208031800C |
:104E1000E0913407AE2FBB27AA0FBB1FAB5FB84F83 |
:104E20000D90BC91A02DBCA3ABA310919803612F52 |
:104E3000772767FD7095872F972F0E94943B17FF68 |
:104E400006C020E030E040E853E40E94EF3A20E062 |
:104E500030E040E251E40E94EF3A20E030E040E8E8 |
:104E60005BE30E940E3C3B014C016093A2077093F0 |
:104E7000A3078093A4079093A50710919903612F2E |
:104E8000772767FD7095872F972F0E94943B17FF18 |
:104E900006C020E030E040E853E40E94EF3A20E012 |
:104EA00030EE4BE257E40E94313B609394077093DD |
:104EB000950780939607909397072091B303222339 |
:104EC00011F40C9418368AE090E09093C10380931B |
:104ED000C003E22FFF27E2FF09C080916404482F3E |
:104EE0005527440F551F440F551F10C0E3FD03C045 |
:104EF00040E050E00BC0809164049927880F991F0F |
:104F0000880F991F44275527481B590B20916E0481 |
:104F100030916F04C901F3E0880F991FFA95E1F70A |
:104F2000821B930B840F951F68E070E00E94953CF4 |
:104F30008B0170936F0460936E04E4FF09C080914D |
:104F40006404482F5527440F551F440F551F0FC0A9 |
:104F5000E5FD02C00C942D36809164049927880FDA |
:104F6000991F880F991F44275527481B590B2091DB |
:104F7000700430917104C90163E0880F991F6A952C |
:104F8000E1F7821B930B840F951F68E070E00E948D |
:104F9000953C7EAB6DAB709371046093700480910F |
:104FA000B203282F332723FF03C082E390E004C01D |
:104FB00022FF07C08EEC9FEF9093730480937204DE |
:104FC00004C0109273041092720421FF09C08091F2 |
:104FD0009F039091A00301969093A00380939F0359 |
:104FE00024FF09C080919F039091A00301979093A3 |
:104FF000A00380939F034BA95CA94E9D90014F9DF8 |
:10500000300D5E9D300D1124A9A5BAA5A49DC00147 |
:10501000A59D900DB49D900D1124280F391FC80136 |
:1050200068E070E00E94953C260F371F3CAB2BAB2D |
:105030003093500420934F04EFA1F8A5EE9D80011A |
:10504000EF9D100DFE9D100D1124249CC001259C88 |
:10505000900D349C900D1124080F191F8DA99EA945 |
:1050600068E070E00E94953C060F171F10935204F1 |
:105070000093510480917204909173042BA13CA180 |
:10508000821B930B909354048093530480913907AF |
:1050900082FF0CC080E090E0A0E0B0E08093940735 |
:1050A00090939507A0939607B093970720E030E080 |
:1050B00040E050E0C401B3010E949E3B882364F4A9 |
:1050C00080E090E0A0E0B0E08093A2079093A30777 |
:1050D000A093A407B093A50720E030E040E050E0A3 |
:1050E000609194077091950780919607909197072A |
:1050F0000E949E3B882364F480E090E0A0E0B0E052 |
:105100008093940790939507A0939607B093970781 |
:1051100080916507682F772784E0882E912C86225E |
:10512000972262FD7FC063FD7DC020910104309114 |
:105130000204409103045091040421368AEE38079A |
:1051400080E0480780E05807E4F0C701B3E0880F2B |
:10515000991FBA95E1F7EBA9FCA9E81BF90BF093AD |
:105160005004E0934F042158384341405040E4F04C |
:10517000C701A4E0880F991FAA95E1F7E81BF90B76 |
:105180000FC0205A35414F4F5F4F74F4C701E3E021 |
:10519000880F991FEA95E1F7EBA9FCA9E80FF91F21 |
:1051A000F0935004E0934F042091090430910A04D5 |
:1051B00040910B0450910C042136FAEE3F07F0E0C9 |
:1051C0004F07F0E05F07F4F0C70173E0880F991F05 |
:1051D0007A95E1F7D801A81BB90BB0935204A093BC |
:1051E00051042158384341405040E4F094E0EE0C23 |
:1051F000FF1C9A95E1F7AE19BF09B0935204A09332 |
:10520000510410C0205A35414F4F5F4F5CF483E08A |
:10521000EE0CFF1C8A95E1F70E0D1F1D1093520432 |
:1052200000935104F601EE0FFF1FEB5FF84F208152 |
:10523000318180915807482F55274217530734F47E |
:10524000892821F081E08093600411C0F601EE0FFF |
:10525000FF1FEB5FF84F2081318180915907DA0100 |
:10526000A81BB1092A173B0714F410926004F60139 |
:10527000EE0FFF1FEB5FF84F80819181AA27BB27BC |
:10528000A41BB50B8A179B0734F463FF04C081E0AD |
:105290008093610417C080916104882399F0CC0C3D |
:1052A000DD1CE5E0F7E0CE0EDF1EF6012081318146 |
:1052B000809159079927841B950B8217930714F443 |
:1052C00010926104F501EE0FFF1FEB5FF84F808134 |
:1052D00091814817590734F460FF04C081E080933E |
:1052E000630415C080916304882389F0F501EE0FF3 |
:1052F000FF1FEB5FF84F2081318180915907FA0140 |
:10530000E81BF1092E173F0714F410926304F5010E |
:10531000EE0FFF1FEB5FF84F808191818A179B078B |
:1053200034F461FF04C081E08093620417C080916F |
:105330006204882399F0AA0CBB1C25E037E0A20E7A |
:10534000B31ED5012D913C91809159079927841B5B |
:10535000950B8217930714F41092620480916004F5 |
:10536000882321F480916104882321F081E08093D7 |
:105370005F0402C010925F0480916304882321F4CB |
:1053800080916204882351F081E080935E04109242 |
:105390005F0410926004109261040EC010925E04CB |
:1053A00080915F04882311F40C94313684E690E0F8 |
:1053B0009093C1038093C003809157079927E98197 |
:1053C000FA818E179F0714F49A838983809144048D |
:1053D000882341F110925404109253041092500407 |
:1053E00010924F0410925204109251048DEC9CECD8 |
:1053F000ACECBDE38093A2079093A307A093A4070E |
:10540000B093A5078AE097EDA3EABBE380939407E6 |
:1054100090939507A0939607B093970710925F0417 |
:1054200010925E0420910104309102044091030423 |
:10543000509104042FA738AB49AB5AAB80918C072D |
:1054400090918D07A0918E07B0918F07820F931FC7 |
:10545000A41FB51F80938C0790938D07A0938E0790 |
:10546000B0938F078091090490910A04A0910B04D6 |
:10547000B0910C048BA79CA7ADA7BEA78091900705 |
:1054800090919107A0919207B09193072BA53CA50D |
:105490004DA55EA5820F931FA41FB51F8093900793 |
:1054A00090939107A0939207B0939307809105047E |
:1054B00090910604A0910704B09108048F8F98A3DF |
:1054C000A9A3BAA38091840790918507A09186072C |
:1054D000B09187072F8D38A149A15AA1820F931F40 |
:1054E000A41FB51F8093840790938507A093860718 |
:1054F000B093870780910D0490910E04A0910F0442 |
:10550000B09110048B8F9C8FAD8FBE8F80917C07E4 |
:1055100090917D07A0917E07B0917F072B8D3C8DE8 |
:105520004D8D5E8D820F931FA41FB51F80937C0746 |
:1055300090937D07A0937E07B0937F0790905E04C1 |
:10554000992011F00C94893680915F04882311F022 |
:105550000C9489360C94393680EEA8168FEFB80675 |
:105560008FEFC8068FEFD80644F480EEA82E8FEF99 |
:10557000B82E8FEFC82E8FEFD82E2132310541057E |
:10558000510534F010E2E12EF12C012D112D0DC04A |
:10559000205E3F4F4F4F5F4F44F4B0EEEB2EBFEF16 |
:1055A000FB2EBFEF0B2FBFEF1B2F8091210490919B |
:1055B0002204A0912304B09124048A199B09AC0908 |
:1055C000BD098093210490932204A0932304B093F7 |
:1055D00024048091290490912A04A0912B04B09175 |
:1055E0002C048E199F09A00BB10B80932904909372 |
:1055F0002A04A0932B04B0932C048091D90390919A |
:10560000DA038F3F910509F008F4ADC4992009F041 |
:105610002EC480915F04882309F029C460918C070F |
:1056200070918D0780918E0790918F0720E031E077 |
:1056300040E050E00E94CA3C19012A0120938C07E7 |
:1056400030938D0740938E0750938F07609190079A |
:1056500070919107809192079091930720E031E03B |
:1056600040E050E00E94CA3C2F8B388F498F5A8F00 |
:10567000209390073093910740939207509393079C |
:10568000E0904507FF240027112720911104309155 |
:1056900012044091130450911404C801B7010E94F0 |
:1056A000563C20E031E040E050E00E94CA3C390125 |
:1056B0004A01209311043093120440931304509331 |
:1056C0001404209115043091160440911704509150 |
:1056D0001804C801B7010E94563C20E031E040E0C8 |
:1056E00050E00E94CA3C59016A012093150430938E |
:1056F0001604409317045093180460911904709194 |
:105700001A0480911B0490911C0420E031E040E0D9 |
:1057100050E00E94CA3C2093190430931A0440932D |
:105720001B0450931C04C201B10166197709880952 |
:105730009909E0905E07FF2400271127A80197012F |
:105740000E94CA3C209386043093870440938804C7 |
:1057500050938904CA01B90120E031E040E050E0F3 |
:105760000E94CA3C3E8B2D8B30935D0420935C04D9 |
:105770006F89788D898D9A8D6A197B098C099D09AD |
:10578000A80197010E94CA3C79018A01CA01B901A6 |
:1057900020E031E040E050E00E94CA3C3CAB2BAB43 |
:1057A00030935B0420935A046091840770918507BD |
:1057B000809186079091870720E031E040E050E03B |
:1057C0000E94CA3C20938407309385074093860744 |
:1057D0005093870760917C0770917D0780917E07C9 |
:1057E00090917F0720E031E040E050E00E94CA3C09 |
:1057F00020937C0730937D0740937E0750937F076B |
:105800002F8D38A149A15AA18FA598A9A9A9BAA9F4 |
:10581000281B390B4A0B5B0B298B3A8B4B8B5C8B10 |
:105820002093A1043093A2044093A3045093A404B2 |
:105830002B8D3C8D4D8D5E8D8BA59CA5ADA5BEA5FC |
:10584000281B390B4A0B5B0B2D873E874F87588BE4 |
:1058500020939D0430939E0440939F045093A00492 |
:1058600029893A894B895C892093990430939A0459 |
:1058700040939B0450939C048D859E85AF85B88989 |
:105880008093950490939604A0939704B093980402 |
:105890008091250490912604A0912704B0912804BA |
:1058A000821B930BA40BB50B8093250490932604C5 |
:1058B000A0932704B093280480912D0490912E0486 |
:1058C000A0912F04B09130042D853E854F855889D5 |
:1058D000821B930BA40BB50B80932D0490932E0485 |
:1058E000A0932F04B0933004C401B3012AE130E047 |
:1058F00040E050E00E94CA3C3093CD062093CC0695 |
:10590000C601B5012AE130E040E050E00E94CA3C07 |
:105910003093CF062093CE0649895A895093D106F9 |
:105920004093D0068D859E859093D3068093D206B2 |
:10593000C201B1012AE130E040E050E00E94CA3CDF |
:105940003093D5062093D4066F89788D898D9A8DF2 |
:105950002AE130E040E050E00E94CA3C3093D70694 |
:105960002093D606F092E506E092E4068BA99CA966 |
:10597000880F991F2BA93CA9F3E0220F331FFA953A |
:10598000E1F7820F931F9093E7068093E60681E08C |
:1059900090E09093810480938004809178049091AA |
:1059A0007904A0917A04B0917B0482199309A40927 |
:1059B000B509815E914BAF4FBF4F8F539C49A040BB |
:1059C000B04008F0C5C029893A894B895C892130EB |
:1059D00080E1380780E0480780E058070CF450C0A9 |
:1059E00080917F04882309F447C0DA01C901ECE003 |
:1059F000B595A79597958795EA95D1F701969093D8 |
:105A0000810480938004DA01C90173E0B595A795FC |
:105A1000979587957A95D1F780938604909387041C |
:105A2000A0938804B093890489589341A040B04062 |
:105A300064F088E893E1A0E0B0E08093860490935E |
:105A40008704A0938804B0938904609186047091C0 |
:105A50008704809188049091890420E031E040E03F |
:105A600050E00E94CA3C8D899E89820F931F9093BB |
:105A70005D0480935C0469C081E080937F0465C00D |
:105A800010927F0429893A894B895C89203080EF04 |
:105A900038078FEF48078FEF58070CF056C08091FA |
:105AA0007E04882309F44DC0DA01C901B095A095A0 |
:105AB000909581959F4FAF4FBF4F6CE0B595A795DF |
:105AC000979587956A95D1F7019690938104809375 |
:105AD0008004CA01B90128E030E040E050E00E94B3 |
:105AE000CA3C2093860430938704409388045093E3 |
:105AF000890428573C4E4F4F5F4F64F488E79CEE73 |
:105B0000AFEFBFEF8093860490938704A09388043F |
:105B1000B093890460918604709187048091880411 |
:105B20009091890420E031E040E050E00E94CA3CBE |
:105B3000AD89BE89A20FB31FB0935D04A0935C042E |
:105B40000BC081E080937E0407C010927E0404C0E5 |
:105B5000109281041092800480915F07082F112712 |
:105B600080918004909181040817190724F4109300 |
:105B700081040093800429893A894B895C892150EA |
:105B80003440404050405CF08091EF039091F0032E |
:105B90002091800430918104820F931F13C02989C2 |
:105BA0003A894B895C8920503C4F4F4F5F4F74F4CA |
:105BB0008091EF039091F003209180043091810453 |
:105BC000821B930B9093F0038093EF0381E090E0AE |
:105BD0009093810480938004109282041092830435 |
:105BE000109284041092850480917404909175043D |
:105BF000A0917604B09177042F89388D498D5A8D04 |
:105C0000821B930BA40BB50B815E914BAF4FBF4F23 |
:105C10008F539C49A040B04008F0C6C08D859E853A |
:105C2000AF85B88981509041A040B0400CF454C079 |
:105C300080917D04882309F44BC08D859E85AF85B6 |
:105C4000B8893CE0B595A795979587953A95D1F792 |
:105C5000019690938104809380048D859E85AF8505 |
:105C6000B88923E0B595A795979587952A95D1F79B |
:105C70008093820490938304A0938404B09385045A |
:105C800089589341A040B04064F088E893E1A0E0D7 |
:105C9000B0E08093820490938304A0938404B09333 |
:105CA00085046091820470918304809184049091B2 |
:105CB000850420E031E040E050E00E94CA3C8BA91E |
:105CC0009CA9820F931F90935B0480935A0469C030 |
:105CD00081E080937D0465C010927D042D853E8512 |
:105CE0004F855889203080EF38078FEF48078FEFB6 |
:105CF00058070CF056C080917C04882309F44DC0ED |
:105D0000DA01C901B095A095909581959F4FAF4F4D |
:105D1000BF4FFCE0B595A79597958795FA95D1F774 |
:105D200001969093810480938004CA01B90128E010 |
:105D300030E040E050E00E94CA3C2093820430935F |
:105D40008304409384045093850428573C4E4F4F5E |
:105D50005F4F64F488E79CEEAFEFBFEF809382045F |
:105D600090938304A0938404B0938504609182048B |
:105D700070918304809184049091850420E031E047 |
:105D800040E050E00E94CA3CABA9BCA9A20FB31FDF |
:105D9000B0935B04A0935A040BC081E080937C0411 |
:105DA00007C010927C0404C01092810410928004F9 |
:105DB00080918204909183049093E1068093E006A1 |
:105DC00080918004909181040817190724F410939E |
:105DD0008104009380042D853E854F85588921508C |
:105DE0003440404050405CF08091F1039091F203C8 |
:105DF0002091800430918104820F931F13C02D8560 |
:105E00003E854F85588920503C4F4F4F5F4F74F46B |
:105E10008091F1039091F2032091800430918104EC |
:105E2000821B930B9093F2038093F1038091EF0315 |
:105E30009091F0039093D9068093D8068091F10356 |
:105E40009091F2032091F5033091F603821B930B9E |
:105E50009C01E3E0220F331FEA95E1F7880F991FB9 |
:105E6000820F931F9093DB068093DA0608C010928E |
:105E70005B0410925A0410925D0410925C0420E0BE |
:105E800030E040E050E06091940770919507809178 |
:105E90009607909197070E949E3B882341F41092A9 |
:105EA0005B0410925A0410925D0410925C0480917D |
:105EB0008C0790918D07A0918E07B0918F078093EA |
:105EC000780490937904A0937A04B0937B04809132 |
:105ED000900790919107A0919207B09193078093BA |
:105EE000740490937504A0937604B0937704109291 |
:105EF00011041092120410921304109214041092C0 |
:105F0000150410921604109217041092180410929F |
:105F1000190410921A0410921B0410921C0410927F |
:105F20008C0710928D0710928E0710928F07109297 |
:105F30009007109291071092920710929307109277 |
:105F40008407109285071092860710928707109297 |
:105F50007C0710927D0710927E0710927F071092A7 |
:105F6000DA031092D9038090530490905404940162 |
:105F700097FE04C022273327281939092531310516 |
:105F80003CF08091390784FD03C081E080938A044E |
:105F9000E09042075901CC24B7FCC094DC2CB4013A |
:105FA000882777FD8095982F2E2D33274427552756 |
:105FB0000E94563C9B01AC01C601B5010E94563CB3 |
:105FC00020E032E040E050E00E94CA3C89019A01A2 |
:105FD000FF24E89CC001E99C900DF89C900D1124D1 |
:105FE00064E070E00E94953C600F711F882777FD88 |
:105FF0008095982F6093A5047093A6048093A704BE |
:106000009093A804209131043091320440913304DC |
:1060100050913404261B370B480B590B2093310445 |
:10602000309332044093330450933404213593EC7D |
:10603000390790E0490790E059072CF080E593EC90 |
:10604000A0E0B0E009C0205B3C434F4F5F4F64F4D9 |
:1060500080EB9CE3AFEFBFEF809331049093320469 |
:10606000A0933304B09334048091390783FFA1C017 |
:10607000809143048150809343048F3FD9F40E9460 |
:10608000653790933E0480933D0420913F04309106 |
:106090004004821B930B845E9D4F68E671E00E9472 |
:1060A000953C845B9040909342048093410482E34A |
:1060B0008093430460910104709102048091030471 |
:1060C0009091040420E032E040E050E00E94CA3C9D |
:1060D000890137FF03C0109501951F4F6091090496 |
:1060E00070910A0480910B0490910C0420E032E03E |
:1060F00040E050E00E94CA3CB90137FF03C07095F0 |
:1061000061957F4F601771070CF4B8016332710518 |
:1061100074F480918A04882351F080913D04909119 |
:106120003E049093400480933F0410928A0420918F |
:1061300097033327629FC001639F900D729F900D5C |
:10614000112460E470E00E94953C261B370B121668 |
:1061500013064CF58091410490914204FC012E9F5E |
:10616000C0012F9F900D3E9F900D112460E270E0C2 |
:106170000E94953C882777FD8095982F20913104C7 |
:10618000309132044091330450913404260F371F6C |
:10619000481F591F20933104309332044093330435 |
:1061A0005093340406C084E690E09093C10380933A |
:1061B000C00380918B04815080938B048F3F09F042 |
:1061C00079C088E180938B04E0904507FF24002785 |
:1061D0001127609101047091020480910304909151 |
:1061E0000404A80197010E94CA3C3093AB06209397 |
:1061F000AA066091090470910A0480910B049091A1 |
:106200000C04A80197010E94CA3C3093AD0620936C |
:10621000AC0680919D0790919E079093AF06809366 |
:10622000AE068091A7079091A8079093B10680933E |
:10623000B0068091A0079091A1079093B306809338 |
:10624000B20680915604909157049093B5068093BE |
:10625000B4066091390470913A0480913B049091A6 |
:106260003C0420E032E040E050E00E94CA3C309321 |
:10627000B7062093B60680913D0490913E0490931A |
:10628000BB068093BA06809108039091090390930E |
:10629000BD068093BC0680914E0499279093BF065B |
:1062A0008093BE0680918807909189079093CB06D2 |
:1062B0008093CA0680915E04C0908107D0908207C7 |
:1062C000882391F0B601882777FD8095982F0E944A |
:1062D000943B2091A2073091A3074091A4075091CD |
:1062E000A5070E940E3C2DC060910104709102042C |
:1062F00080910304909104040E94943B20919407A0 |
:106300003091950740919607509197070E940E3C57 |
:106310007B018C01B601882777FD8095982F0E941C |
:10632000943B2091A2073091A3074091A40750917C |
:10633000A5070E940E3C9B01AC01C801B7010E9459 |
:10634000EF3A0E94773B70938207609381078091B8 |
:106350005F04C0907907D0907A07882391F0B60146 |
:10636000882777FD8095982F0E94943B2091A20763 |
:106370003091A3074091A4075091A5070E940E3CBD |
:106380002DC06091090470910A0480910B049091D2 |
:106390000C040E94943B2091940730919507409102 |
:1063A0009607509197070E940E3C7B018C01B60125 |
:1063B000882777FD8095982F0E94943B2091A20713 |
:1063C0003091A3074091A4075091A5070E940E3C6D |
:1063D0009B01AC01C801B7010E94EF3A0E94773BD4 |
:1063E00070937A076093790720909407309095070F |
:1063F00040909607509097076091A0077091A10771 |
:10640000882777FD8095982F0E94943B2091A207C2 |
:106410003091A3074091A4075091A5070E940E3C1C |
:106420007B018C0160911D0470911E0480911F04FA |
:10643000909120040E94943BA20191010E940E3C85 |
:1064400020E030E040E05FE30E940E3C9B01AC01A5 |
:10645000C801B7010E94EF3A0E94773B8B0170930D |
:10646000A1076093A007E0907907F0907A07F09277 |
:10647000E306E092E2066091090470910A048091BB |
:106480000B0490910C040E94943BA20191010E9484 |
:106490000E3C69877A878B879C870E94773B709335 |
:1064A000DD066093DC0620915104309152043EA336 |
:1064B0002DA33093E9062093E806809181079091FF |
:1064C000820738E0813093071CF080E098E005C037 |
:1064D0008050984F34F480E098EF90938207809337 |
:1064E000810751E0E51658E0F5061CF080E098E0E1 |
:1064F00007C080E0E81688EFF80634F480E098EFF3 |
:1065000090937A078093790798E0013019071CF07F |
:1065100080E098E005C00050184F34F480E098EF18 |
:106520009093A1078093A00780913907992780FF56 |
:10653000D9C04091940381FF0EC0423310F5809181 |
:1065400056049091570444979093590480935804AB |
:106550001092450419C020919F033091A003240F8D |
:10656000311D80913E079927FC012E9FC0012F9F6E |
:10657000900D3E9F900D1124449790935904809361 |
:10658000580481E08093450480914404882321F0DD |
:1065900010925904109258042091560430915704D7 |
:1065A0004091580450915904421753070CF09AC077 |
:1065B00080914504882309F495C0241B350B8091F4 |
:1065C00095039927AC01249FC001259F900D349F0E |
:1065D000900D112460E170E00E94953C09811A81C0 |
:1065E000061B170B2091D7033091D803809193039A |
:1065F0009927DC012A9FC0012B9F900D3A9F900D97 |
:10660000112468E070E00E94953C061B170B609116 |
:10661000390470913A0480913B0490913C0420E04D |
:1066200032E040E050E00E94CA3CCA01B90120912A |
:1066300096033327442755270E94563C20E230E03A |
:1066400040E050E00E94CA3CBFEF2E3C3B0714F4F0 |
:106650002EEC3FEF80918C0490918D04AC0164E0AE |
:10666000440F551F6A95E1F7481B590B2333310539 |
:1066700014F022E330E0021B130BCA01800F911FBC |
:1066800060E170E00E94953C70938D0460938C04EF |
:1066900080913A079927681779078CF4E981FA8184 |
:1066A000E817F9072CF090938D0480938C0407C0B1 |
:1066B00029813A8130938D0420938C040DC0809100 |
:1066C0008C0490918D0449815A814817590724F40C |
:1066D00050938D0440938C0480918C0490918D0490 |
:1066E0009A838983A981BA81B093B906A093B80629 |
:1066F000E090A007F090A1070091A5041091A604D6 |
:106700002091A7043091A80480919F07882E992496 |
:1067100054971CF41C821B8229C089819A8162E0F3 |
:1067200070E00E94953C9701201B310BCB0126178E |
:1067300037070CF4C901709561957F4F6817790789 |
:106740000CF4BC01C401E981FA818E1B9F0B681710 |
:1067500079070CF4CB0129813A81281939093C8346 |
:106760002B832817390714F49C838B8360904F0484 |
:10677000709050048091B9049091BA04681A790A13 |
:1067800080918107909182078619970990938B07D2 |
:1067900080938A0720E030E040E050E0C201B10180 |
:1067A0000E949E3B8823D1F16091AD047091AE04AC |
:1067B0008091AF049091B0040E94943B5B016C0106 |
:1067C000609101047091020480910304909104048B |
:1067D0000E94943BA20191010E940E3C7B018C011E |
:1067E000B301882777FD8095982F0E94943B9B01E9 |
:1067F000AC01C801B7010E94EE3A9B01AC01C60191 |
:10680000B5010E94EF3A0E94773B6093AD0470930C |
:10681000AE048093AF049093B0041CC020918A070B |
:1068200030918B07442737FD4095542F8091AD045C |
:106830009091AE04A091AF04B091B004820F931F69 |
:10684000A41FB51F8093AD049093AE04A093AF0432 |
:10685000B093B0048091AD049091AE04A091AF04C8 |
:10686000B091B004181619061A061B0624F40297F4 |
:10687000A109B10903C00296A11DB11D8093AD0409 |
:106880009093AE04A093AF04B093B0048091AD0494 |
:106890009091AE04A091AF04B091B00481383EE372 |
:1068A000930730E0A30730E0B3072CF080E89EE3C5 |
:1068B000A0E0B0E009C08058914CAF4FBF4F64F4E6 |
:1068C00080E891ECAFEFBFEF8093AD049093AE04FE |
:1068D000A093AF04B093B00460918A0770918B07C6 |
:1068E00080918F0390919003A0919103B0919203B6 |
:1068F0008D839E83AF83B887882777FD8095982FF7 |
:106900000E94943B7B018C016091AD047091AE04B8 |
:106910008091AF049091B0040E94943B9B01AC0124 |
:106920006D817E818F8198850E940E3C9B01AC0118 |
:10693000C801B7010E94EF3A0E94773B5B016C01EE |
:106940007CAB6BAB80919E03E82EFF2400271127C0 |
:106950008B819C8197FF03C0909581959F4F62E04A |
:1069600070E00E94953C9B01A981BA812A0F3B1FD0 |
:10697000442737FD4095542FC801B7010E94563C6B |
:1069800020E430E040E050E00E94CA3C3901EBA92D |
:10699000FCA9E217F3070CF49501AA24BB24A6185E |
:1069A000B708A501A216B3060CF4A90189819A8142 |
:1069B0002B813C81820F931F840F951F97FF03C08B |
:1069C00020E030E005C09401881599050CF49C0185 |
:1069D00080918307C82EDD24C601C216D3060CF4AD |
:1069E000C90180937B0789819A81841B950B4B8118 |
:1069F0005C81840F951F97FF03C020E030E005C045 |
:106A00009401881599050CF49C01C601C216D306A1 |
:106A10000CF4C901809380078091BB049091BC0461 |
:106A2000ADA1BEA1A81BB90BBCABABAB80917907E4 |
:106A300090917A078A1B9B0B909378078093770736 |
:106A400020E030E040E050E0C201B1010E949E3BF6 |
:106A5000882371F16091A9047091AA048091AB041C |
:106A60009091AC040E94943B7B018C01EBA9FCA9A2 |
:106A7000BF01882777FD8095982F0E94943B9B014A |
:106A8000AC0169857A858B859C850E94EE3A9B01D5 |
:106A9000AC01C801B7010E94EF3A0E94773B6093B6 |
:106AA000A9047093AA048093AB049093AC041CC017 |
:106AB0002091770730917807442737FD4095542F70 |
:106AC0008091A9049091AA04A091AB04B091AC0468 |
:106AD000820F931FA41FB51F8093A9049093AA044B |
:106AE000A093AB04B093AC048091A9049091AA0444 |
:106AF000A091AB04B091AC04181619061A061B0637 |
:106B000024F40297A109B10903C00296A11DB11D89 |
:106B10008093A9049093AA04A093AB04B093AC040F |
:106B20008091A9049091AA04A091AB04B091AC0407 |
:106B30008138FEE39F07F0E0AF07F0E0BF072CF0DD |
:106B400080E89EE3A0E0B0E009C08058914CAF4FD0 |
:106B5000BF4F64F480E891ECAFEFBFEF8093A904DE |
:106B60009093AA04A093AB04B093AC046091770710 |
:106B700070917807882777FD8095982F0E94943B25 |
:106B80007B018C016091A9047091AA048091AB04EF |
:106B90009091AC040E94943B9B01AC016D817E817D |
:106BA0008F8198850E940E3C9B01AC01C801B70102 |
:106BB0000E94EF3A0E94773B9301661577050CF42B |
:106BC0009B01C501A216B3060CF4C90149815A8183 |
:106BD000480F591FAB81BC814A1B5B0B57FF03C099 |
:106BE00020E030E005C09401481559050CF49A01E5 |
:106BF000A601C216D3060CF4A90140939A07298175 |
:106C00003A81281B390BEB81FC812E1B3F0B37FF90 |
:106C100003C040E050E005C0A401281539050CF47C |
:106C2000A901C601C416D5060CF0D1C0CA01CFC057 |
:106C300020916E0430916F04C90113E0880F991FF1 |
:106C40001A95E1F7821B930B68E070E00E94953C77 |
:106C50008B0170936F0460936E0440E050E00C94DD |
:106C6000B72780915E04882311F40C94E6290C94D4 |
:106C7000DC29E0904507FF24002711276FA578A99C |
:106C800089A99AA9A80197010E94CA3C80919D07F1 |
:106C900090919E07AA2797FDA095BA2F281B390B24 |
:106CA0004A0B5B0BCA01B90120E130E040E050E043 |
:106CB0000E94CA3C59016A016BA57CA58DA59EA5C1 |
:106CC000A80197010E94CA3C8091A7079091A8074C |
:106CD000AA2797FDA095BA2F281B390B4A0B5B0BEF |
:106CE000CA01B90120E130E040E050E00E94CA3C16 |
:106CF00079018A01F1E2AF16B104C104D10414F4A0 |
:106D00000C94AC2AB0E2AB2EB12CC12CD12C0C943B |
:106D1000BD2A1092110410921204109213041092C2 |
:106D20001404109215041092160410921704109275 |
:106D3000180410928C0710928D0710928E071092F3 |
:106D40008F0710929007109291071092920710925D |
:106D5000930710928407109285071092860710926D |
:106D6000870710927C0710927D0710927E07109281 |
:106D70007F078091210490912204A0912304B09177 |
:106D800024048093250490932604A0932704B093B1 |
:106D900028048091290490912A04A0912B04B09199 |
:106DA0002C0480932D0490932E04A0932F04B09371 |
:106DB00030041092DA031092D90310925D041092FD |
:106DC0005C0410925B0410925A040C94FD2A809388 |
:106DD0009807E2E1CA5C0C94013D8091BD0490915A |
:106DE000BE04A091BF04B091C0048093C5049093E9 |
:106DF000C604A093C704B093C8048091C1049091C5 |
:106E0000C204A091C304B091C4048093C9049093B8 |
:106E1000CA04A093CB04B093CC0408951092BA0492 |
:106E20001092B9041092BC041092BB0408951F92F2 |
:106E30000F920FB60F9211242F933F934F938F937E |
:106E40009F938091B707833019F08430A1F508C073 |
:106E50008EB58093CD041EBC84E08093B7072BC011 |
:106E60008091CD049927382F22278EB59927282B7A |
:106E7000392BC9018D509E4F875E9340D0F480918D |
:106E8000BA07853019F0863069F406C03093BC0724 |
:106E90002093BB0786E00BC03093BE072093BD074D |
:106EA00087E005C03093C0072093BF0785E080933B |
:106EB000BA071092B7079F918F914F913F912F91F1 |
:106EC0000F900FBE0F901F901895A0E1B0E0EBE679 |
:106ED000F7E30C94E53CE0905007FF2433E0EE0C20 |
:106EE000FF1C3A95E1F7002711276091010470918A |
:106EF00002048091030490910404A80197010E9468 |
:106F0000CA3C59016A01C9010E94793A6D877E879E |
:106F10008F87988BC5010E94D93A69877A878B87BA |
:106F20009C876091090470910A0480910B049091F0 |
:106F30000C04A80197010E94CA3C79018A01C90189 |
:106F40000E94793A6D837E838F839887C7010E9460 |
:106F5000D93A69837A838B839C83A090BB07B090D6 |
:106F6000BC078091AE07992787FD9095A81AB90AAA |
:106F70008090BD079090BE078091AF07992787FD4D |
:106F80009095881A990A4090BF075090C007809149 |
:106F9000B007992787FD9095481A590A2090B107A4 |
:106FA0003090B207C090B307D090B407C214D30496 |
:106FB000D0F46090B5077090B6076214730498F42B |
:106FC000710100271127B401882777FD8095982F3C |
:106FD000A80197010E94563C9601442755270E941C |
:106FE000CA3C49011CC02C143D0448F56090B5070B |
:106FF0007090B6076C147D0410F5760100271127F8 |
:10700000B501882777FD8095982FA80197010E94E8 |
:10701000563C9101442755270E94CA3C5901B201B0 |
:10702000882777FD8095982FA80197010E94563CEC |
:107030009301442755270E94CA3C290124C0E090AF |
:10704000B507F090B60700271127B501882777FD0F |
:107050008095982FA80197010E94563C91014427E2 |
:1070600055270E94CA3C5901B401882777FD8095B5 |
:10707000982FA80197010E94563C96014427552756 |
:107080000E94CA3C4901B501882777FD8095982F59 |
:107090000E94943B29853A854B855C850E940E3C75 |
:1070A0005B016C01B401882777FD8095982F0E94C1 |
:1070B000943B7B018C012D813E814F8158850E943C |
:1070C0000E3C2D853E854F8558890E940E3C9B01C4 |
:1070D000AC01C601B5010E94EF3A3B014C01B2017F |
:1070E000882777FD8095982F0E94943B5B016C0167 |
:1070F00029813A814B815C81C801B7010E940E3C15 |
:107100007B018C012D813E814F815885C601B501DF |
:107110000E940E3C9B01AC01C801B7010E94EF3AEE |
:107120000E94773B7B018C0129813A814B815C81F4 |
:10713000C601B5010E940E3C2D853E854F855889BC |
:107140000E940E3C9B01AC01C401B3010E94EE3AC7 |
:107150000E94773BDC01CB01B7010E94D1399C0131 |
:1071600097FF05C088279927821B930B04C088E6E8 |
:1071700091E0821B930BE2E1C05F0C94013D809192 |
:10718000B707813041F0813018F0823049F51CC0DA |
:107190002A9A81E016C02A988091BA07853011F4A6 |
:1071A00081E305C0863011F482E301C083E38EBD24 |
:1071B00088E090E00E94CF0C9093B9078093B807C5 |
:1071C00082E08093B70708958091B8079091B9073E |
:1071D0000E94D80C882321F01EBC83E08093B7075F |
:1071E0000895A0E0B0E0E7EFF8E30C94E73C299ABB |
:1071F000809100018A3011F4289801C0289AAA24AD |
:10720000BB2400E010E088249924EE24FF246624A7 |
:107210007724CC24DD2462E3462E55248091BB07DD |
:107220009091BC07081719072CF40091BB07109127 |
:10723000BC070BC08091BB079091BC078A159B05CA |
:1072400024F4A090BB07B090BC078091BD0790913B |
:10725000BE07E816F9062CF4E090BD07F090BE07D3 |
:107260000BC08091BD079091BE078815990524F445 |
:107270008090BD079090BE078091BF079091C00796 |
:10728000C816D9062CF4C090BF07D090C0070BC019 |
:107290008091BF079091C0078615970524F46090F0 |
:1072A000BF077090C007552081F485B191E0892710 |
:1072B00085B985B192E0892785B982E390E0909302 |
:1072C000C1038093C00352E3552E8AE090E00E94F0 |
:1072D000CF0CEC01CE010E94D80C8823D9F3E091A9 |
:1072E0003307FF27EE0FFF1FEB5FF84F808191817F |
:1072F000843691050CF44A94442011F05A948ECFB0 |
:10730000C8018A199B099093B2078093B107C701FE |
:10731000881999099093B4078093B307C601861919 |
:1073200097099093B6078093B507EEEAF7E0C80196 |
:107330008A0D9B1D62E070E00E94953C6093AE0751 |
:10734000C701880D991D62E070E00E94953C609332 |
:10735000AF07C601860D971D62E070E00E94953C64 |
:107360006093B00789E0A8E6B1E0182E0E943B3D8B |
:10737000E0E1CDB7DEB70C94033D83ED8CBD84B165 |
:10738000846A84B95B9885E08093BA071092B70746 |
:1073900089E0EEEAF7E0A8E6B1E0182E0E942A3D67 |
:1073A00008951F93CF93DF93EC01892B31F461157E |
:1073B000710519F480E090E08EC077FD02C011E005 |
:1073C00001C01FEF209729F48AE51802C00111249B |
:1073D00082C0882777FD8095982F22E330E040E037 |
:1073E00050E00E94563C9E01442737FD4095542FA3 |
:1073F0000E94CA3CF90137FF03C0F095E195FF4FA9 |
:1074000041E0EE30F40734F4E55FFA4F8491282F21 |
:10741000332747C056E1E737F5071CF02AE530E08F |
:1074200040C087E0E637F8071CF029E530E039C0B6 |
:1074300044E0EE37F4071CF028E530E032C053E0BA |
:10744000E433F5071CF027E530E02BC082E0E0389C |
:10745000F8071CF026E530E024C042E0E830F407ED |
:107460001CF025E530E01DC051E0E83BF5071CF0BD |
:1074700024E530E016C081E0EC37F8071CF023E586 |
:1074800030E00FC041E0EF34F4071CF022E530E0BB |
:1074900008C0EB52F1401CF021E530E002C020E5CD |
:1074A00030E01C161D066CF4812F992787FD9095FE |
:1074B000AC01249FC001259F900D349F900D112495 |
:1074C0000AC011162CF484EB90E0821B930B03C0CE |
:1074D000C901845B9040DF91CF911F910895FC0119 |
:1074E00025913491FC01329645915491CA01B9011C |
:1074F0000895A0E0B0E0EFE7FAE30C94EF3C9C01C4 |
:1075000097FD04C041E0C42ED12C06C030952195D2 |
:107510003F4F9FEFC92ED92E2B3531055CF0C901A5 |
:107520008B5590408A35910540F484EB90E0821BA6 |
:10753000930B9C01C1E0D0E010C0C901855B904075 |
:107540008A35910518F4245B304005C088E691E047 |
:10755000821B930B9C01CFEFDFEF220F331F220F13 |
:10756000331FC901875E994F0E946F3A7B018C01DE |
:10757000B601882777FD8095982F0E94943B9B0148 |
:10758000AC01C801B7010E940E3C7B018C01BE0119 |
:10759000882777FD8095982F0E94943B9B01AC0132 |
:1075A000C801B7010E940E3CE8E0CDB7DEB70C94ED |
:1075B0000B3D2AE530E0281B390BC9010E94793ABE |
:1075C0000895FC014150504030F001900616D1F76B |
:1075D0003197CF0108958827992708955058192E7B |
:1075E000EFD001D0D2C0BA1762077307840795079E |
:1075F000B1F188F40EF410940B2EBA2FA02D062EA4 |
:10760000622F202D072E732F302D082E842F402D12 |
:10761000092E952F502DFF275523B9F0591B49F0FE |
:10762000573E98F0469537952795A795F040539586 |
:10763000C9F776F0BA0F621F731F841F30F4879565 |
:1076400077956795B795F040939517FA0F2E0895A3 |
:10765000BF1BBB27BA0B620B730B840BF6CFDEF696 |
:10766000DBC0AED001D091C0552359F0992369F009 |
:107670009F575F57951B33F442F4903811F491589B |
:1076800005C09BC091589F3F09F4C6C0BB27112479 |
:1076900062177307840730F4660F771F881FBB1FBC |
:1076A000915098F311D00F920FD00F920DD0A0E807 |
:1076B0002617370748071B0609F0A048BA2F602D88 |
:1076C0007F918F9100240895A0E80024621773072A |
:1076D0008407B10528F0621B730B840BB1090A2AD9 |
:1076E000660F771F881FBB1FA69581F7089597FB2C |
:1076F00073D09F3738F0FEE9F91B982F872F762F2C |
:107700006B2F05C086C09695879577956795F15044 |
:10771000D0F73EF490958095709561957F4F8F4F8F |
:107720009F4F0895E89403C097FB0EF4F3DFB62F44 |
:10773000672F782F892F9EE9002427C00ED05EF096 |
:1077400004C00BD026F001C008D019F020F48FEF50 |
:10775000089580E0089581E0089597FB092E05269D |
:1077600000F8689430D0E89407FC07C062177307EC |
:107770008407950721F008F40094079498940895DD |
:107780009A95BB0F661F771F881F11249923A1F0BC |
:107790008823B2F79F3F59F0BB0F48F421F4002033 |
:1077A00011F460FF04C06F5F7F4F8F4F9F4F881FA2 |
:1077B0009795879597F908952CC09FEF80EC0895D1 |
:1077C000052E092607FA440F551F5F3F79F0AA27B7 |
:1077D000A51708F051E04795880F991F9F3F31F09A |
:1077E000BB27B91708F091E0879508959F919F9165 |
:1077F0001124E3CF97FB880F991F9F3F31F0BB27E0 |
:10780000B91708F091E0879508959F919F911124F1 |
:10781000D4CF66277727882799270895D1DF01D00D |
:10782000B4CF992339F0552329F09F575F57950F0F |
:1078300013F49AF1F1CF91589F3FE1F3629FA12D8C |
:107840000F92BB27639FA00DB11DEE27729FA00D65 |
:10785000B11DEE1FAF93AA27649FB00DE11D739F6A |
:10786000B00DE11DAA1F6627829FB00DE11DA61F66 |
:107870005527749FE00DA11D551F839FE00DA11D8D |
:10788000561F849FA00D511D852F7A2F6E2F1F909C |
:107890000F9088231AF4939539F48FCF000C111CA4 |
:1078A000BB1F661F771F881F01280895629FD001A4 |
:1078B000739FF001829FE00DF11D649FE00DF11DAB |
:1078C000929FF00D839FF00D749FF00D659FF00D5A |
:1078D0009927729FB00DE11DF91F639FB00DE11D47 |
:1078E000F91FBD01CF0111240895991B79E004C04F |
:1078F000991F961708F0961B881F7A95C9F78095EF |
:107900000895AA1BBB1B51E107C0AA1FBB1FA617E6 |
:10791000B70710F0A61BB70B881F991F5A95A9F738 |
:1079200080959095BC01CD01089597FB092E0726FF |
:107930000AD077FD04D0E5DF06D000201AF4709558 |
:1079400061957F4F0895F6F7909581959F4F089523 |
:10795000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F53 |
:10796000EE1FFF1FA217B307E407F50720F0A21BC5 |
:10797000B30BE40BF50B661F771F881F991F1A9432 |
:1079800069F760957095809590959B01AC01BD015C |
:10799000CF01089597FB092E05260ED057FD04D080 |
:1079A000D7DF0AD0001C38F45095409530952195CA |
:1079B0003F4F4F4F5F4F0895F6F790958095709524 |
:1079C00061957F4F8F4F9F4F08952F923F924F9217 |
:1079D0005F926F927F928F929F92AF92BF92CF925F |
:1079E000DF92EF92FF920F931F93CF93DF93CDB768 |
:1079F000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFE0 |
:107A000009942A88398848885F846E847D848C84B0 |
:107A10009B84AA84B984C884DF80EE80FD800C81B9 |
:107A20001B81AA81B981CE0FD11D0FB6F894DEBF9C |
:107A30000FBECDBFED010895EE0FFF1F0590F4912D |
:107A4000E02D0994F999FECFB2BDA1BDF89A119627 |
:107A500000B40895F7DF01921A94E1F70895F999B7 |
:107A6000FECFB2BDA1BD00BC11960FB6F894FA9A34 |
:107A7000F99A0FBE08950190F2DF1A94E1F7089584 |
:027A8000FFCF36 |
:107A82000A01FF64496E74656772616C4E69636BCB |
:107A920020202020496E74656772616C526F6C6C95 |
:107AA200202020204163634E69636B202020202028 |
:107AB20020202020416363526F6C6C202020202004 |
:107AC200202020204779726F47696572202020208C |
:107AD20020202020486F6568656E576572742020EB |
:107AE200202020204163635A2020202020202020B3 |
:107AF20020202020476173202020202020202020C9 |
:107B0200202020204B6F6D7061737356616C756518 |
:107B1200202020205370616E6E756E672020202019 |
:107B220020202020456D7066616E67202020202075 |
:107B320020202020416E616C6F673131202020208F |
:107B4200202020204D6F746F725F566F726E652019 |
:107B5200202020204D6F746F725F48696E74656ECD |
:107B6200202020204D6F746F725F4C696E6B732002 |
:107B7200202020204D6F746F725F526563687473AA |
:107B8200202020204163635F5A20202020202020D3 |
:107B9200202020204D697474656C4163634E6963D3 |
:107BA2006B2020204D697474656C416363526F6C65 |
:107BB2006C202020496E74656772616C4572724E4A |
:107BC20069636B20496E74656772616C45727252AB |
:107BD2006F6C6C204D697474656C496E744E696388 |
:107BE2006B2020204D697474656C496E74526F6C01 |
:107BF2006C0920004E65757472616C4E69636B206E |
:107C020020202020526F6C6C4F66667365742020B2 |
:107C120020202020496E74526F6C6C2A46616B746E |
:107C22006F722020416E616C6F67323620202020F7 |
:107C320020202020446972656B74417573676C5211 |
:107C42006F6C6C204D65737377657274526F6C6CD8 |
:107C520020202020417573676C65696368526F6CE0 |
:107C62006C202020492D4C616765526F6C6C20207E |
:107C720020202020537469636B526F6C6C2020208B |
:107C820020202020FFFF0A016400007D0000FF0386 |
:107C92000102030405060708090A48616C6C6F209B |
:107CA20057656C7400000000000000000000000036 |
:107CB20000000000000000000000000000000000C2 |
:107CC20000000000000000000000000000000000B2 |
:107CD20000000000000000000000000000000000A2 |
:107CE200000000000000000000000C01426567690E |
:107CF2006E6E657200004E6F726D616C00005370A3 |
:107D02006F72740000640090D0030090D0030017DB |
:107D1200B7D13830FB103A409696020A644664ECBA |
:027D2200FF0060 |
:00000001FF |
/branches/v0.60_MicroMag3_Nick666/V0.67g/FlightCtrl.aps |
---|
0,0 → 1,0 |
<AVRStudio><MANAGEMENT><ProjectName>FlightCtrl</ProjectName><Created>15-May-2007 11:20:41</Created><LastEdit>11-Oct-2007 22:58:54</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>15-May-2007 11:20:41</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\Flight-Ctrl.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\SVN\MikroKopter\FlightCtrl\branches\V0.64_ZeroWarnings\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega644.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>uart.c</SOURCEFILE><SOURCEFILE>analog.c</SOURCEFILE><SOURCEFILE>eeprom.c</SOURCEFILE><SOURCEFILE>fc.c</SOURCEFILE><SOURCEFILE>GPS.c</SOURCEFILE><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>menu.c</SOURCEFILE><SOURCEFILE>printf_P.c</SOURCEFILE><SOURCEFILE>rc.c</SOURCEFILE><SOURCEFILE>timer0.c</SOURCEFILE><SOURCEFILE>twimaster.c</SOURCEFILE><HEADERFILE>uart.h</HEADERFILE><HEADERFILE>_Settings.h</HEADERFILE><HEADERFILE>analog.h</HEADERFILE><HEADERFILE>fc.h</HEADERFILE><HEADERFILE>gps.h</HEADERFILE><HEADERFILE>main.h</HEADERFILE><HEADERFILE>menu.h</HEADERFILE><HEADERFILE>old_macros.h</HEADERFILE><HEADERFILE>printf_P.h</HEADERFILE><HEADERFILE>rc.h</HEADERFILE><HEADERFILE>Settings.h</HEADERFILE><HEADERFILE>timer0.h</HEADERFILE><HEADERFILE>twimaster.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega644</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>Flight-Ctrl.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>GPS.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>analog.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>eeprom.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>fc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>menu.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>printf_P.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>rc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>timer0.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>twimaster.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>uart.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS><LIB>libc.a</LIB><LIB>libm.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Wstrict-prototypes -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -DVERSION_HAUPTVERSION=0 -DVERSION_NEBENVERSION=64 -DVERSION_KOMPATIBEL=5</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>uart.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>menu.c</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>timer0.c</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>fc.c</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>fc.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>menu.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>TWIMASTER.C</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>twimaster.h</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>uart.h</FileName><Status>1</Status></File00009><File00010><FileId>00010</FileId><FileName>_Settings.h</FileName><Status>1</Status></File00010><File00011><FileId>00011</FileId><FileName>analog.h</FileName><Status>1</Status></File00011><File00012><FileId>00012</FileId><FileName>gps.h</FileName><Status>1</Status></File00012><File00013><FileId>00013</FileId><FileName>main.h</FileName><Status>1</Status></File00013><File00014><FileId>00014</FileId><FileName>old_macros.h</FileName><Status>1</Status></File00014><File00015><FileId>00015</FileId><FileName>printf_P.h</FileName><Status>1</Status></File00015><File00016><FileId>00016</FileId><FileName>rc.h</FileName><Status>1</Status></File00016><File00017><FileId>00017</FileId><FileName>Settings.h</FileName><Status>1</Status></File00017><File00018><FileId>00018</FileId><FileName>timer0.h</FileName><Status>1</Status></File00018></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio> |
/branches/v0.60_MicroMag3_Nick666/V0.67g/GPS.c |
---|
0,0 → 1,30 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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/V0.67g/License.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/V0.67g/Settings.h |
---|
--- branches/v0.60_MicroMag3_Nick666/V0.67g/_Settings.h (nonexistent) |
+++ branches/v0.60_MicroMag3_Nick666/V0.67g/_Settings.h (revision 554) |
@@ -0,0 +1,50 @@ |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+// Testmodi |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+#define MOTOR_OFF 0 |
+#define MOTOR_TEST 0 |
+ |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+// Abstimmung |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+#define ACC_AMPLIFY 12 |
+#define FAKTOR_P 1 |
+#define FAKTOR_I 0.0001 |
+ |
+ |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+// Debug-Interface |
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
+#define SIO_DEBUG 1 // Soll der Debugger aktiviert sein? |
+#define MIN_DEBUG_INTERVALL 500 // 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/V0.67g/analog.c |
---|
0,0 → 1,147 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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 AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0; |
volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 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; |
off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]); |
if(off > 20) off -= 10; |
OCR0A = off; |
Delay_ms_Mess(100); |
if(MessLuftdruck < 850) off = 0; |
for(; off < 250;off++) |
{ |
OCR0A = off; |
Delay_ms_Mess(50); |
printf("."); |
if(MessLuftdruck < 900) break; |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
DruckOffsetSetting = off; |
Delay_ms_Mess(300); |
} |
//####################################################################################### |
// |
SIGNAL(SIG_ADC) |
//####################################################################################### |
{ |
static unsigned char kanal=0,state = 0; |
static unsigned int gier1, roll1, nick1; |
ANALOG_OFF; |
switch(state++) |
{ |
case 0: |
gier1 = ADC; |
kanal = 1; |
ZaehlMessungen++; |
break; |
case 1: |
roll1 = ADC; |
kanal = 2; |
break; |
case 2: |
nick1 = ADC; |
kanal = 4; |
break; |
case 3: |
UBat = (3 * UBat + ADC / 3) / 4;//(UBat + ((ADC * 39) / 256) + 19) / 2; |
kanal = 6; |
break; |
case 4: |
Aktuell_ay = NeutralAccY - ADC; |
AdWertAccRoll = Aktuell_ay; |
kanal = 7; |
break; |
case 5: |
Aktuell_ax = ADC - NeutralAccX; |
AdWertAccNick = Aktuell_ax; |
kanal = 0; |
break; |
case 6: |
if(PlatinenVersion == 10) AdWertGier = (ADC + gier1) / 2; |
else AdWertGier = ADC + gier1; |
kanal = 1; |
break; |
case 7: |
if(PlatinenVersion == 10) AdWertRoll = (ADC + roll1) / 2; |
else AdWertRoll = ADC + roll1; |
kanal = 2; |
break; |
case 8: |
if(PlatinenVersion == 10) AdWertNick = (ADC + nick1) / 2; |
else AdWertNick = ADC + nick1; |
//AdWertNick = 0; |
//AdWertNick += Poti2; |
kanal = 5; |
break; |
case 9: |
AdWertAccHoch = (signed int) ADC - NeutralAccZ; |
AdWertAccHoch += abs(Aktuell_ay) / 4 + abs(Aktuell_ax) / 4; |
if(AdWertAccHoch > 1) |
{ |
if(NeutralAccZ < 800) NeutralAccZ+= 0.02; |
} |
else if(AdWertAccHoch < -1) |
{ |
if(NeutralAccZ > 600) NeutralAccZ-= 0.02; |
} |
messanzahl_AccHoch = 1; |
Aktuell_az = ADC; |
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren |
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen |
kanal = 3; |
break; |
case 10: |
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; |
if(state != 0) ANALOG_ON; |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/analog.h |
---|
0,0 → 1,24 |
/*####################################################################################### |
#######################################################################################*/ |
extern volatile int UBat; |
extern volatile int AdWertNick, AdWertRoll, AdWertGier; |
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch; |
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 volatile char MessanzahlNick; |
unsigned int ReadADC(unsigned char adc_input); |
void ADC_Init(void); |
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/V0.67g/compass.c |
---|
0,0 → 1,240 |
/* |
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" |
struct MM3_calib_struct ee_calib EEMEM; // Reservierung im EEPROM |
struct MM3_working_struct MM3; |
struct MM3_calib_struct MM3_calib; |
//############################################################################ |
// Initialisierung |
void init_MM3(void) |
//############################################################################ |
{ |
// SPI-Schnittstelle initialisieren |
SPCR = (1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0); // Interrupt an, Master, 156 kHz Oszillator |
DDRB |= (1<<PB7)|(1<<PB5)|(1<<PB2); // J8, MOSI, SCK Ausgang |
PORTD &= ~(1<<PD3); // J5 permanent auf Low |
// Init Statemachine |
MM3.AXIS = MM3_X; |
MM3.STATE = MM3_RESET; |
// Kalibrierung aus dem EEprom lesen |
eeprom_read_block(&MM3_calib,&ee_calib,sizeof(struct MM3_calib_struct)); |
} |
//############################################################################ |
// Wird in der SIGNAL (SIG_OVERFLOW0) aufgerufen |
void timer0_MM3(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 SPI-Übertragung (MOSI und MISO) aus |
else if (MM3.AXIS == MM3_Y) SPDR = 0x32; // Micromag Period Select ist auf 256 (0x30) |
else SPDR = 0x33; //if (MM3.AXIS == MM3_Z) // 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) |
} |
} |
//############################################################################ |
// SPI byte ready |
SIGNAL (SIG_SPI) |
//############################################################################ |
{ |
static char tmp; |
int wert; |
switch (MM3.STATE) |
{ |
case MM3_DRDY: // 1. Byte ist da, zwischenspeichern |
tmp = SPDR; |
SPDR = 0x00; // Übertragung von 2. Byte auslösen |
MM3.STATE = MM3_BYTE2; |
return; |
case MM3_BYTE2: // 2. Byte der entsprechenden Achse ist da |
wert = tmp; |
wert <<= 8; // 1. Byte an MSB-Stelle rücken |
wert |= SPDR; // 2. Byte dranpappen |
if(abs(wert) < Max_Axis_Value) // Spikes filtern. Zuweisung nur, wenn Max-Wert nicht überschritten |
switch (MM3.AXIS) |
{ |
case MM3_X: |
MM3.x_axis = wert; |
MM3.AXIS = MM3_Y; |
break; |
case MM3_Y: |
MM3.y_axis = wert; |
MM3.AXIS = MM3_Z; |
break; |
default: //case MM3_Z: |
MM3.z_axis = wert; |
MM3.AXIS = MM3_X; |
} |
MM3.STATE = MM3_RESET; |
} |
} |
//############################################################################ |
// 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; |
GRN_ON; |
ROT_OFF; |
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) |
{ |
ROT_FLASH; |
GRN_FLASH; |
beeptime = 50; |
beeper = 50; |
} |
beeper--; |
// Schleife mit 100 Hz |
timer = SetDelay(10); |
while(!CheckDelay(timer)); |
// Wenn Gas zurück genommen wird, Kalibrierung mit 1/2 Sekunde Verzögerung beenden |
if (PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 100) measurement--; |
} |
// Wertebereich der Achsen |
MM3_calib.X_range = (x_max - x_min); |
MM3_calib.Y_range = (y_max - y_min); |
MM3_calib.Z_range = (z_max - z_min); |
// Offset der Achsen |
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(struct MM3_calib_struct)); |
} |
//############################################################################ |
// Neigungskompensierung und Berechnung der Ausrichtung |
signed int heading_MM3(void) |
//############################################################################ |
{ |
float sin_nick, cos_nick, sin_roll, cos_roll; |
float x_corr, y_corr; |
signed int x_axis,y_axis,z_axis,heading; |
signed int nicktilt,rolltilt; |
unsigned int div_faktor; |
div_faktor = (uint16_t)EE_Parameter.UserParam3 * 8; |
// Berechung von sinus und cosinus |
nicktilt = (IntegralNick/div_faktor); |
sin_nick = sin_f(nicktilt); |
cos_nick = cos_f(nicktilt); |
rolltilt = (IntegralRoll/div_faktor); |
sin_roll = sin_f(rolltilt); |
cos_roll = cos_f(rolltilt); |
// Offset |
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); |
// Normierung Wertebereich |
if ((MM3_calib.X_range > MM3_calib.Y_range) && (MM3_calib.X_range > MM3_calib.Z_range)) |
{ |
y_axis = ((long)y_axis * MM3_calib.X_range) / MM3_calib.Y_range; |
z_axis = ((long)z_axis * MM3_calib.X_range) / MM3_calib.Z_range; |
} |
else if ((MM3_calib.Y_range > MM3_calib.X_range) && (MM3_calib.Y_range > MM3_calib.Z_range)) |
{ |
x_axis = ((long)x_axis * MM3_calib.Y_range) / MM3_calib.X_range; |
z_axis = ((long)z_axis * MM3_calib.Y_range) / MM3_calib.Z_range; |
} |
else //if ((MM3_calib.Z_range > MM3_calib.X_range) && (MM3_calib.Z_range > MM3_calib.Y_range)) |
{ |
x_axis = ((long)x_axis * MM3_calib.Z_range) / MM3_calib.X_range; |
y_axis = ((long)y_axis * MM3_calib.Z_range) / MM3_calib.Y_range; |
} |
// Neigungskompensation |
x_corr = x_axis * cos_nick; |
x_corr += y_axis * sin_roll * sin_nick; |
x_corr -= z_axis * cos_roll * sin_nick; |
y_corr = y_axis * cos_roll; |
y_corr += z_axis * sin_roll; |
// Winkelberechnung |
heading = atan2_i(x_corr, y_corr); |
if (heading < 0) heading = -heading; |
else heading = 360 - heading; |
/* |
if (!x_corr && y_corr <0) return (90); |
if (!x_corr && y_corr >0) return (270); |
heading = atan(y_corr/x_corr)*57.29578; |
if (x_corr < 0) heading = 180-heading; |
if (x_corr > 0 && y_corr < 0) heading = -heading; |
if (x_corr > 0 && y_corr > 0) heading = 360 - heading; |
*/ |
return (heading); |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/compass.h |
---|
0,0 → 1,44 |
struct MM3_working_struct |
{ |
uint8_t STATE; |
unsigned int DRDY; |
uint8_t AXIS; |
volatile signed int x_axis; |
volatile signed int y_axis; |
volatile signed int z_axis; |
}; |
struct MM3_calib_struct |
{ |
int8_t X_off; |
int8_t Y_off; |
int8_t Z_off; |
uint16_t X_range; |
uint16_t Y_range; |
uint16_t Z_range; |
}; |
extern struct MM3_working_struct MM3; |
extern struct MM3_calib_struct MM3_calib; |
void init_MM3(void); |
void timer0_MM3(void); |
void calib_MM3(void); |
signed int heading_MM3(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 3 |
#define MM3_BYTE2 4 |
#define MM3_X 5 |
#define MM3_Y 6 |
#define MM3_Z 7 |
#define MM3_TILT 8 |
#define MM3_IDLE 9 |
/branches/v0.60_MicroMag3_Nick666/V0.67g/eeprom.c |
---|
0,0 → 1,182 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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 = CFG_ACHSENKOPPLUNG_AKTIV;//CFG_HOEHENREGELUNG | /*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV | CFG_KOMPASS_FIX;//0x01; |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 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 = 4; // 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 = 14; // 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 = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 120; //80 // Wert : 0-250 |
EE_Parameter.Gyro_I = 150; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 94; // 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 = 32; |
EE_Parameter.UserParam1 = 32 * 4; //zur freien Verwendung |
EE_Parameter.UserParam2 = 0; //zur freien Verwendung |
EE_Parameter.UserParam3 = 0; //zur freien Verwendung |
EE_Parameter.UserParam4 = 0; //zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 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; |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.LoopConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
EE_Parameter.AchsKopplung1 = 100; |
EE_Parameter.AchsGegenKopplung1 = 10; |
EE_Parameter.WinkelUmschlagNick = 100; |
EE_Parameter.WinkelUmschlagRoll = 100; |
EE_Parameter.GyroAccAbgleich = 50; // 1/k |
EE_Parameter.Driftkomp = 4; |
EE_Parameter.DynamicStability = 100; |
memcpy(EE_Parameter.Name, "Sport\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.Kanalbelegung[K_POTI4] = 8; |
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV;//CFG_HOEHENREGELUNG | /*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV;//0x01; |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 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 = 10; // 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 = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 175; //80 // Wert : 0-250 |
EE_Parameter.Gyro_I = 175; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 94; // 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 = 32; |
EE_Parameter.UserParam1 = 20 * 4; // zur freien Verwendung |
EE_Parameter.UserParam2 = 0; // zur freien Verwendung |
EE_Parameter.UserParam3 = 0; // zur freien Verwendung |
EE_Parameter.UserParam4 = 0; // zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 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; |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.LoopConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts |
EE_Parameter.AchsKopplung1 = 100; // Faktor, mit dem Gier die Achsen Roll und Nick verkoppelt |
EE_Parameter.AchsGegenKopplung1 = 10; |
EE_Parameter.WinkelUmschlagNick = 100; |
EE_Parameter.WinkelUmschlagRoll = 100; |
EE_Parameter.GyroAccAbgleich = 100; // 1/k |
EE_Parameter.Driftkomp = 4; |
EE_Parameter.DynamicStability = 75; |
memcpy(EE_Parameter.Name, "Normal\0", 12); |
} |
void DefaultKonstanten3(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 = CFG_DREHRATEN_BEGRENZER | CFG_ACHSENKOPPLUNG_AKTIV;///*CFG_HOEHEN_SCHALTER |*/ CFG_KOMPASS_AKTIV;//0x01; |
EE_Parameter.Hoehe_MinGas = 30; |
EE_Parameter.MaxHoehe = 251; // Wert : 0-250 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 = 3; //2 // Wert : 1-6 |
EE_Parameter.Stick_D = 0; //8 // Wert : 0-64 |
EE_Parameter.Gier_P = 8; // 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 = 128; // Wert : 0-250 |
EE_Parameter.Gyro_P = 200; //80 // Wert : 0-250 |
EE_Parameter.Gyro_I = 175; // Wert : 0-250 |
EE_Parameter.UnterspannungsWarnung = 94; // 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 = 10; |
EE_Parameter.UserParam1 = 20 * 4; // zur freien Verwendung |
EE_Parameter.UserParam2 = 0; // zur freien Verwendung |
EE_Parameter.UserParam3 = 0; // zur freien Verwendung |
EE_Parameter.UserParam4 = 0; // zur freien Verwendung |
EE_Parameter.UserParam5 = 0; // zur freien Verwendung |
EE_Parameter.UserParam6 = 0; // zur freien Verwendung |
EE_Parameter.UserParam7 = 0; // zur freien Verwendung |
EE_Parameter.UserParam8 = 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; |
EE_Parameter.LoopGasLimit = 50; |
EE_Parameter.LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag |
EE_Parameter.LoopHysterese = 50; |
EE_Parameter.LoopConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts |
EE_Parameter.AchsKopplung1 = 100; // Faktor, mit dem Gier die Achsen Roll und Nick verkoppelt |
EE_Parameter.AchsGegenKopplung1 = 10; |
EE_Parameter.WinkelUmschlagNick = 100; |
EE_Parameter.WinkelUmschlagRoll = 100; |
EE_Parameter.GyroAccAbgleich = 100; // 1/k |
EE_Parameter.Driftkomp = 4; |
EE_Parameter.DynamicStability = 50; |
memcpy(EE_Parameter.Name, "Beginner\0", 12); |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/fc.c |
---|
0,0 → 1,1149 |
/*####################################################################################### |
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" |
#include "eeprom.c" |
unsigned char h,m,s; |
volatile unsigned int I2CTimeout = 100; |
int MesswertNick,MesswertRoll,MesswertGier; |
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0; |
int Mittelwert_AccNick, Mittelwert_AccRoll,Mittelwert_AccHoch; |
volatile int NeutralAccX=0, NeutralAccY=0; |
volatile float NeutralAccZ = 0; |
long IntegralNick = 0,IntegralNick2 = 0; |
long IntegralRoll = 0,IntegralRoll2 = 0; |
long IntegralAccNick = 0,IntegralAccRoll = 0,IntegralAccZ = 0; |
long Integral_Gier = 0; |
long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0; |
long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0; |
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0; |
long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2; |
long Mess_Integral_Hoch = 0; |
int KompassValue = 0; |
int KompassStartwert = 0; |
int KompassRichtung = 0; |
uint8_t updKompass = 0; |
unsigned char MAX_GAS,MIN_GAS; |
unsigned char Notlandung = 0; |
unsigned char HoehenReglerAktiv = 0; |
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L; |
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; |
int LageKorrekturRoll = 0,LageKorrekturNick = 0; |
float Ki = FAKTOR_I; |
unsigned char Looping_Nick = 0,Looping_Roll = 0; |
unsigned char Looping_Links = 0, Looping_Rechts = 0, Looping_Unten = 0, Looping_Oben = 0; |
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 = 150; // 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_UserParam5 = 0; |
unsigned char Parameter_UserParam6 = 0; |
unsigned char Parameter_UserParam7 = 0; |
unsigned char Parameter_UserParam8 = 0; |
unsigned char Parameter_ServoNickControl = 100; |
unsigned char Parameter_LoopGasLimit = 70; |
unsigned char Parameter_AchsKopplung1 = 0; |
unsigned char Parameter_AchsGegenKopplung1 = 0; |
unsigned char Parameter_DynamicStability = 100; |
struct mk_param_struct EE_Parameter; |
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20; |
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 calib_acc(void) |
//############################################################################ |
{ |
unsigned int timer; |
acc_neutral.X = 0; |
acc_neutral.Y = 0; |
acc_neutral.Z = 0; |
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(struct acc_neutral_struct)); |
} |
*/ |
//############################################################################ |
// Nullwerte ermitteln |
void SetNeutral(void) |
//############################################################################ |
{ |
NeutralAccX = 0; |
NeutralAccY = 0; |
NeutralAccZ = 0; |
AdNeutralNick = 0; |
AdNeutralRoll = 0; |
AdNeutralGier = 0; |
Parameter_AchsKopplung1 = 0; |
Parameter_AchsGegenKopplung1 = 0; |
CalibrierMittelwert(); |
Delay_ms_Mess(100); |
CalibrierMittelwert(); |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
{ |
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
} |
AdNeutralNick= AdWertNick; |
AdNeutralRoll= AdWertRoll; |
AdNeutralGier= AdWertGier; |
StartNeutralRoll = AdNeutralRoll; |
StartNeutralNick = AdNeutralNick; |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY; |
NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY; |
NeutralAccZ = Aktuell_az; |
} |
else |
{ |
NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]); |
NeutralAccY = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1]); |
NeutralAccZ = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1]); |
} |
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; |
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L; |
ExternHoehenValue = 0; |
} |
//############################################################################ |
// Bearbeitet die Messwerte |
void Mittelwert(void) |
//############################################################################ |
{ |
static signed long tmpl,tmpl2; |
MesswertGier = (signed int) AdNeutralGier - AdWertGier; |
MesswertRoll = (signed int) AdWertRoll - AdNeutralRoll; |
MesswertNick = (signed int) AdWertNick - AdNeutralNick; |
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++ |
Mittelwert_AccNick = ((long)Mittelwert_AccNick * 1 + ((ACC_AMPLIFY * (long)AdWertAccNick))) / 2L; |
Mittelwert_AccRoll = ((long)Mittelwert_AccRoll * 1 + ((ACC_AMPLIFY * (long)AdWertAccRoll))) / 2L; |
Mittelwert_AccHoch = ((long)Mittelwert_AccHoch * 1 + ((long)AdWertAccHoch)) / 2L; |
IntegralAccNick += ACC_AMPLIFY * AdWertAccNick; |
IntegralAccRoll += ACC_AMPLIFY * AdWertAccRoll; |
IntegralAccZ += Aktuell_az - NeutralAccZ; |
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++ |
Mess_Integral_Gier += MesswertGier; |
Mess_Integral_Gier2 += MesswertGier; |
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++ |
if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) |
{ |
tmpl = Mess_IntegralNick / 4096L; |
tmpl *= MesswertGier; |
tmpl *= Parameter_AchsKopplung1; //125 |
tmpl /= 2048L; |
tmpl2 = Mess_IntegralRoll / 4096L; |
tmpl2 *= MesswertGier; |
tmpl2 *= Parameter_AchsKopplung1; |
tmpl2 /= 2048L; |
} |
else tmpl = tmpl2 = 0; |
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++ |
MesswertRoll += tmpl; |
MesswertRoll += (tmpl2*Parameter_AchsGegenKopplung1)/512L; //109 |
Mess_IntegralRoll2 += MesswertRoll; |
Mess_IntegralRoll += MesswertRoll - LageKorrekturRoll; |
if(Mess_IntegralRoll > Umschlag180Roll) |
{ |
Mess_IntegralRoll = -(Umschlag180Roll - 10000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
if(Mess_IntegralRoll <-Umschlag180Roll) |
{ |
Mess_IntegralRoll = (Umschlag180Roll - 10000L); |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
} |
if(AdWertRoll < 15) MesswertRoll = -1000; |
if(AdWertRoll < 7) MesswertRoll = -2000; |
if(PlatinenVersion == 10) |
{ |
if(AdWertRoll > 1010) MesswertRoll = +1000; |
if(AdWertRoll > 1017) MesswertRoll = +2000; |
} |
else |
{ |
if(AdWertRoll > 2020) MesswertRoll = +1000; |
if(AdWertRoll > 2034) MesswertRoll = +2000; |
} |
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++ |
MesswertNick -= tmpl2; |
MesswertNick -= (tmpl*Parameter_AchsGegenKopplung1)/512L; |
Mess_IntegralNick2 += MesswertNick; |
Mess_IntegralNick += MesswertNick - LageKorrekturNick; |
if(Mess_IntegralNick > Umschlag180Nick) |
{ |
Mess_IntegralNick = -(Umschlag180Nick - 10000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
if(Mess_IntegralNick <-Umschlag180Nick) |
{ |
Mess_IntegralNick = (Umschlag180Nick - 10000L); |
Mess_IntegralNick2 = Mess_IntegralNick; |
} |
if(AdWertNick < 15) MesswertNick = -1000; |
if(AdWertNick < 7) MesswertNick = -2000; |
if(PlatinenVersion == 10) |
{ |
if(AdWertNick > 1010) MesswertNick = +1000; |
if(AdWertNick > 1017) MesswertNick = +2000; |
} |
else |
{ |
if(AdWertNick > 2020) MesswertNick = +1000; |
if(AdWertNick > 2034) MesswertNick = +2000; |
} |
//++++++++++++++++++++++++++++++++++++++++++++++++ |
// ADC einschalten |
ANALOG_ON; |
//++++++++++++++++++++++++++++++++++++++++++++++++ |
Integral_Gier = Mess_Integral_Gier; |
IntegralNick = Mess_IntegralNick; |
IntegralRoll = Mess_IntegralRoll; |
IntegralNick2 = Mess_IntegralNick2; |
IntegralRoll2 = Mess_IntegralRoll2; |
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll) |
{ |
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; |
MesswertNick = AdWertNick; |
MesswertRoll = AdWertRoll; |
MesswertGier = AdWertGier; |
Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick; |
Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll; |
Mittelwert_AccHoch = (long)AdWertAccHoch; |
// 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; |
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
} |
//############################################################################ |
// 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(); |
} |
//############################################################################ |
// 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_UserParam5,EE_Parameter.UserParam5,0,255); |
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6,0,255); |
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7,0,255); |
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8,0,255); |
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl,0,255); |
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit,0,255); |
CHK_POTI(Parameter_AchsKopplung1, EE_Parameter.AchsKopplung1,0,255); |
CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255); |
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,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 long IntegralFehlerNick = 0; |
static long 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; |
static long ausgleichNick, ausgleichRoll; |
Mittelwert(); |
GRN_ON; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gaswert ermitteln |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
GasMischanteil = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120; |
if(GasMischanteil > MAX_GAS - 20) GasMischanteil = MAX_GAS - 20; |
if(GasMischanteil < 0) GasMischanteil = 0; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Emfang schlecht |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(SenderOkay < 100) |
{ |
if(!PcZugriff) |
{ |
if(BeepMuster == 0xffff) |
{ |
beeptime = 15000; |
BeepMuster = 0x0c00; |
} |
} |
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; |
} |
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 |
{ |
if(++delay_neutral > 200) // nicht sofort |
{ |
GRN_OFF; |
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) |
{ |
unsigned char setting=1; |
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 |
} |
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
{ |
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
} |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
SetNeutral(); |
Piep(GetActiveParamSetNumber()); |
} |
} |
else |
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
{ |
if(++delay_neutral > 200) // nicht sofort |
{ |
GRN_OFF; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],0xff); // Werte löschen |
MotorenEin = 0; |
delay_neutral = 0; |
modell_fliegt = 0; |
SetNeutral(); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],NeutralAccX / 256); // ACC-NeutralWerte speichern |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],NeutralAccX % 256); // ACC-NeutralWerte speichern |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],NeutralAccY / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],NeutralAccY % 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)NeutralAccZ / 256); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)NeutralAccZ % 256); |
Piep(GetActiveParamSetNumber()); |
} |
} |
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) |
{ |
int tmp_int; |
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; |
#define KEY_VALUE (Parameter_UserParam1 * 4) //(Poti3 * 8) |
if(DubWiseKeys[1]) beeptime = 10; |
if(DubWiseKeys[1] & DUB_KEY_UP) tmp_int = KEY_VALUE; else |
if(DubWiseKeys[1] & DUB_KEY_DOWN) tmp_int = -KEY_VALUE; else tmp_int = 0; |
ExternStickNick = (ExternStickNick * 7 + tmp_int) / 8; |
if(DubWiseKeys[1] & DUB_KEY_LEFT) tmp_int = KEY_VALUE; else |
if(DubWiseKeys[1] & DUB_KEY_RIGHT) tmp_int = -KEY_VALUE; else tmp_int = 0; |
ExternStickRoll = (ExternStickRoll * 7 + tmp_int) / 8; |
if(DubWiseKeys[0] & 8) ExternStickGier = 50;else |
if(DubWiseKeys[0] & 4) ExternStickGier =-50;else ExternStickGier = 0; |
if(DubWiseKeys[0] & 2) ExternHoehenValue++; |
if(DubWiseKeys[0] & 16) ExternHoehenValue--; |
StickNick += ExternStickNick / 8; |
StickRoll += ExternStickRoll / 8; |
StickGier += ExternStickGier; |
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0; |
if(GyroFaktor < 0) GyroFaktor = 0; |
if(IntegralFaktor < 0) IntegralFaktor = 0; |
// greift in den Stick ein, um ungewolltes überschlagen zu verhindern |
if(!(EE_Parameter.LoopConfig & CFG_LOOP_LINKS) && !(EE_Parameter.LoopConfig & CFG_LOOP_RECHTS)) |
{ |
if(IntegralNick > 60000) |
{ |
StickNick -= 8 * EE_Parameter.Stick_P; |
if(IntegralNick > 80000) StickNick -= 16 * EE_Parameter.Stick_P; |
} |
else |
if(IntegralNick < -60000) |
{ |
StickNick += 8 * EE_Parameter.Stick_P; |
if(IntegralNick > 80000) StickNick -= 16 * EE_Parameter.Stick_P; |
} |
if(IntegralRoll > 60000) |
{ |
StickRoll -= 8 * EE_Parameter.Stick_P; |
if(IntegralRoll > 80000) StickRoll -= 16 * EE_Parameter.Stick_P; |
} |
else |
if(IntegralRoll < -60000) |
{ |
StickRoll += 8 * EE_Parameter.Stick_P; |
if(IntegralRoll > 80000) StickRoll -= 16 * EE_Parameter.Stick_P; |
} |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Looping? |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_LINKS) Looping_Links = 1; |
else |
{ |
{ |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1; |
else |
{ |
if(Looping_Rechts) // Hysterese |
{ |
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_OBEN) Looping_Oben = 1; |
else |
{ |
if(Looping_Oben) // Hysterese |
{ |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0; |
} |
} |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_UNTEN) Looping_Unten = 1; |
else |
{ |
if(Looping_Unten) // Hysterese |
{ |
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0; |
} |
} |
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0; |
if(Looping_Oben || Looping_Unten) {Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0; |
} // Ende neue Funken-Werte |
if(Looping_Roll) beeptime = 100; |
if(Looping_Roll || Looping_Nick) |
{ |
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Bei Empfangsausfall im Flug |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(Notlandung) |
{ |
StickGier = 0; |
StickNick = 0; |
StickRoll = 0; |
GyroFaktor = 0.1; |
IntegralFaktor = 0.005; |
Looping_Roll = 0; |
Looping_Nick = 0; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Integrale auf ACC-Signal abgleichen |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define ABGLEICH_ANZAHL 256L |
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren |
MittelIntegralRoll += IntegralRoll; |
MittelIntegralNick2 += IntegralNick2; |
MittelIntegralRoll2 += IntegralRoll2; |
if(Looping_Nick || Looping_Roll) |
{ |
IntegralAccNick = 0; |
IntegralAccRoll = 0; |
MittelIntegralNick = 0; |
MittelIntegralRoll = 0; |
MittelIntegralNick2 = 0; |
MittelIntegralRoll2 = 0; |
Mess_IntegralNick2 = Mess_IntegralNick; |
Mess_IntegralRoll2 = Mess_IntegralRoll; |
ZaehlMessungen = 0; |
LageKorrekturNick = 0; |
LageKorrekturRoll = 0; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(!Looping_Nick && !Looping_Roll) |
{ |
long tmp_long, tmp_long2; |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick); |
tmp_long /= 16; |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll); |
tmp_long2 /= 16; |
#define AUSGLEICH 32 //(Parameter_UserParam1 / 2) |
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; |
Mess_IntegralNick -= tmp_long; |
Mess_IntegralRoll -= tmp_long2; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(ZaehlMessungen >= ABGLEICH_ANZAHL) |
{ |
static int cnt = 0; |
static char last_n_p,last_n_n,last_r_p,last_r_n; |
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt; |
if(!Looping_Nick && !Looping_Roll) |
{ |
MittelIntegralNick /= ABGLEICH_ANZAHL; |
MittelIntegralRoll /= ABGLEICH_ANZAHL; |
IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL; |
IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL; |
IntegralAccZ = IntegralAccZ / ABGLEICH_ANZAHL; |
#define MAX_I 0//(Poti2/10) |
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++ |
IntegralFehlerNick = (long)(MittelIntegralNick - (long)IntegralAccNick); |
ausgleichNick = IntegralFehlerNick / EE_Parameter.GyroAccAbgleich; |
LageKorrekturNick = ausgleichNick / ABGLEICH_ANZAHL; |
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++ |
IntegralFehlerRoll = (long)(MittelIntegralRoll - (long)IntegralAccRoll); |
ausgleichRoll = IntegralFehlerRoll / EE_Parameter.GyroAccAbgleich; |
LageKorrekturRoll = ausgleichRoll / ABGLEICH_ANZAHL; |
// Mess_IntegralNick -= ausgleichNick; |
// Mess_IntegralRoll -= ausgleichRoll; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gyro-Drift ermitteln |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
MittelIntegralNick2 /= ABGLEICH_ANZAHL; |
MittelIntegralRoll2 /= ABGLEICH_ANZAHL; |
// tmp_long = (long)(MittelIntegralNick2 - (long)IntegralAccNick); |
// tmp_long2 = (long)(MittelIntegralRoll2 - (long)IntegralAccRoll); |
tmp_long = IntegralNick2 - IntegralNick; |
tmp_long2 = IntegralRoll2 - IntegralRoll; |
//DebugOut.Analog[25] = MittelIntegralRoll2 / 26; |
IntegralFehlerNick = tmp_long; |
IntegralFehlerRoll = tmp_long2; |
Mess_IntegralNick2 -= IntegralFehlerNick; |
Mess_IntegralRoll2 -= IntegralFehlerRoll; |
// IntegralFehlerNick = (IntegralFehlerNick * 1 + tmp_long) / 2; |
// IntegralFehlerRoll = (IntegralFehlerRoll * 1 + tmp_long2) / 2; |
DebugOut.Analog[17] = IntegralAccNick / 26; |
DebugOut.Analog[18] = IntegralAccRoll / 26; |
DebugOut.Analog[19] = IntegralFehlerNick;// / 26; |
DebugOut.Analog[20] = IntegralFehlerRoll;// / 26; |
DebugOut.Analog[21] = MittelIntegralNick / 26; |
DebugOut.Analog[22] = MittelIntegralRoll / 26; |
//DebugOut.Analog[28] = ausgleichNick; |
DebugOut.Analog[29] = ausgleichRoll; |
DebugOut.Analog[30] = LageKorrekturRoll * 10; |
#define FEHLER_LIMIT (ABGLEICH_ANZAHL * 4) |
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) |
#define BEWEGUNGS_LIMIT 20000 |
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++ |
cnt = 1;// + labs(IntegralFehlerNick) / 4096; |
if(labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT) |
{ |
if(IntegralFehlerNick > FEHLER_LIMIT2) |
{ |
if(last_n_p) |
{ |
cnt += labs(IntegralFehlerNick) / FEHLER_LIMIT2; |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick > 5000) ausgleichNick = 5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
} |
else last_n_p = 1; |
} else last_n_p = 0; |
if(IntegralFehlerNick < -FEHLER_LIMIT2) |
{ |
if(last_n_n) |
{ |
cnt += labs(IntegralFehlerNick) / FEHLER_LIMIT2; |
ausgleichNick = IntegralFehlerNick / 8; |
if(ausgleichNick < -5000) ausgleichNick = -5000; |
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
} |
else last_n_n = 1; |
} else last_n_n = 0; |
} else cnt = 0; |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++ |
cnt = 1;// + labs(IntegralFehlerNick) / 4096; |
ausgleichRoll = 0; |
if(labs(MittelIntegralRoll_Alt - MittelIntegralRoll) < BEWEGUNGS_LIMIT) |
{ |
if(IntegralFehlerRoll > FEHLER_LIMIT2) |
{ |
if(last_r_p) |
{ |
cnt += labs(IntegralFehlerRoll) / FEHLER_LIMIT2; |
ausgleichRoll = IntegralFehlerRoll / 8; |
if(ausgleichRoll > 5000) ausgleichRoll = 5000; |
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL; |
} |
else last_r_p = 1; |
} else last_r_p = 0; |
if(IntegralFehlerRoll < -FEHLER_LIMIT2) |
{ |
if(last_r_n) |
{ |
cnt += labs(IntegralFehlerRoll) / FEHLER_LIMIT2; |
ausgleichRoll = IntegralFehlerRoll / 8; |
if(ausgleichRoll < -5000) ausgleichRoll = -5000; |
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL; |
} |
else last_r_n = 1; |
} else last_r_n = 0; |
} else |
{ |
cnt = 0; |
} |
DebugOut.Analog[27] = ausgleichRoll; |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
//if(cnt > 1) beeptime = 50; |
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt; |
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt; |
DebugOut.Analog[23] = AdNeutralNick;//10*(AdNeutralNick - StartNeutralNick); |
DebugOut.Analog[24] = 10*(AdNeutralRoll - StartNeutralRoll); |
} |
else |
{ |
LageKorrekturRoll = 0; |
LageKorrekturNick = 0; |
} |
if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++ |
MittelIntegralNick_Alt = MittelIntegralNick; |
MittelIntegralRoll_Alt = MittelIntegralRoll; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++ |
IntegralAccNick = 0; |
IntegralAccRoll = 0; |
IntegralAccZ = 0; |
MittelIntegralNick = 0; |
MittelIntegralRoll = 0; |
MittelIntegralNick2 = 0; |
MittelIntegralRoll2 = 0; |
ZaehlMessungen = 0; |
} |
//DebugOut.Analog[31] = StickRoll / (26*IntegralFaktor); |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gieren |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(abs(StickGier) > 20) // war 35 |
{ |
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) NeueKompassRichtungMerken = 1; |
} |
tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx² |
tmp_int += (EE_Parameter.Gier_P * StickGier) / 4; |
sollGier = tmp_int; |
Mess_Integral_Gier -= tmp_int; |
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen |
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Kompass |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) |
{ |
int w,v; |
if (!updKompass--) // Aufruf mit ~10 Hz |
{ |
KompassValue = heading_MM3(); |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
updKompass = 50; |
} |
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
v = abs(IntegralRoll /512); |
if(v > w) w = v; // grösste Neigung ermitteln |
if(w < 35 && NeueKompassRichtungMerken) |
{ |
KompassStartwert = KompassValue; |
NeueKompassRichtungMerken = 0; |
} |
w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
if(w > 0) |
{ |
Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten |
} |
else beeptime = 100; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Debugwerte zuordnen |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(!TimerWerteausgabe--) |
{ |
TimerWerteausgabe = 24; |
DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor; |
DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor; |
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[8] = KompassValue; |
DebugOut.Analog[9] = UBat; |
DebugOut.Analog[10] = SenderOkay; |
DebugOut.Analog[16] = Mittelwert_AccHoch; |
/* DebugOut.Analog[16] = motor_rx[0]; |
DebugOut.Analog[17] = motor_rx[1]; |
DebugOut.Analog[18] = motor_rx[2]; |
DebugOut.Analog[19] = motor_rx[3]; |
DebugOut.Analog[20] = motor_rx[0] + motor_rx[1] + motor_rx[2] + motor_rx[3]; |
DebugOut.Analog[20] /= 14; |
DebugOut.Analog[21] = motor_rx[4]; |
DebugOut.Analog[22] = motor_rx[5]; |
DebugOut.Analog[23] = motor_rx[6]; |
DebugOut.Analog[24] = motor_rx[7]; |
DebugOut.Analog[25] = motor_rx[4] + motor_rx[5] + motor_rx[6] + motor_rx[7]; |
*/ |
// DebugOut.Analog[9] = MesswertNick; |
// 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 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor; |
else MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor; |
if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor; |
else MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor; |
// MesswertGier = MesswertGier * (GyroFaktor/2) + Integral_Gier * IntegralFaktor; |
MesswertGier = MesswertGier * (GyroFaktor) + Integral_Gier * IntegralFaktor/2; |
DebugOut.Analog[28] = MesswertRoll; |
DebugOut.Analog[25] = IntegralRoll * IntegralFaktor; |
DebugOut.Analog[31] = StickRoll;// / (26*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 = ((int) ExternHoehenValue + (int) Parameter_MaxHoehe) * (int)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 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DebugOut.Analog[7] = GasMischanteil; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Gier-Anteil |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define MUL_G 1.0 |
GierMischanteil = MesswertGier - sollGier; // Regler für Gier |
//GierMischanteil = 0; |
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2; |
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2); |
if(GierMischanteil > ((MAX_GAS - GasMischanteil))) GierMischanteil = ((MAX_GAS - GasMischanteil)); |
if(GierMischanteil < -((MAX_GAS - GasMischanteil))) GierMischanteil = -((MAX_GAS - GasMischanteil)); |
if(GasMischanteil < 20) GierMischanteil = 0; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Nick-Achse |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DiffNick = MesswertNick - (StickNick - GPS_Nick); // Differenz bestimmen |
if(IntegralFaktor) SummeNick += IntegralNick * IntegralFaktor - (StickNick - GPS_Nick); // I-Anteil bei Winkelregelung |
else SummeNick += DiffNick; // I-Anteil bei HH |
if(SummeNick > 0) SummeNick-= 2 ; else SummeNick += 2 ; |
if(SummeNick > 16000) SummeNick = 16000; |
if(SummeNick < -16000) SummeNick = -16000; |
pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick |
// Motor Vorn |
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
if(pd_ergebnis > tmp_int) pd_ergebnis = tmp_int; |
if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int; |
motorwert = GasMischanteil + pd_ergebnis + GierMischanteil; // Mischer |
if ((motorwert < 0)) 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)) motorwert = 0; |
else if(motorwert > MAX_GAS) motorwert = MAX_GAS; |
if (motorwert < MIN_GAS) motorwert = MIN_GAS; |
Motor_Hinten = motorwert; |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Roll-Achse |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DiffRoll = MesswertRoll - (StickRoll - GPS_Roll); // Differenz bestimmen |
if(IntegralFaktor) SummeRoll += IntegralRoll * IntegralFaktor - (StickRoll - GPS_Roll);// I-Anteil bei Winkelregelung |
else SummeRoll += DiffRoll; // I-Anteil bei HH |
if(SummeRoll > 0) SummeRoll-= 2 ; else SummeRoll += 2 ; |
if(SummeRoll > 16000) SummeRoll = 16000; |
if(SummeRoll < -16000) SummeRoll = -16000; |
pd_ergebnis = DiffRoll + Ki * SummeRoll; // PI-Regler für Roll |
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
if(pd_ergebnis > tmp_int) pd_ergebnis = tmp_int; |
if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int; |
// Motor Links |
motorwert = GasMischanteil + pd_ergebnis - GierMischanteil; |
if ((motorwert < 0)) 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)) 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/V0.67g/fc.h |
---|
0,0 → 1,153 |
/*####################################################################################### |
Flight Control |
#######################################################################################*/ |
#ifndef _FC_H |
#define _FC_H |
extern volatile unsigned int I2CTimeout; |
extern unsigned char Sekunde,Minute; |
extern long Mess_IntegralNick,Mess_IntegralNick2; |
extern long Mess_IntegralRoll,Mess_IntegralRoll2; |
extern long Mess_Integral_Hoch; |
extern long Mess_Integral_Gier,Mess_Integral_Gier2; |
extern int KompassValue; |
extern int KompassStartwert; |
extern int KompassRichtung; |
extern long IntegralNick,IntegralNick2; |
extern long IntegralRoll,IntegralRoll2; |
extern long IntegralAccNick,IntegralAccRoll,IntegralAccZ; |
extern long Integral_Gier; |
extern int HoehenWert; |
extern int SollHoehe; |
extern int MesswertNick,MesswertRoll,MesswertGier; |
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll,Mittelwert_AccHoch; |
extern volatile int NeutralAccX, NeutralAccY; |
extern volatile float NeutralAccZ; |
extern long Umschlag180Nick, Umschlag180Roll; |
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier; |
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8; |
void MotorRegler(void); |
void SendMotorData(void); |
void CalibrierMittelwert(void); |
void Mittelwert(void); |
void SetNeutral(void); |
void Piep(unsigned char Anzahl); |
extern void DefaultKonstanten(void); |
void DefaultKonstanten1(void); |
void DefaultKonstanten2(void); |
extern unsigned char h,m,s; |
extern volatile unsigned char Timeout ; |
extern volatile int DiffNick,DiffRoll; |
extern int Poti1, Poti2, Poti3, Poti4; |
extern volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count; |
extern unsigned char MotorWert[5]; |
extern volatile unsigned char SenderOkay; |
extern int StickNick,StickRoll,StickGier; |
extern char MotorenEin; |
extern void DefaultKonstanten1(void); |
extern void DefaultKonstanten2(void); |
struct acc_neutral_struct |
{ |
volatile int X; |
volatile int Y; |
volatile float Z; |
}; |
extern struct acc_neutral_struct acc_neutral; |
extern void calib_acc(void); |
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; // |
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag |
unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag |
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
unsigned char AchsGegenKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick Gegenkoppelt (NickRollGegenkopplung) |
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt |
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt |
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung) |
unsigned char Driftkomp; |
unsigned char DynamicStability; |
unsigned char UserParam5; // Wert : 0-250 |
unsigned char UserParam6; // Wert : 0-250 |
unsigned char UserParam7; // Wert : 0-250 |
unsigned char UserParam8; // Wert : 0-250 |
//------------------------------------------------ |
unsigned char LoopConfig; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoNickCompInvert; // Wert : 0-250 0 oder 1 // WICHTIG!!! am Ende lassen |
unsigned char Reserved[4]; |
char Name[12]; |
}; |
/* |
unsigned char ServoNickMax; // Wert : 0-250 |
unsigned char ServoNickRefresh; // |
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag |
//------------------------------------------------ |
unsigned char LoopConfig; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoNickCompInvert; // Wert : 0-250 0 oder 1 // WICHTIG!!! am Ende lassen |
unsigned char Reserved[4]; |
char Name[12]; |
*/ |
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; |
extern unsigned char Parameter_AchsKopplung1; |
extern unsigned char Parameter_AchsGegenKopplung1; |
#endif //_FC_H |
/branches/v0.60_MicroMag3_Nick666/V0.67g/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="eeprom.c"></File><File path="compass.c"></File><File path="compass.h"></File><File path="mymath.c"></File><File path="mymath.h"></File></Project> |
/branches/v0.60_MicroMag3_Nick666/V0.67g/flight.pnps |
---|
0,0 → 1,0 |
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd> |
/branches/v0.60_MicroMag3_Nick666/V0.67g/gps.h |
---|
0,0 → 1,14 |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Nick; |
extern signed int GPS_Roll; |
void GPS_Neutral(void); |
void GPS_BerechneZielrichtung(void); |
/branches/v0.60_MicroMag3_Nick666/V0.67g/main.c |
---|
0,0 → 1,263 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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" |
// Reservierung im EEPROM |
unsigned char EEPromArray[10] EEMEM; |
struct mk_param_struct EEParameterArray[5] EEMEM; |
unsigned char PlatinenVersion = 10; |
// -- Parametersatz aus EEPROM lesen --- |
// number [0..5] |
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
if (number > 5) number = 5; |
number--; // Auf Index 0 bis 4 anpassen |
eeprom_read_block(buffer, &EEParameterArray[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; |
number--; // Auf Index 0 bis 4 anpassen |
eeprom_write_block(buffer, &EEParameterArray[number], length); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken |
} |
unsigned char GetActiveParamSetNumber(void) |
{ |
unsigned char set; |
set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]); |
if(set > 5) |
{ |
set = 2; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], set); // diesen Parametersatz als aktuell merken |
} |
return(set); |
} |
//############################################################################ |
//Hauptprogramm |
int main (void) |
//############################################################################ |
{ |
unsigned int timer; |
//unsigned int timer2 = 0; |
DDRB = 0x00; |
PORTB = 0x00; |
for(timer = 0; timer < 1000; timer++); // verzögern |
if(PINB & 0x01) PlatinenVersion = 11; else PlatinenVersion = 10; |
DDRC = 0x81; // SCL |
PORTC = 0xff; // Pullup SDA |
DDRB = 0x1B; // LEDs und Druckoffset |
PORTB = 0x01; // LED_Rot |
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5 |
DDRD |=0x80; // J7 |
PORTD = 0xF7; // LED |
MCUSR &=~(1<<WDRF); |
WDTCSR |= (1<<WDCE)|(1<<WDE); |
WDTCSR = 0; |
beeptime = 2000; |
StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0; |
ROT_OFF; |
Timer_Init(); |
UART_Init(); |
rc_sum_init(); |
ADC_Init(); |
i2c_init(); |
init_MM3(); |
sei(); |
VersionInfo.Hauptversion = VERSION_HAUPTVERSION; |
VersionInfo.Nebenversion = VERSION_NEBENVERSION; |
VersionInfo.PCKompatibel = VERSION_KOMPATIBEL; |
printf("\n\rFlightControl\n\rHardware:%d.%d\n\rSoftware:V%d.%d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_HAUPTVERSION, VERSION_NEBENVERSION,VERSION_INDEX + 'a'); |
printf("\n\r=============================="); |
GRN_ON; |
#define EE_DATENREVISION 68 // wird angepasst, wenn sich die EEPROM-Daten geändert haben |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) |
{ |
printf("\n\rInit. EEPROM: Generiere Default-Parameter..."); |
DefaultKonstanten1(); |
for (unsigned char i=0;i<6;i++) |
{ |
if(i==2) DefaultKonstanten2(); // Kamera |
if(i==3) DefaultKonstanten3(); // Beginner |
if(i>3) DefaultKonstanten2(); // Kamera |
WriteParameterSet(i, (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], 3); // default-Setting |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION); |
} |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
printf("\n\rACC nicht abgeglichen!"); |
} |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
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"); |
calib_MM3(); |
} |
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) |
{ |
printf("\n\rAbgleich Luftdrucksensor.."); |
timer = SetDelay(1000); |
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(); |
I2CTimeout = 5000; |
while (1) |
{ |
if (UpdateMotor) // ReglerIntervall |
{ |
// SPI_TransmitByte(); |
UpdateMotor=0; |
//PORTD |= 0x08; |
MotorRegler(); |
//PORTD &= ~0x08; |
SendMotorData(); |
ROT_OFF; |
if(PcZugriff) PcZugriff--; |
else |
{ |
DubWiseKeys[0] = 0; |
DubWiseKeys[1] = 0; |
ExternStickNick = 0; |
ExternStickRoll = 0; |
ExternStickGier = 0; |
} |
if(SenderOkay) SenderOkay--; |
if(!I2CTimeout) |
{ |
I2CTimeout = 5; |
i2c_reset(); |
if((BeepMuster == 0xffff) && MotorenEin) |
{ |
beeptime = 10000; |
BeepMuster = 0x0080; |
} |
} |
else |
{ |
I2CTimeout--; |
ROT_OFF; |
} |
} |
if(SIO_DEBUG) |
{ |
DatenUebertragung(); |
BearbeiteRxDaten(); |
} |
else BearbeiteRxDaten(); |
if(CheckDelay(timer)) |
{ |
if(UBat < EE_Parameter.UnterspannungsWarnung) |
{ |
if(BeepMuster == 0xffff) |
{ |
beeptime = 6000; |
BeepMuster = 0x0300; |
} |
} |
// SPI_StartTransmitPacket(); |
timer = SetDelay(100); |
} |
} |
return (1); |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/main.h |
---|
0,0 → 1,100 |
#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 {if(PlatinenVersion == 10) PORTB &=~0x01; else PORTB |= 0x01;} |
#define ROT_ON {if(PlatinenVersion == 10) PORTB |= 0x01; else PORTB &=~0x01;} |
#define ROT_FLASH PORTB ^= 0x01 |
#define GRN_OFF PORTB &=~0x02 |
#define GRN_ON PORTB |= 0x02 |
#define GRN_FLASH PORTB ^= 0x02 |
#define F_CPU SYSCLK |
//#ifndef F_CPU |
//#error ################## F_CPU nicht definiert oder ungültig ############# |
//#endif |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
#define EEPROM_ADR_VALID 1 |
#define EEPROM_ADR_ACTIVE_SET 2 |
#define EEPROM_ADR_LAST_OFFSET 3 |
#define EEPROM_ADR_ACC_NICK 4 |
#define EEPROM_ADR_ACC_ROLL 6 |
#define EEPROM_ADR_ACC_Z 8 |
#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 CFG_ACHSENKOPPLUNG_AKTIV 0x40 |
#define CFG_DREHRATEN_BEGRENZER 0x80 |
#define CFG_LOOP_OBEN 0x01 |
#define CFG_LOOP_UNTEN 0x02 |
#define CFG_LOOP_LINKS 0x04 |
#define CFG_LOOP_RECHTS 0x08 |
//#define SYSCLK |
//extern unsigned long SYSCLK; |
extern volatile unsigned char SenderOkay; |
extern unsigned char PlatinenVersion; |
void ReadParameterSet (unsigned char number, unsigned char *buffer, unsigned char length); |
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 "timer0.h" |
#include "uart.h" |
#include "analog.h" |
#include "twimaster.h" |
#include "menu.h" |
#include "rc.h" |
#include "fc.h" |
#include "gps.h" |
#include "compass.h" |
#include "mymath.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/V0.67g/makefile |
---|
0,0 → 1,419 |
#-------------------------------------------------------------------- |
# MCU name |
MCU = atmega644 |
F_CPU = 20000000 |
#------------------------------------------------------------------- |
HAUPT_VERSION = 0 |
NEBEN_VERSION = 67 |
VERSION_INDEX = 6 |
VERSION_KOMPATIBEL = 7 # 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). |
ifeq ($(VERSION_INDEX), 0) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)a |
endif |
ifeq ($(VERSION_INDEX), 1) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)b |
endif |
ifeq ($(VERSION_INDEX), 2) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)c |
endif |
ifeq ($(VERSION_INDEX), 3) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)d |
endif |
ifeq ($(VERSION_INDEX), 4) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)e |
endif |
ifeq ($(VERSION_INDEX), 5) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)f |
endif |
ifeq ($(VERSION_INDEX), 6) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)g |
endif |
ifeq ($(VERSION_INDEX), 7) |
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(HAUPT_VERSION)_$(NEBEN_VERSION)h |
endif |
# 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 |
SRC += twimaster.c rc.c fc.c GPS.c |
SRC += compass.c mymath.c |
#spi.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 \ |
-mtiny-stack -mcall-prologues \ |
-Wall -Wstrict-prototypes \ |
-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) -DVERSION_INDEX=$(VERSION_INDEX) |
# 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/V0.67g/menu.c |
---|
0,0 → 1,139 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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 = 12,MenuePunkt=0; |
if(RemoteTasten & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue; LcdClear(); RemotePollDisplayLine = -1; } |
if(RemoteTasten & KEY2) { MenuePunkt++; LcdClear(); RemotePollDisplayLine = -1;} |
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,"HW:V%d.%d SW:%d.%d%c",PlatinenVersion/10,PlatinenVersion%10,VERSION_HAUPTVERSION, VERSION_NEBENVERSION,VERSION_INDEX+'a'); |
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 K8:%4i ",PPM_in[7],PPM_in[8]); |
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 P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]],PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]); |
break; |
case 5: |
LCD_printfxy(0,0,"Gyro - Sensor"); |
if(PlatinenVersion == 10) |
{ |
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertNick - AdNeutralNick, AdNeutralNick); |
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertRoll - AdNeutralRoll, AdNeutralRoll); |
LCD_printfxy(0,3,"Gier %4i (%3i)",MesswertGier, AdNeutralGier); |
} |
else |
{ |
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertNick - AdNeutralNick, AdNeutralNick/2); |
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertRoll - AdNeutralRoll, AdNeutralRoll/2); |
LCD_printfxy(0,3,"Gier %4i (%3i)",MesswertGier, AdNeutralGier/2); |
} |
break; |
case 6: |
LCD_printfxy(0,0,"ACC - Sensor"); |
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX); |
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY); |
LCD_printfxy(0,3,"Hoch %4i (%3i)",Mittelwert_AccHoch/*accumulate_AccHoch / messanzahl_AccHoch*/,(int)NeutralAccZ); |
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 Off"); |
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; |
case 12: |
LCD_printfxy(0,0,"MM3 Range"); |
LCD_printfxy(0,1,"X_Range: %4i",MM3_calib.X_range); |
LCD_printfxy(0,2,"Y_Range: %4i",MM3_calib.Y_range); |
LCD_printfxy(0,3,"Z_Range: %4i",MM3_calib.Z_range); |
break; |
default: MaxMenue = MenuePunkt - 1; |
MenuePunkt = 0; |
break; |
} |
RemoteTasten = 0; |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/menu.h |
---|
0,0 → 1,6 |
extern void Menu(void); |
extern void LcdClear(void); |
extern char DisplayBuff[80]; |
extern unsigned char DispPtr; |
extern unsigned char RemoteTasten; |
/branches/v0.60_MicroMag3_Nick666/V0.67g/mymath.c |
---|
0,0 → 1,126 |
/* |
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(((long)y*50) / x); // 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) && (m > 0)) return (-angle + 180); // Quadrant II |
else return (angle - 180); // x < 0 && y < 0 Quadrant III |
} |
const float pgm_sinus_f[91] PROGMEM = {0.0,0.0174524,0.0348995,0.0523360,0.0697565,0.0871557,0.1045285,0.1218693,0.1391731,0.1564345,0.1736482,0.1908090,0.2079117,0.2249510,0.2419219,0.2588190,0.2756373,0.2923717,0.3090170,0.3255681,0.3420201,0.3583679,0.3746066,0.3907311,0.4067366,0.4226182,0.4383711,0.4539905,0.4694715,0.4848096,0.5000000,0.5150381,0.5299193,0.5446390,0.5591929,0.5735764,0.5877852,0.6018150,0.6156615,0.6293204,0.6427876,0.6560590,0.6691306,0.6819983,0.6946584,0.7071068,0.7193398,0.7313537,0.7431448,0.7547096,0.7660444,0.7771459,0.7880107,0.7986355,0.8090170,0.8191520,0.8290376,0.8386706,0.8480481,0.8571673,0.8660254,0.8746197,0.8829476,0.8910065,0.8987940,0.9063078,0.9135454,0.9205048,0.9271838,0.9335804,0.9396926,0.9455186,0.9510565,0.9563047,0.9612617,0.9659258,0.9702957,0.9743701,0.9781476,0.9816272,0.9848077,0.9876883,0.9902681,0.9925461,0.9945219,0.9961947,0.9975640,0.9986295,0.9993908,0.9998477,1.0}; |
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) n=1; |
else if ((winkel > 90 ) && (winkel <= 180)) {winkel = 180 - winkel; n = 1;} |
else if ((winkel > 180 ) && (winkel <= 270)) {winkel = winkel - 180; n = -1;} |
else {winkel = 360 - winkel; n = -1;} //if ((winkel > 270) && (winkel <= 360)) |
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; |
i = i % 200; |
return (pgm_read_byte(&pgm_asin[i]) * m); |
} |
*/ |
/branches/v0.60_MicroMag3_Nick666/V0.67g/mymath.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/V0.67g/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/V0.67g/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/V0.67g/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 |
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/V0.67g/rc.c |
---|
0,0 → 1,84 |
/*####################################################################################### |
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,tmp; |
static int index; |
signal = (unsigned int) ICR1 - AltICR; |
AltICR = ICR1; |
//Syncronisationspause? |
// if((signal > (int) Parameter_UserParam2 * 10) && (signal < 8000)) |
if((signal > 1100) && (signal < 8000)) |
{ |
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten |
index = 1; |
} |
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;} |
tmp = (3 * (PPM_in[index]) + signal) / 4; |
// if(tmp > signal+1) tmp--; else |
// if(tmp < signal-1) tmp++; |
PPM_diff[index] = tmp - PPM_in[index]; |
PPM_in[index] = tmp; |
} |
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/V0.67g/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/V0.67g/timer0.c |
---|
0,0 → 1,145 |
#include "main.h" |
volatile unsigned int CountMilliseconds = 0; |
volatile unsigned char UpdateMotor = 0; |
volatile unsigned int beeptime = 0; |
unsigned int BeepMuster = 0xffff; |
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) // 9,8kHz |
{ |
static unsigned char cnt_1ms = 1,cnt = 0; |
unsigned char pieper_ein = 0; |
// TCNT0 -= 250;//TIMER_RELOAD_VALUE; |
if(!cnt--) |
{ |
cnt = 10; |
cnt_1ms++; |
cnt_1ms %= 2; |
if(!cnt_1ms) UpdateMotor = 1; |
CountMilliseconds++; |
} |
if(beeptime > 1) |
{ |
beeptime--; |
if(beeptime & BeepMuster) |
{ |
pieper_ein = 1; |
} |
else pieper_ein = 0; |
} |
else |
{ |
pieper_ein = 0; |
BeepMuster = 0xffff; |
} |
if(pieper_ein) |
{ |
if(PlatinenVersion == 10) PORTD |= (1<<2); // Speaker an PORTD.2 |
else PORTC |= (1<<7); // Speaker an PORTC.7 |
} |
else |
{ |
if(PlatinenVersion == 10) PORTD &= ~(1<<2); |
else PORTC &= ~(1<<7); |
} |
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) timer0_MM3(); // Kompass auslesen |
} |
void Timer_Init(void) |
{ |
TCCR0B = CK8; |
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM |
OCR0A = 0; |
OCR0B = 120; |
TCNT0 = (unsigned char)-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)); |
} |
void Delay_ms_Mess(unsigned int w) |
{ |
unsigned int akt; |
akt = SetDelay(w); |
while (!CheckDelay(akt)) ANALOG_ON; |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// 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; |
OCR2A = ServoValue;// + 75; |
timer = EE_Parameter.ServoNickRefresh; |
} |
else |
{ |
TCCR2A =3; |
PORTD&=~0x80; |
} |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/timer0.h |
---|
0,0 → 1,15 |
#define TIMER_TEILER CK8 |
#define TIMER_RELOAD_VALUE 250 |
void Timer_Init(void); |
void Delay_ms(unsigned int); |
void Delay_ms_Mess(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 int ServoValue; |
extern unsigned int BeepMuster; |
/branches/v0.60_MicroMag3_Nick666/V0.67g/twimaster.c |
---|
0,0 → 1,152 |
/*############################################################################ |
############################################################################*/ |
#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); |
} |
void i2c_reset(void) |
//############################################################################ |
{ |
i2c_stop(); |
twi_state = 0; |
motor = TWDR; |
motor = 0; |
TWCR = 0x80; |
TWAMR = 0; |
TWAR = 0; |
TWDR = 0; |
TWSR = 0; |
TWBR = 0; |
i2c_init(); |
i2c_start(); |
i2c_write_byte(0); |
} |
//############################################################################ |
//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(); |
I2CTimeout = 10; |
twi_state = 0; |
} |
TWCR |= 0x80; |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/twimaster.h |
---|
0,0 → 1,33 |
/*############################################################################ |
############################################################################*/ |
#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_reset(void); |
extern void i2c_init (void); // I2C initialisieren |
extern char i2c_start (void); // Start I2C |
extern void i2c_stop (void); // Stop I2C |
extern char i2c_write_byte (char byte); // 1 Byte schreiben |
extern void i2c_reset(void); |
#endif |
/branches/v0.60_MicroMag3_Nick666/V0.67g/uart.c |
---|
0,0 → 1,388 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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 RemotePollDisplayLine = 0; |
unsigned char NurKanalAnforderung = 0; |
unsigned char DebugTextAnforderung = 255; |
unsigned char PcZugriff = 100; |
unsigned char MotorTest[4] = {0,0,0,0}; |
unsigned char DubWiseKeys[3] = {0,0,0}; |
unsigned char MeineSlaveAdresse; |
struct str_DebugOut DebugOut; |
struct str_Debug DebugIn; |
struct str_VersionInfo VersionInfo; |
int Debug_Timer; |
const unsigned char ANALOG_TEXT[32][16] = |
{ |
//1234567890123456 |
"IntegralNick ", //0 |
"IntegralRoll ", |
"AccNick ", |
"AccRoll ", |
"GyroGier ", |
"HoehenWert ", //5 |
"AccZ ", |
"Gas ", |
"KompassValue ", |
"Spannung ", |
"Empfang ", //10 |
"Analog11 ", |
"Motor_Vorne ", |
"Motor_Hinten ", |
"Motor_Links ", |
"Motor_Rechts ", //15 |
"Acc_Z ", |
"MittelAccNick ", |
"MittelAccRoll ", |
"IntegralErrNick ", |
"IntegralErrRoll ", //20 |
"MittelIntNick ", |
"MittelIntRoll ", |
"NeutralNick ", |
"RollOffset ", |
"IntRoll*Faktor ", //25 |
"Analog26 ", |
"DirektAusglRoll ", |
"MesswertRoll ", |
"AusgleichRoll ", |
"I-LageRoll ", //30 |
"StickRoll " |
}; |
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
//++ 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[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 'a':// Texte der Analogwerte |
Decode64((unsigned char *) &tmp_char_arr2[0],sizeof(tmp_char_arr2),3,AnzahlEmpfangsBytes); |
DebugTextAnforderung = tmp_char_arr2[0]; |
break; |
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]; |
if(tmp_char_arr2[1] == 255) NurKanalAnforderung = 1; else NurKanalAnforderung = 0; // keine Displaydaten |
DebugDisplayAnforderung = 1; |
break; |
case 't':// Motortest |
Decode64((unsigned char *) &MotorTest[0],sizeof(MotorTest),3,AnzahlEmpfangsBytes); |
break; |
case 'k':// Keys von DubWise |
Decode64((unsigned char *) &DubWiseKeys[0],sizeof(DubWiseKeys),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], sizeof(struct mk_param_struct)); |
SendOutData('L' + tmp_char_arr2[0] -1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct)); |
} |
else |
SendOutData('L' + GetActiveParamSetNumber()-1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct)); |
break; |
case 'l': |
case 'm': |
case 'n': |
case 'o': |
case 'p': // Parametersatz speichern |
Decode64((unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct),3,AnzahlEmpfangsBytes); |
WriteParameterSet(RxdBuffer[2] - 'l' + 1, (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], RxdBuffer[2] - 'l' + 1); // aktiven Datensatz merken |
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L; |
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L; |
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) |
{ |
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(DebugTextAnforderung != 255) // Texte für die Analogdaten |
{ |
SendOutData('A',DebugTextAnforderung + '0',(unsigned char *) ANALOG_TEXT[DebugTextAnforderung],16); |
DebugTextAnforderung = 255; |
} |
if(DebugDisplayAnforderung && UebertragungAbgeschlossen) |
{ |
Menu(); |
DebugDisplayAnforderung = 0; |
if(++RemotePollDisplayLine == 4 || NurKanalAnforderung) |
{ |
SendOutData('4',0,(unsigned char *)&PPM_in,sizeof(PPM_in)); // DisplayZeile übertragen |
RemotePollDisplayLine = -1; |
} |
else SendOutData('0' + RemotePollDisplayLine,0,(unsigned char *)&DisplayBuff[20 * RemotePollDisplayLine],20); // DisplayZeile übertragen |
} |
if(GetVersionAnforderung && UebertragungAbgeschlossen) |
{ |
SendOutData('V',MeineSlaveAdresse,(unsigned char *) &VersionInfo,sizeof(VersionInfo)); |
GetVersionAnforderung = 0; |
} |
} |
/branches/v0.60_MicroMag3_Nick666/V0.67g/uart.h |
---|
0,0 → 1,100 |
#ifndef _UART_H |
#define _UART_H |
#define MAX_SENDE_BUFF 150 |
#define MAX_EMPFANGS_BUFF 150 |
#define DUB_KEY_UP 4 |
#define DUB_KEY_DOWN 8 |
#define DUB_KEY_RIGHT 32 |
#define DUB_KEY_LEFT 16 |
#define DUB_KEY_FIRE 64 |
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 unsigned char RemotePollDisplayLine; |
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 void BearbeiteRxDaten(void); |
extern unsigned char MotorTest[4]; |
extern unsigned char DubWiseKeys[3]; |
struct str_DebugOut |
{ |
unsigned char Digital[2]; |
unsigned int Analog[32]; // 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/V0.67g/version.txt |
---|
0,0 → 1,107 |
------- |
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 |
V0.61 - V0.63 H.Buss 27.09.2007 |
- Poti 4 und Kanal 8 werden im Menü angezeigt |
- ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt |
- Analog.c: Aktuell_ax korrigiert |
- auf 32 Debug-Kanäle erweitert |
- Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar |
- leichte Anpassungen im Gier - Geschwindigkeit und Drift |
- die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein |
- die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird |
- die PPM-Ausgänge liegen wieder an den Pins an |
- Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders |
- der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen |
- I2C-Bus läuft jetzt sicher nach einer Störung wieder an |
- Sticksignale werden präziser ausgewertet |
- Stick-Kanäle werden ans Kopter-Tool übertragen |
- Es muss die Version V1.47 des Kopter-Tool verwendet werden |
- Die Settings werden auf Default zurückgesetzt |
- am Piepen kann man die Fehlerart unterscheiden |
1. einzelnes Piepen beim Einschalten und Kalibrieren |
2. langsames Intervall mindestens 1 Sek -> Empfangsausfall |
3. schnelleres Intervall mindestens 1 Sek -> Akku |
4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört |
V0.64 H.Buss 30.09.2007 |
- beim Gieren wurden die Achsen nicht hart genug geregelt |
V0.65a H.Buss 15.10.2007 |
- Integral im Mischer wieder integriert |
- Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100 |
- ACC/Gyro Abgleich auch bei HH |
V0.66a H.Buss 3.11.2007 |
- Messwertverarbeitung aus dem Analog-Interrupt entfernt |
- Analogmessung hängt jetzt am FC-Timing |
- Looping-Stick-Hysterese eingebaut |
- Looping-180°-Umschlag einstellbar |
- Achsenkopplung: Gierbewegung verkoppelt Nick und Roll |
- Lageregelung nach ACC-Sensor verbessert |
- zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage |
- Gyrodriftkompensation überarbeitet |
- Bug in der Gier-Stick-Berechnung behoben |
- Gyro-Messung auf 1kHz beschleunigt |
V0.67a H.Buss 16.11.2007 |
- der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode) |
- Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus |
- Feinabstimmung |
- Beim HH-Modus gab es noch Bugs |
V0.67e H.Buss 29.11.2007 |
- Parameter: Dynamic Stability und Driftfaktor eingeführt |
- Die Namen der Analogwerte werden jetzt zum Koptertool übertragen |
- Kompatibilität zum Koptertool erhöht |
V0.67f H.Buss 04.12.2007 |
- Giersteuerwert im Mischer auf Gas/2 begrenzt |
- Die Analogwerte des ACC-Sensors können dauerhaft im EEPROM gespeichert werden |
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional |
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.eep |
---|
0,0 → 1,21 |
:1000000000000000000000000000000000000000F0 |
:1000100000000000000000000000000000000000E0 |
:1000200000000000000000000000000000000000D0 |
:1000300000000000000000000000000000000000C0 |
:1000400000000000000000000000000000000000B0 |
:1000500000000000000000000000000000000000A0 |
:100060000000000000000000000000000000000090 |
:100070000000000000000000000000000000000080 |
:100080000000000000000000000000000000000070 |
:100090000000000000000000000000000000000060 |
:1000A0000000000000000000000000000000000050 |
:1000B0000000000000000000000000000000000040 |
:1000C0000000000000000000000000000000000030 |
:1000D0000000000000000000000000000000000020 |
:1000E0000000000000000000000000000000000010 |
:1000F0000000000000000000000000000000000000 |
:1001000000000000000000000000000000000000EF |
:1001100000000000000000000000000000000000DF |
:1001200000000000000000000000000000000000CF |
:0D01300000000000000000000000000000C2 |
: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,1507 |
:100000000C948A030C94A7030C94A7030C94A703E5 |
:100010000C94A7030C94A7030C94A7030C94A703B8 |
:100020000C94A7030C94C70B0C94A7030C94A70380 |
:100030000C94E0180C94A7030C94A7030C94A7034A |
:100040000C94A7030C94A7030C946A0C0C946114F1 |
:100050000C94CC050C94A7030C9496050C94A70360 |
:100060000C94E30C0C94A7030C944D180C94A70368 |
:100070004308BD08BD08BD0875085608BD08BD0881 |
:10008000BD08A108A108A108A108A1087908BD0818 |
:10009000BD086808BD0871080C0D5E0DB70D120E85 |
:1000A0002F0E520E780E5F0F9E10D2103311891151 |
:1000B000D7115012AA120B132F136513A113DF13BC |
:1000C00018140A0A0D004E65757472616C0048655B |
:1000D0006164696E67486F6C64000A0D53746575DE |
:1000E0006572756E673A20004F4B0A0D000A0D418C |
:1000F00062676C65696368204C75667464727563C9 |
:100100006B73656E736F722E2E000A0D4B616C69F6 |
:10011000627269657265204E65757472616C6C619E |
:100120006765000A0D4B616C6962726965726520D2 |
:100130004B6F6D70617373000A0D42656E75747A52 |
:100140006520506172616D657465727361747A20A7 |
:100150002564000A0D496E69742E20454550524FA2 |
:100160004D3A2047656E6572696572652044656623 |
:1001700061756C742D506172616D657465722E2E9F |
:100180002E000A0D3D3D3D3D3D3D3D3D3D3D3D3D4E |
:100190003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D8F |
:1001A0003D3D000A0D466C69676874436F6E74725A |
:1001B0006F6C205625642E256420002E005A5F5255 |
:1001C000616E67653A202025346900595F52616E7F |
:1001D00067653A202025346900585F52616E676573 |
:1001E0003A2020253469004D4D332052616E6765F9 |
:1001F000005A5F4F66667365743A202025336900A4 |
:10020000595F4F66667365743A202025336900583C |
:100210005F4F66667365743A2020253369004D4D43 |
:1002200033204F66660052616E67653A2533692D4B |
:10023000253369005374656C6C756E673A202533FD |
:100240006900536574706F696E74202025336900EE |
:10025000536572766F202000506F7469343A202005 |
:1002600025336900506F7469333A202025336900C3 |
:10027000506F7469323A202025336900506F7469D9 |
:10028000313A20202533690053746172743A20207A |
:10029000202020253569004D657373776572743AA7 |
:1002A0002020253569005269636874756E673A20AD |
:1002B00020253569004B6F6D7061737320202020FD |
:1002C00020202000456D70662E506567656C3A25CC |
:1002D0003569005370616E6E756E673A2020253562 |
:1002E0006900486F6368202534692028253369290F |
:1002F00000526F6C6C202534692028253369290051 |
:100300004E69636B20253469202825336929004113 |
:100310004343202D2053656E736F720047696572E9 |
:100320002025346920282533692900526F6C6C2000 |
:10033000253469202825336929004E69636B2025FF |
:100340003469202825336929004779726F202D20D0 |
:1003500053656E736F720050333A25346920204B19 |
:10036000616EE46C65200050313A253469202050DC |
:10037000323A253469200047733A253469202047F2 |
:10038000693A25346920004E693A253469202052A3 |
:100390006F3A25346920004B373A25346920204BC9 |
:1003A000616EE46C6520004B353A25346920204BA2 |
:1003B000363A25346920004B333A25346920204BE6 |
:1003C000343A25346920004B313A25346920204BDA |
:1003D000323A25346920004B6F6D706173733A2097 |
:1003E000202025356900526F6C6C3A202020202097 |
:1003F00020253569004E69636B3A2020202020209B |
:1004000025356900616B742E204C6167650048F6E4 |
:1004100068656E726567656C756E67004B65696EC1 |
:100420006520004F66662020202020203A202535B8 |
:1004300069004C756674647275636B3A2025356982 |
:1004400000536F6C6C486F6568653A20253569000C |
:10045000486F6568653A20202020202535690028EE |
:10046000632920486F6C676572204275737300536F |
:10047000657474696E673A20256420005625642EE1 |
:100480002564002B2B204D696B726F4B6F70746568 |
:1004900072202B2B005B25695D000001020305061D |
:1004A0000708090A0B0C0D0F10111213141516175B |
:1004B00018191A1B1B1C1D1E1F2021212223242555 |
:1004C000252627272829292A2B2B2C2C2D2E2E2F89 |
:1004D0002F303031313232333334343435353636EF |
:1004E0003637373838383939393A3A3A3B3B3B3C7A |
:1004F0003C3C3C3D3D3D3D3E3E3E3E3F3F3F3F4020 |
:1005000040404041414141414242424242434343D3 |
:100510004343434444444444444545454545454597 |
:100520004646464646464646474747474747474763 |
:100530004848484848484848484949494949494934 |
:100540004949494A4A4A4A4A4A4A4A4A4A4A4A4B0D |
:100550004B4B4B4B4B4B4B4B4B4B4B4B4C4C4C4CE7 |
:100560004C4C4C4C4C4C4C4C4C4C4C4D4D4D4D4DC6 |
:100570004D4D4D4D4D4D4D4D4D4D4D4D4E4E4E4EA7 |
:100580004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8B |
:100590004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F6B |
:1005A0004F4F4F4F4F4F4F4F0000000056F88E3CBB |
:1005B000C7F20E3D465E563D7FDC8E3DB07EB23DBD |
:1005C0000A13D63D9D96F93D65830E3E5E30203E72 |
:1005D000D5D0313E6F63433ECEE6543E8E59663EE3 |
:1005E00060BA773EED83843E55208D3EBEB1953E88 |
:1005F0007A379E3EDDB0A63E421DAF3EFF7BB73E42 |
:1006000070CCBF3EE80DC83EC83FD03E6A61D83EC0 |
:100610002D72E03E7171E83E925EF03EF738F83E92 |
:100620000000003F89D9033FCBA8073F766D0B3F01 |
:1006300044270F3FE7D5123F1779163F8C101A3F1A |
:10064000FE9B1D3F241B213FBA8D243F7CF3273F97 |
:10065000254C2B3F71972E3F22D5313FF404353F77 |
:10066000A726383FFF393B3FBD3E3E3FA634413FC2 |
:100670007C1B443F09F3463F12BB493F60734C3F2C |
:10068000BD1B4F3FF2B3513FCF3B543F1EB3563FCC |
:10069000AE19593F516F5B3FD7B35D3F14E75F3FE2 |
:1006A000DB08623F0119643F5D17663FCA03683F7C |
:1006B0001DDE693F34A66B3FEB5B6D3F20FF6E3F55 |
:1006C000B28F703F820D723F7078733F63D0743F7A |
:1006D0003F15763FEA46773F4D65783F5270793F48 |
:1006E000E2677A3FEC4B7B3F5C1C7C3F24D97C3F2C |
:1006F00036827D3F80177E3FFD987E3F9E067F3F7E |
:100700005B607F3F2FA67F3F13D87F3F05F67F3F7B |
:100710000000803F11241FBECFEFD0E1DEBFCDBF70 |
:1007200011E0A0E0B1E0E4E8FDE502C005900D9223 |
:10073000AC38B107D9F715E0ACE8B1E001C01D92C3 |
:10074000AC32B107E1F70E94DF030C94C12E0C9488 |
:100750000000A2E0B0E00E94A32E802D992708950A |
:10076000FB01863008F085E0282F2150842F99273F |
:10077000AAE32A9FD0011124A65FBF4F019724F05E |
:1007800001900E94B02EFACFA2E0B0E0022E0E94AB |
:10079000B02E0895FB01282F863008F025E0842F25 |
:1007A00099272150AAE32A9FD0011124A65FBF4FA9 |
:1007B000019724F00E94A32E0192FACF08950F937F |
:1007C0001F93CF93DF9381E087B98FEF88B98BE1D7 |
:1007D00084B9289A8EE38AB9579A87EF8BB984B780 |
:1007E000877F84BF80916000886180936000109251 |
:1007F000600088EE93E09093A7018093A601109289 |
:100800001E0210921D021092AD041092AC041092C0 |
:100810001C0210921B0210921A02109219022898C0 |
:100820000E94950B0E949C070E94CB180E94DD0C31 |
:100830000E9431180E940D1778941092A8038CE33F |
:100840008093A90384E08093AA038CE390E09F93B4 |
:100850008F931F921F9283EA91E09F938F931F9231 |
:100860000E941C0982E891E09F938F931F920E943F |
:100870001C09299AA1E0B0E00E94A32E802D2DB77B |
:100880003EB7265F3F4F2DBF8A30B9F183E591E037 |
:100890009F938F931F920E941C090E9434204AE369 |
:1008A00064ED74E080E00E94B00301E00F900F90CF |
:1008B0000F90023049F40E94C71F4AE364ED74E0D0 |
:1008C00082E00E94B00303E04AE364ED74E0802F0D |
:1008D0000E94B0030F5F063060F381E022E030E059 |
:1008E000D901082E0E94B02E8AE021503040D90153 |
:1008F000082E0E94B02E0E94BE2102E010E0D80116 |
:100900000E94A32E802D4AE364ED74E00E94CA0386 |
:10091000D8010E94A32E802D99279F938F9388E35F |
:1009200091E09F938F931F920E941C0984EF91E0A6 |
:100930000E94B20BEC010F900F900F900F900F9050 |
:10094000CE010E94BB0B8823D9F3E091D604FF2788 |
:10095000EE0FFF1FE855FB4F808191818536910591 |
:10096000C4F0E091D704FF27EE0FFF1FE855FB4FBF |
:10097000808191818536910564F083E291E09F93B7 |
:100980008F931F920E941C090E9447160F900F9090 |
:100990000F90E091D604FF27EE0FFF1FE855FB4FA5 |
:1009A0008081918185369105C4F0E091D704FF27BD |
:1009B000EE0FFF1FE855FB4F808191818C599F4FAF |
:1009C00064F48AE091E09F938F931F920E941C0928 |
:1009D0000E94BE210F900F900F908091DC0480FF49 |
:1009E00020C08DEE90E09F938F931F920E941C0970 |
:1009F00084EC99E00E94B20BEC010E94F90F0F9079 |
:100A00000F900F90CE010E94BB0B8823D9F388EE84 |
:100A100090E09F938F931F920E941C090F900F905C |
:100A20000F900E94EC20289880ED97E09093A7010A |
:100A30008093A60188EE93E09093A3038093A20392 |
:100A400085E580939D038AED90E09F938F931F929D |
:100A50000E941C098091DC040F900F900F9082FF80 |
:100A600003C08EEC90E002C086EC90E09F938F93E1 |
:100A70001F920E941C090F900F900F9082EC90E043 |
:100A80009F938F931F920E941C090E943D100F900C |
:100A90000F900F908091A501882379F11092A50104 |
:100AA0000E9437220E94A520289880910101882366 |
:100AB00019F081508093010180911802882329F058 |
:100AC0008091180281508093180220910401309186 |
:100AD00005018091EC0499272817390734F480ED3B |
:100AE00097E09093A7018093A6018091D00188237D |
:100AF00019F40E94311801C028980E94B7070E947B |
:100B0000250880E090E00E94BB0B882319F28091B9 |
:100B10001F02882329F088B190E1892788B901C094 |
:100B2000449884EF91E00E94B20BB4CF1F920F92D1 |
:100B30000FB60F9211248F939F93EF93FF938091A1 |
:100B400000018823E1F48091A1019091A201019616 |
:100B50009093A2018093A101FC01E159FD4FE08136 |
:100B6000ED3019F08639910539F41092A2011092F6 |
:100B7000A10181E080930001E093C60004C01092BF |
:100B8000A2011092A101FF91EF919F918F910F907F |
:100B90000FBE0F901F9018951F920F920FB60F92D5 |
:100BA00011242F933F934F938F939F93AF93BF93B2 |
:100BB000CF93DF93EF93FF938091C60080939001D2 |
:100BC00040919C01463910F010929B018091900158 |
:100BD0008D3009F05CC080919B01823009F057C0D4 |
:100BE00010929B01A42FBB27FD01E055FC4F3081E3 |
:100BF000ED01CF54DC4F288180919F019091A0019D |
:100C0000831B9109821B91099F709093A00180938F |
:100C10009F019C0196E0369527959A95E1F7235C14 |
:100C200020939E01982F9F73935C90939D018081E8 |
:100C3000281729F48881981711F491E006C0809153 |
:100C400093018F5F8093930190E0809191018823BD |
:100C500009F064C0992309F461C081E08093910197 |
:100C600040939401AE54BC4F8DE08C938091B403BB |
:100C7000823509F053C088E190E02CE00FB6F8947B |
:100C8000A895809360000FBE2093600047C08091BC |
:100C90009B018130D9F0813018F08230E9F530C005 |
:100CA00080919001833239F480919101882319F465 |
:100CB00081E080939B01809190018093B20381E059 |
:100CC00080939C0180919001992715C082E08093C8 |
:100CD0009B01E42FFF2780919001EE54FC4F80830D |
:100CE0004F5F40939C012091900180919F019091D2 |
:100CF000A001820F911D9093A00180939F010EC0CF |
:100D0000E42FFF2780919001EE54FC4F80834639F9 |
:100D100038F310929B01E7CF10929B01FF91EF9166 |
:100D2000DF91CF91BF91AF919F918F914F913F9163 |
:100D30002F910F900FBE0F901F901895DC0120E0AF |
:100D400030E040E050E0EFE6F2E005C08191280F8E |
:100D5000311D4F5F5F4F4A175B07C1F73F70C901F5 |
:100D600036E0969587953A95E1F7835CFD01E15968 |
:100D7000FD4F808311962F73235CFD01E159FD4FD8 |
:100D80002083A059BD4F8DE08C931092000180917B |
:100D90006F028093C6000895EF92FF920F931F9306 |
:100DA000CF93DF937A01722F93E290936F02609357 |
:100DB00070028093710203E010E060E0A2E7B2E00D |
:100DC00046C0F701E60FF11D90816F5F715019F475 |
:100DD000E0E040E00FC0F701E60FF11D40816F5FDA |
:100DE000715011F4E0E006C0F701E60FF11DE0815B |
:100DF0006F5F7150892F86958695835C8C935527FC |
:100E0000892F99278370907024E0880F991F2A9565 |
:100E1000E1F79A0194E0369527959A95E1F7822BB0 |
:100E2000835CED0189834F705070440F551F440F50 |
:100E3000551F8E2F8295869586958370842B835CB3 |
:100E40008A83EF73E35CEB830C5F1F4F1496772369 |
:100E500009F0B7CFC8010E949E06E6E0CDB7DEB725 |
:100E60000C948E2E1F93CF93DF93EC0170E0A22F92 |
:100E7000BB27129748C0E42FFF27EE54FC4F308168 |
:100E80004F5FE42FFF27EE54FC4F50814F5FE42F5C |
:100E9000FF27EE54FC4F10814F5FE42FFF27EE54E5 |
:100EA000FC4F20814F5F842F9927A817B90774F151 |
:100EB0005D53FE01E70FF11D3D53330F330F852FB7 |
:100EC00082958F70382B3083613001F1912F9D53C3 |
:100ED0007F5FFE01E70FF11D71505295507F892F02 |
:100EE00086958695582B508363506F3F79F07E5FCF |
:100EF000FE01E70FF11D9295990F990F907C2D53EC |
:100F0000922B90837F5F662309F0B5CFDF91CF915D |
:100F10001F9108951F93182F8A3019F48DE00E94B5 |
:100F20008A078091C00085FFFCCF1093C60080E047 |
:100F300090E01F9108950895E1ECF0E088E180834E |
:100F4000A0ECB0E08C9182608C938081806880837B |
:100F50008081806480838AE28093C40088EC90E082 |
:100F60000E94B20B90939C0380939B030895809101 |
:100F70000001882309F468C080918C01882371F0F6 |
:100F800080910001882351F02BE04DE953E06091FE |
:100F90006E0287E40E94CC0610928C0180919B0324 |
:100FA00090919C030E94BB0B882321F480918E01B9 |
:100FB0008823B1F080910001882391F022E348E476 |
:100FC00054E060916E0284E40E94CC0610928E017F |
:100FD0008AEF90E00E94B20B90939C0380939B0356 |
:100FE00080918D018823F1F0809100018823D1F058 |
:100FF0000E94461010928D0180919A018F5F80931C |
:101000009A01843011F410929A0180919A0144E17E |
:10101000849FA00111244A5E5E4F24E160E0805D60 |
:101020000E94CC0680918F01882371F0809100018D |
:10103000882351F02AE048EA53E060916E0286E589 |
:101040000E94CC0610928F010895A2E0B0E0EBE27E |
:10105000F8E00C94752E80919101882309F48FC0DB |
:101060008FEF809301018091B4039927AA27BB27B2 |
:10107000FC01E356F040E431F10508F07EC0E85C85 |
:10108000FF4F0C949D2E2091940143E06BE08DE97D |
:1010900093E00E9432078091C60190919F03892BB3 |
:1010A0008093C60181E080938E0167C020919401F6 |
:1010B00043E062E0CE0101960E9432078091C601B2 |
:1010C0009981892B8093C60181E080938D0155C061 |
:1010D0002091940143E064E086E991E00E943207A8 |
:1010E0004CC081E080938F0148C081E080938C01E7 |
:1010F00044C02091940143E062E0CE0101960E9439 |
:10110000320789818F3F89F0863010F085E089832E |
:101110004AE364ED74E089810E94CA0389812AE36D |
:1011200044ED54E060916E0208C010916E020E947E |
:10113000A9032AE344ED54E0612F855B0E94CC06AD |
:101140001CC02091940143E06AE384ED94E00E9486 |
:1011500032078091B4034AE364ED74E08B560E9439 |
:10116000B0038091B4038B56A2E0B0E0082E0E9439 |
:10117000B02E0E94A9030E94222210929101E3E066 |
:10118000CE5F0C94912E982F80917A04813069F46F |
:101190008091C501E82FFF27EA5EFE4F90838F5FA5 |
:1011A0008093C50121E030E005C0892F0E948A07A5 |
:1011B000282F3327C90108951F93182F04C080E3F7 |
:1011C0000E94C30811501116D4F31F9108951F9364 |
:1011D000182F04C080E20E94C30811501116D4F3E6 |
:1011E0001F9108950F931F93CF93DF938C01EB0111 |
:1011F00008C0F8010F5F1F4FE4918E2F0E94C308B3 |
:1012000021972097B1F7DF91CF911F910F9108950A |
:101210000F931F93CF93DF938C01EB0106C0F8016E |
:1012200081918F010E94C30821972097C1F7DF9118 |
:10123000CF911F910F910895A3E3B0E0E2E2F9E0AE |
:101240000C94662E29968FAD299780937A04CE014F |
:10125000855B9F4F9D838C832B968EAD9FAD2B9787 |
:101260009FA78EA722243324210102C01301240149 |
:101270000EA51FA502C00F5F1F4FF801F490FF20BD |
:1012800019F0F5E2FF16B9F7B8018EA59FA5681B06 |
:10129000790B11F00E94F208FF2009F442C20F5F9F |
:1012A0001F4F1FA70EA71982AC81BD811BAA1AAAC6 |
:1012B0009FEF99ABEEA5FFA5CF0101969FA78EA743 |
:1012C000B49095E7B91621F08B2D8062883789F4A8 |
:1012D000EBA9E0FF07C02D903D904D905C901397D7 |
:1012E000149607C08D919C9111971C01442455249C |
:1012F0001296F0E2BF1621F489818823D9F685C0C1 |
:1013000083E2B81609F483C09AE2B91621F0EDE23F |
:10131000BE1669F408C0FD011296E081EAABE7FF52 |
:10132000C9CFE195EAABFBA9F061FF7D72C08BE20A |
:10133000B81609F46AC09EE2B916B1F52EA53FA50C |
:101340002F5F3F4FEEA5FFA584918A3221F0B82E82 |
:1013500020E030E01BC0FD0112964081518157FF13 |
:1013600002C04FEF5FEF49AB3FA72EA7A3CFC90144 |
:1013700003E0880F991F0A95E1F7220F331F280F0A |
:10138000391F2B0D311D20533040B49031968B2DD9 |
:1013900080538A3060F3FFA7EEA7A90137FF02C090 |
:1013A0004FEF5FEF49AB8DCFF0E3BF1631F48BA960 |
:1013B00084FD80CF80628BAB7DCF8B2D81538930B4 |
:1013C000E8F420E030E0C901F3E0880F991FFA95B6 |
:1013D000E1F7220F331F280F391F2B0D311D20532A |
:1013E0003040EEA5FFA5CF0101969FA78EA7B49030 |
:1013F0008B2D80538A3038F32AAB63CF98E6B91629 |
:1014000051F4EBA9E460EBAB55CFB98253CFFBA904 |
:10141000F860FBAB4FCF8CE6B81621F49BA9916026 |
:101420009BAB48CFBD83AC83E3E6BE1639F412967E |
:10143000BD83AC8312978C918E8318C1F4E4BF16E0 |
:1014400039F084E6B81639F099E6B91659F503C0B3 |
:10145000EBA9E160EBABFBA9F0FF08C01496BD83DC |
:10146000AC835E904E903E902E900AC01296BD8343 |
:10147000AC839E918E911C01442437FC4094542CE3 |
:1014800057FC03C08AE088AB92C0509440943094DB |
:101490002094211C311C411C511C8DE289839AE04F |
:1014A00098AB85C0EFE4BE1629F0FFE6BF1639F40D |
:1014B00088E061C09BA991609BABE8E056C0F0E773 |
:1014C000BF1671F41296BD83AC839E918E911C0160 |
:1014D000442455248BA980648BAB78E7B72E5EC07B |
:1014E000E3E7BE16D9F51296BD83AC83DE90CE90AD |
:1014F000C114D10489F488E28E838EE68F8385E758 |
:1015000088878CE689878A8789E28B871C8666E0D4 |
:10151000C62ED12CCC0EDD1EF9A9F7FD13C04F2F1E |
:10152000552747FD509560E070E0C6010E946E2C83 |
:10153000009711F419A90DC08C1919A981174CF441 |
:10154000182F07C0F60101900020E9F731971E2FF0 |
:101550001C1919824201310140E094C085E5B8169A |
:1015600031F095E7B91649F4EAE0E8AB1FC0FBA9F2 |
:10157000F160FBAB8AE088AB19C098E5B91621F0A1 |
:10158000E8E7BE1609F06EC0FBA9F3FD02C080E1DA |
:10159000F2CF211431044104510419F490E198ABC5 |
:1015A00005C0EBA9E064EBABF0E1F8AB198289A9C7 |
:1015B00087FD03C09BA99F7D9BAB2114310441048F |
:1015C000510461F4E9A9EE2349F466247724430128 |
:1015D0005EE2C52ED12CCC0EDD1E3EC04EE2C42EE6 |
:1015E000D12CCC0EDD1EF8A9EF2EFF2400271127E9 |
:1015F000C201B101A80197010E94292E6A3020F48E |
:1016000030E3A32EA60E08C027E5A22EA60E88E57D |
:10161000B81611F49FEDA922F601A2926F01C20142 |
:10162000B101A80197010E94292E39014A012E1407 |
:101630003F044006510618F019012A01D9CFF8A934 |
:10164000F83051F48BA983FF07C090E3A91621F06D |
:1016500080E3F60182936F01CE018C19182F125D81 |
:1016600049A910C0BB2009F45CC0BE8219824201A6 |
:10167000310100E096E0C92ED12CCC0EDD1E11E028 |
:1016800021E005C0212F042F011B07FD00E0898107 |
:10169000882319F0812F8F5F07C09BA996FD02C098 |
:1016A000812F02C0822F8E5FA82EA00EEBA9EE2EF6 |
:1016B000FF2480E3482E512C4E205F20411451041A |
:1016C00021F48AA98A190E94E7088981882329F0D0 |
:1016D00061E070E0CE01019609C0E6FE09C080E33A |
:1016E0008A83BB8262E070E0CE0102960E94080904 |
:1016F000F0E24F16510421F48AA98A190E94DC08ED |
:10170000802F0E94DC08612F772767FD7095C60146 |
:101710000E940809E4FEAACD8AA98A190E94E70856 |
:10172000A5CDE2E1CD5C0C94822E82E085BD83EAFA |
:1017300084BD17BC88E788BD83EC8093B00086E049 |
:101740008093B100E0E7F0E0808182608083EEE684 |
:10175000F0E08081816080838AE08093B300109202 |
:10176000B20008952091A3013091A4012F5F3F4F53 |
:10177000820F931F08952091A3013091A401821B31 |
:10178000930B892F992786958074992708951F9226 |
:101790000F920FB60F921124EF92FF920F931F93A7 |
:1017A0002F933F934F935F936F937F938F939F9369 |
:1017B000AF93BF93CF93DF93EF93FF938091020199 |
:1017C0008150809302018F3F09F069C083E88093C4 |
:1017D000B00080918901C82FDD27D093A901C09363 |
:1017E000A8018091FA04E090F6042091D70130918D |
:1017F000D8014091D9015091DA0180FF18C0FF242F |
:1018000000271127CA01B90120E830E040E050E08C |
:101810000E944B2EC801B7010E94E32D20E032E068 |
:1018200040E050E00E944B2EC20FD31F17C0FF2490 |
:1018300000271127CA01B90120E830E040E050E05C |
:101840000E944B2EC801B7010E94E32D20E032E038 |
:1018500040E050E00E944B2EC21BD30BD093A90155 |
:10186000C093A8012091A8013091A9018091F704AB |
:1018700099272817390734F08091F804992782179F |
:10188000930724F49093A9018093A8018091A80163 |
:101890008093B3008091F9048093020104C083E037 |
:1018A0008093B0005F98FF91EF91DF91CF91BF914E |
:1018B000AF919F918F917F916F915F914F913F91E8 |
:1018C0002F911F910F91FF90EF900F900FBE0F90EF |
:1018D0001F9018951F920F920FB60F9211242F93FD |
:1018E0003F934F935F936F937F938F939F93AF93A8 |
:1018F000BF93EF93FF938091AA0181508093AA0137 |
:101900008F3F01F58AE08093AA01809103018F5FE8 |
:10191000817080930301882319F481E08093A501ED |
:101920008091A3019091A40101969093A4018093CA |
:10193000A3018091D001882329F08091D0018150AA |
:101940008093D0018091A6019091A701029758F051 |
:101950008091A6019091A70101979093A701809390 |
:10196000A6015A9A01C05A988091DC0483FF02C0F4 |
:101970000E941516FF91EF91BF91AF919F918F91AA |
:101980007F916F915F914F913F912F910F900FBE7B |
:101990000F901F9018952091A3013091A4012F5F03 |
:1019A0003F4F280F391F8091A3019091A401A901F5 |
:1019B000481B590B57FFF7CF089510927C008FEC0E |
:1019C00080937A0008951F920F920FB60F92112400 |
:1019D000EF92FF920F931F932F933F934F935F9339 |
:1019E0006F937F938F939F93AF93BF93CF93DF9327 |
:1019F000EF93FF9310927A008091C1018F5F8093E3 |
:101A0000C1018150E82FFF27E830F10508F0CFC26F |
:101A1000E45BFF4F0C949D2E2091D5013091D601AF |
:101A20008091780090917900281B390B8091AF014B |
:101A30009091B001820F931F9093B0018093AF01FA |
:101A40008091B9018F5F8093B9018091FB019091E2 |
:101A5000FC01A091FD01B091FE01442737FD4095A6 |
:101A6000542F820F931FA41FB51F8093FB019093E7 |
:101A7000FC01A093FD01B093FE018091FF019091C4 |
:101A80000002A0910102B0910202820F931FA41FD5 |
:101A9000B51F8093FF0190930002A0930102B093C1 |
:101AA000020281E08093C2018091BF019091C00148 |
:101AB00001969093C0018093BF017DC26091780030 |
:101AC000709179008091D3019091D401681B790BBA |
:101AD0008091F3019091F401A091F501B091F6018C |
:101AE0009B01442737FD4095542F820F931FA41F5D |
:101AF000B51F8093F3019093F401A093F501B09387 |
:101B0000F6018091F7019091F801A091F901B0914F |
:101B1000FA01820F931FA41FB51F8093F7019093C2 |
:101B2000F801A093F901B093FA01809178009091A7 |
:101B300079000A9710F464E47DEF80917800909129 |
:101B40007900895E934010F06CEB72E08091AD01FA |
:101B50009091AE01860F971F9093AE018093AD01D7 |
:101B60008091B8018F5F8093B80182E058C0609186 |
:101B70007800709179008091D1019091D201681B19 |
:101B8000790B8091EB019091EC01A091ED01B09166 |
:101B9000EE019B01442737FD4095542F820F931F80 |
:101BA000A41FB51F8093EB019093EC01A093ED016E |
:101BB000B093EE018091EF019091F001A091F101BD |
:101BC000B091F201820F931FA41FB51F8093EF0104 |
:101BD0009093F001A093F101B093F201809178000D |
:101BE000909179000A9710F464E47DEF8091780079 |
:101BF00090917900895E934010F06CEB72E08091D7 |
:101C0000AB019091AC01860F971F9093AC0180932C |
:101C1000AB018091B7018F5F8093B70184E080931F |
:101C2000C201C9C140910401509105018091780021 |
:101C3000909179009A01220F331F240F351F63E022 |
:101C400070E00E94022E260F371F36952795369595 |
:101C50002795309305012093040186E0E0CF809121 |
:101C60001B0590911C052091780030917900821B12 |
:101C7000930B90937C0480937B048091B1019091AD |
:101C8000B20120917B0430917C04820F931F9093CA |
:101C9000B2018093B1018091BB018F5F8093BB0142 |
:101CA00087E0BDCF8091780090917900209119054F |
:101CB00030911A05821B930B9093870480938604BE |
:101CC0008091B3019091B4012091860430918704F2 |
:101CD000820F931F9093B4018093B3018091BA0156 |
:101CE0008F5F8093BA0185E08093C20186E0E4C0F3 |
:101CF0006091780070917900E0901D05F0901E05CC |
:101D000000911F0510912005882777FD8095982F59 |
:101D10000E94212DA80197010E947B2C0E94042D76 |
:101D20007093B6016093B5012091B5013091B60171 |
:101D3000E0917B04F0917C0480918604909187046B |
:101D400097FF03C0909581959F4F64E070E00E94DB |
:101D5000162EEB01CF01F7FF03C0909581959F4FA1 |
:101D600064E070E00E94162E260F371F2C0F3D1FD7 |
:101D70003093B6012093B5018091B5019091B601E1 |
:101D8000029704F160911D0570911E0580911F0559 |
:101D90009091200520E030E048E454E40E942B2D8F |
:101DA00088230CF03CC060911D0570911E05809148 |
:101DB0001F05909120052AE037ED43EA5CE30E947D |
:101DC0007C2C25C08091B5019091B6018F5F9F4F0B |
:101DD00034F560911D0570911E0580911F0590914D |
:101DE000200520E030E046E154E40E942E2D181634 |
:101DF000B4F460911D0570911E0580911F059091AE |
:101E000020052AE037ED43EA5CE30E947B2C6093D7 |
:101E10001D0570931E0580931F059093200581E09A |
:101E20008093BC01809178009091790090937E041A |
:101E300080937D04209103023091040240910502B9 |
:101E4000509106028091B5019091B601AA2797FDA5 |
:101E5000A095BA2F280F391F4A1F5B1F209303023A |
:101E6000309304024093050250930602E09003026F |
:101E7000F0900402009105021091060260910302A5 |
:101E800070910402809105029091060220E034E0F6 |
:101E900040E050E00E944B2EE21AF30A040B150BAF |
:101EA000E0920302F09204020093050210930602EE |
:101EB00083E08093C20187E08093C1017CC0809160 |
:101EC0008B0490918C042091780030917900820FDE |
:101ED000931F90938C0480938B04809183048F5F75 |
:101EE0008093830480918304853008F460C08091DE |
:101EF00078009091790090930B0180930A011092E1 |
:101F0000830480917F049091800420918B04309110 |
:101F10008C04821B930B2091200230912102821BA2 |
:101F2000930B9093BE018093BD0160918B047091DF |
:101F30008C04E0900601F0900701009108011091D7 |
:101F40000901882777FD8095982FA8019701220F16 |
:101F5000331F441F551F2E0D3F1D401F511F620F81 |
:101F6000731F841F951F24E030E040E050E00E9482 |
:101F70004B2E2093060130930701409308015093A4 |
:101F8000090120917F043091800480910601909195 |
:101F90000701A0910801B0910901281B390B30936A |
:101FA00021022093200210928C0410928B04109234 |
:101FB000C2011092C1018091C20180937C008FEC1C |
:101FC00080937A00FF91EF91DF91CF91BF91AF9114 |
:101FD0009F918F917F916F915F914F913F912F9141 |
:101FE0001F910F91FF90EF900F900FBE0F901F90D9 |
:101FF0001895CF93DF93A3E0B0E00E94A32E802D2D |
:10200000C82FDD27C531D10508F02A97C7BD84E662 |
:1020100090E00E94CB0C80910A0190910B018255B7 |
:102020009340D0F4C0E0D0E017C0C7BD82E390E099 |
:102030000E94CB0C8BEB91E09F938F931F920E9499 |
:102040001C0980910A0190910B010F900F900F9045 |
:102050008458934020F02196CA3FD10530F3A3E085 |
:10206000B0E00C2E0E94B02EC093880488EC90E063 |
:102070000E94CB0CDF91CF910895E6E1F1E080E280 |
:10208000819391E0E636F907D9F70895FF920F930F |
:102090001F938091C601282F3327C901817090704A |
:1020A000682F882391F08091C701882311F0815017 |
:1020B00002C0809166018093C701E6E1F1E080E211 |
:1020C000819391E0E636F907D9F7A9014270507083 |
:1020D00021FF0DC08091C7018F5F8093C701E6E1AA |
:1020E000F1E080E2819391E0E636F907D9F76623C3 |
:1020F00021F0452B11F01092C70181E18093C501B9 |
:102100008091C70199279F938F9385E994E09F93CE |
:102110008F9381E08F930E941C098091C7010F90DB |
:102120000F900F900F900F90E82FFF27ED30F105E3 |
:1021300008F0BCC3EC5AFF4F0C949D2E1092C501C1 |
:1021400083E894E09F938F9311E01F930E941C09F2 |
:1021500084E18093C5018CE390E09F938F931F925D |
:102160001F928CE794E09F938F931F930E941C090A |
:1021700088E28093C5010E94A90399279F938F93BA |
:102180008FE694E09F938F931F930E941C098CE32A |
:102190008093C5018FE594E09F938F931F930E94D6 |
:1021A0001C0980C38091DC0480FF44C01092C501EB |
:1021B00080912002909121029F938F9380E594E07B |
:1021C0009F938F9311E01F930E941C0984E18093D9 |
:1021D000C50180912202909123029F938F9381E405 |
:1021E00094E09F938F931F930E941C0988E2809331 |
:1021F000C50180910A0190910B019F938F9382E317 |
:1022000094E09F938F931F930E941C098CE380930B |
:10221000C5018091880499279F938F9383E294E06E |
:102220009F938F931F930E941C098DB79EB744966E |
:102230008DBF41C384E18093C5018CE194E09F93FD |
:102240008F9311E01F930E941C0988E28093C501BF |
:102250008EE094E09F938F931F930E941C098DB78B |
:102260009EB70696E5CF1092C50184E094E09F9357 |
:102270008F9311E01F930E941C0984E18093C50194 |
:102280006091D7017091D8018091D9019091DA01C4 |
:1022900020E034E040E050E00E944B2E5F934F93EB |
:1022A0003F932F9385EF93E09F938F931F930E940B |
:1022B0001C0988E28093C5016091DF017091E00103 |
:1022C0008091E1019091E20120E034E040E050E0B3 |
:1022D0000E944B2E5F934F933F932F9386EE93E094 |
:1022E0009F938F931F930E941C098CE38093C501D9 |
:1022F00080910702909108029F938F9387ED93E05E |
:102300009F938F931F930E941C098DB79EB746968B |
:102310008FCF1092C5018091AC049091AD042091B3 |
:10232000AA043091AB049F938F933F932F9387EC34 |
:1023300093E09F938F9311E01F930E941C0984E107 |
:102340008093C5018091B0049091B1042091AE04B6 |
:102350003091AF049F938F933F932F9387EB93E03C |
:102360009F938F931F930E941C0988E28093C5015D |
:102370008091B4049091B5042091B2043091B304DB |
:102380009F938F933F932F9387EA93E09F938F932D |
:102390001F930E941C098CE38093C5018091B604B1 |
:1023A0009091B7049F938F9387E993E070C0109248 |
:1023B000C501E091D504FF27EE0FFF1FE855FB4F45 |
:1023C00020813181E091D404FF27EE0FFF1FE855F3 |
:1023D000FB4F808191813F932F939F938F9387E849 |
:1023E00093E09F938F9311E01F930E941C0984E157 |
:1023F0008093C501E091D704FF27EE0FFF1FE8553A |
:10240000FB4F20813181E091D604FF27EE0FFF1FA3 |
:10241000E855FB4F808191813F932F939F938F933A |
:1024200087E793E09F938F931F930E941C0988E294 |
:102430008093C501E091D904FF27EE0FFF1FE855F7 |
:10244000FB4F20813181E091D804FF27EE0FFF1F61 |
:10245000E855FB4F808191813F932F939F938F93FA |
:1024600087E693E09F938F931F930E941C098CE350 |
:102470008093C501E091DA04FF27EE0FFF1FE855B6 |
:10248000FB4F808191819F938F9387E593E09F938A |
:102490008F931F930E941C098DB79EB74A96C8CE92 |
:1024A0001092C50189E493E09F938F9311E01F93ED |
:1024B0000E941C0984E18093C5012091D1013091D3 |
:1024C000D2018091AB019091AC016091B7013F9333 |
:1024D0002F9377270E94162E7F936F938AE393E0C2 |
:1024E0009F938F931F930E941C0988E28093C501DC |
:1024F0002091D3013091D4018091AD019091AE0132 |
:102500006091B8013F932F9377270E94162E7F93F7 |
:102510006F938BE293E09F938F931F930E941C090C |
:102520008CE38093C5012091D5013091D601809133 |
:10253000AF019091B0016091B9013F932F9377273C |
:102540000E94162E7F936F938CE193E09F938F935D |
:102550001F935BC01092C5018FE093E09F938F9310 |
:1025600081E0F82EFF920E941C0984E18093C5014E |
:102570002091190530911A058091B3019091B40111 |
:102580006091BA013F932F9377270E94162E7F9375 |
:102590006F9380E093E09F938F93FF920E941C09BA |
:1025A00088E28093C50120911B0530911C05809124 |
:1025B000B1019091B2016091BB013F932F937727B6 |
:1025C0000E94162E7F936F9381EF92E09F938F93DB |
:1025D000FF920E941C098CE38093C50160911D0548 |
:1025E00070911E0580911F059091200500917D043A |
:1025F00010917E040E94042D7F936F931F930F937D |
:1026000082EE92E09F938F93FF920E941C098DB7F8 |
:102610009EB748960DCE84E18093C5018091040158 |
:10262000909105019F938F9383ED92E09F938F93F9 |
:1026300011E01F930E941C0988E28093C5018091DC |
:10264000180299279F938F9384EC92E09F938F9326 |
:102650001F930E941C098DB79EB70A96E9CD109270 |
:10266000C50185EB92E09F938F9311E01F930E9429 |
:102670001C0984E18093C50180910B0290910C02AA |
:102680009F938F9386EA92E09F938F931F930E946C |
:102690001C0988E28093C50180910702909108028D |
:1026A0009F938F9387E992E09F938F931F930E944C |
:1026B0001C098CE38093C5018091090290910A0264 |
:1026C0009F938F9388E892E0E8C01092C5018091B3 |
:1026D0001002909111029F938F938CE792E09F9349 |
:1026E0008F9311E01F930E941C0984E18093C50120 |
:1026F00080911202909113029F938F9380E792E052 |
:102700009F938F931F930E941C0988E28093C501B9 |
:1027100080911402909115029F938F9384E692E02A |
:102720009F938F931F930E941C098CE38093C50194 |
:1027300080911602909117029F938F9388E592E003 |
:102740006FCD1092C50180E592E09F938F9311E0C9 |
:102750001F930E941C0984E18093C5018091890127 |
:1027600099279F938F9382E492E09F938F931F9377 |
:102770000E941C0988E28093C5018091A801909174 |
:10278000A9019F938F9384E392E09F938F931F936C |
:102790000E941C098CE38093C5018091F80499275D |
:1027A0009F938F938091F70499279F938F9386E24D |
:1027B00092E09F938F931F930E941C0936CD109235 |
:1027C000C5018EE192E09F938F9311E01F930E94C9 |
:1027D0001C0984E18093C50180918D04992787FDB0 |
:1027E00090959F938F938FE092E09F938F931F9389 |
:1027F0000E941C0988E28093C50180918E0499276C |
:1028000087FD90959F938F9380E092E09F938F93A5 |
:102810001F930E941C098CE38093C50180918F0453 |
:10282000992787FD90959F938F9381EF91E035C015 |
:102830001092C50187EE91E09F938F9311E01F9353 |
:102840000E941C0984E18093C501809190049091BD |
:1028500091049F938F9389ED91E09F938F931F93A2 |
:102860000E941C0988E28093C50180919204909196 |
:1028700093049F938F938BEC91E09F938F931F937F |
:102880000E941C098CE38093C5018091940490916F |
:1028900095049F938F938DEB91E09F938F931F935C |
:1028A0000E941C098DB79EB74296C2CC815080937E |
:1028B00066011092C7011092C6011F910F91FF90FF |
:1028C00008951F920F920FB60F9211242F933F93EA |
:1028D0004F938F939F9380919604833019F08430A7 |
:1028E000A1F508C08EB58093C8011EBC84E080931A |
:1028F00096042BC08091C8019927382F22278EB5C6 |
:102900009927282B392BC9018D509E4F875E934004 |
:10291000D0F480919904853019F0863069F406C0AE |
:1029200030939B0420939A0486E00BC030939D045F |
:1029300020939C0487E005C030939F0420939E045D |
:1029400085E080939904109296049F918F914F9106 |
:102950003F912F910F900FBE0F901F901895A0E1FF |
:10296000B0E0E5EBF4E10C94662EE090F104FF2476 |
:1029700033E0EE0CFF1C3A95E1F700271127609138 |
:10298000D7017091D8018091D9019091DA01A80105 |
:1029900097010E944B2E59016A01C9010E94C91773 |
:1029A0006D877E878F87988BC5010E94291869875C |
:1029B0007A878B879C876091DF017091E00180911D |
:1029C000E1019091E201A80197010E944B2E79014B |
:1029D0008A01C9010E94C9176D837E838F839887FE |
:1029E000C7010E94291869837A838B839C83A090F6 |
:1029F0009A04B0909B0480918D04992787FD90954F |
:102A0000A81AB90A80909C0490909D0480918E042D |
:102A1000992787FD9095881A990A40909E045090B6 |
:102A20009F0480918F04992787FD9095481A590A31 |
:102A30002090900430909104C0909204D090930420 |
:102A4000C214D304D0F4609094047090950462147E |
:102A5000730498F4710100271127B401882777FDCA |
:102A60008095982FA80197010E94E32D9601442795 |
:102A700055270E944B2E49011CC02C143D0448F5DB |
:102A800060909404709095046C147D0410F57601A8 |
:102A900000271127B501882777FD8095982FA80179 |
:102AA00097010E94E32D9101442755270E944B2E48 |
:102AB0005901B201882777FD8095982FA8019701C9 |
:102AC0000E94E32D9301442755270E944B2E290194 |
:102AD00024C0E0909404F090950400271127B501DC |
:102AE000882777FD8095982FA80197010E94E32DF4 |
:102AF0009101442755270E944B2E5901B401882784 |
:102B000077FD8095982FA80197010E94E32D9601EB |
:102B1000442755270E944B2E4901B0926D04A09284 |
:102B20006C0490926F0480926E04509271044092F3 |
:102B30007004B501882777FD8095982F0E94212D7C |
:102B400029853A854B855C850E949B2D5B016C0134 |
:102B5000B401882777FD8095982F0E94212D7B0155 |
:102B60008C012D813E814F8158850E949B2D2D85A2 |
:102B70003E854F8558890E949B2D9B01AC01C60163 |
:102B8000B5010E947C2C3B014C01B201882777FDE6 |
:102B90008095982F0E94212D5B016C0129813A813B |
:102BA0004B815C81C801B7010E949B2D7B018C0188 |
:102BB0002D813E814F815885C601B5010E949B2D14 |
:102BC0009B01AC01C801B7010E947C2C0E94042D1E |
:102BD0007B018C0129813A814B815C81C601B50161 |
:102BE0000E949B2D2D853E854F8558890E949B2DE7 |
:102BF0009B01AC01C401B3010E947B2C0E94042DF7 |
:102C0000DC01CB01B7010E9421179C0197FF05C091 |
:102C100088279927821B930B04C088E691E0821BCA |
:102C2000930BE2E1C05F0C94822E80919604813078 |
:102C300041F0813018F0823049F51CC02A9A81E0B9 |
:102C400016C02A9880919904853011F481E305C05B |
:102C5000863011F482E301C083E38EBD88E090E00A |
:102C60000E94B20B909398048093970482E0809323 |
:102C70009604089580919704909198040E94BB0B4C |
:102C8000882321F01EBC83E0809396040895A0E081 |
:102C9000B0E0EDE4F6E10C94682E299A2898EE2431 |
:102CA000FF2400E010E0AA24BB24CC24DD24662409 |
:102CB00077248824992462E3462E552480919A042F |
:102CC00090919B04081719072CF400919A04109115 |
:102CD0009B040BC080919A0490919B048E159F05D4 |
:102CE00024F4E0909A04F0909B0480919C049091CD |
:102CF0009D04C816D9062CF4C0909C04D0909D0465 |
:102D00000BC080919C0490919D048A159B0524F42E |
:102D1000A0909C04B0909D0480919E0490919F048B |
:102D2000881699062CF480909E0490909F040BC006 |
:102D300080919E0490919F048615970524F46090DD |
:102D40009E0470909F04552081F485B191E08927FD |
:102D500085B985B192E0892785B982E390E09093A7 |
:102D6000A7018093A60152E3552E8AE090E00E94CD |
:102D7000B20BEC01CE010E94BB0B8823D9F3E0918A |
:102D8000D604FF27EE0FFF1FE855FB4F808191818E |
:102D9000843691050CF44A94442011F05A948ECF55 |
:102DA000C8018E199F099093910480939004C601E5 |
:102DB0008A199B099093930480939204C401861905 |
:102DC00097099093950480939404EDE8F4E0C8018A |
:102DD0008E0D9F1D62E070E00E94162E60938D04A0 |
:102DE000C6018A0D9B1D62E070E00E94162E609362 |
:102DF0008E04C401860D971D62E070E00E94162EBD |
:102E000060938F0489E0ACE2B1E0182E0E94BC2EE2 |
:102E1000E0E1CDB7DEB70C94842E83ED8CBD84B198 |
:102E2000846A84B95B9885E0809399041092960433 |
:102E300089E0EDE8F4E0ACE2B1E0182E0E94AB2EA0 |
:102E400008951F93CF93DF93EC01892B31F4611523 |
:102E5000710519F480E090E08EC077FD02C011E0AA |
:102E600001C01FEF209729F48AE51802C001112440 |
:102E700082C0882777FD8095982F22E330E040E0DC |
:102E800050E00E94E32D9E01442737FD4095542FCA |
:102E90000E944B2EF90137FF03C0F095E195FF4FDB |
:102EA00041E0EE30F40734F4E656FB4F8491282FCE |
:102EB000332747C056E1E737F5071CF02AE530E035 |
:102EC00040C087E0E637F8071CF029E530E039C05C |
:102ED00044E0EE37F4071CF028E530E032C053E060 |
:102EE000E433F5071CF027E530E02BC082E0E03842 |
:102EF000F8071CF026E530E024C042E0E830F40793 |
:102F00001CF025E530E01DC051E0E83BF5071CF062 |
:102F100024E530E016C081E0EC37F8071CF023E52B |
:102F200030E00FC041E0EF34F4071CF022E530E060 |
:102F300008C0EB52F1401CF021E530E002C020E572 |
:102F400030E01C161D066CF4812F992787FD9095A3 |
:102F5000AC01249FC001259F900D349F900D11243A |
:102F60000AC011162CF484EB90E0821B930B03C073 |
:102F7000C901845B9040DF91CF911F910895FC01BE |
:102F800025913491FC01329645915491CA01B901C1 |
:102F90000895A0E0B0E0EFECF7E10C94702E9C01F6 |
:102FA00097FD04C041E0C42ED12C06C03095219578 |
:102FB0003F4F9FEFC92ED92E2B3531055CF0C9014B |
:102FC0008B5590408A35910540F484EB90E0821B4C |
:102FD000930B9C01C1E0D0E010C0C901855B90401B |
:102FE0008A35910518F4245B304005C088E691E0ED |
:102FF000821B930B9C01CFEFDFEF220F331F220FB9 |
:10300000331FC90188559A4F0E94BF177B018C015D |
:10301000B601882777FD8095982F0E94212D9B016E |
:10302000AC01C801B7010E949B2D7B018C01BE0140 |
:10303000882777FD8095982F0E94212D9B01AC0158 |
:10304000C801B7010E949B2DE8E0CDB7DEB70C9414 |
:103050008C2E2AE530E0281B390BC9010E94C917C4 |
:1030600008951092B9008AE28093B800089585EA25 |
:103070008093BC00089584E98093BC0008958093F8 |
:10308000BB0085E88093BC00089585EC8093BC006C |
:10309000089585E88093BC0008951F920F920FB6A3 |
:1030A0000F9211248F939F93EF93FF938091C90107 |
:1030B0008F5F8093C90181508330E9F1843028F417 |
:1030C000813081F0823078F508C08530D9F18530C3 |
:1030D000B8F1863009F04FC03EC08091CA01880F18 |
:1030E0008E5A12C08091CA018F5F8093CA018150AD |
:1030F000813081F0813030F0823079F0833009F016 |
:1031000041C00EC0809160028093BB0085E880932F |
:10311000BC0038C080916102F7CF80916402F4CF87 |
:1031200080916502F1CF8091CA01843010F4109231 |
:10313000C90185EAECCF8091CB01880F8D5AE4CF8D |
:1031400085ECE5CFE091CB01FF278091BB00E056F5 |
:10315000FB4F8083DBCF8091CB01E82FFF2790913D |
:10316000BB00EC55FB4F90838F5F8093CB01843085 |
:1031700010F01092CB0184E98093BC001092C90139 |
:103180001092CA01FF91EF919F918F910F900FBE06 |
:103190000F901F90189583EC80938100EFE6F0E08C |
:1031A0008081806280831092D6011092D5011092A6 |
:1031B000D4011092D3011092D2011092D10108953E |
:1031C0001F920F920FB60F9211240F931F932F93FC |
:1031D0003F934F935F936F937F938F939F93AF939F |
:1031E000BF93CF93DF93EF93FF93209186003091AD |
:1031F00087008091CE019091CF01281B390B8091DF |
:103200008600909187009093CF018093CE01C901F1 |
:103210008D5D95408356994148F481E090E090930C |
:10322000CD018093CC011092670154C0C091CC01B4 |
:10323000D091CD01CA30D1050CF04CC0C9018B5FD3 |
:103240009040845B914008F040C0A901425D51402C |
:10325000FE01EE0FFF1FE855FB4F80819181FA01BF |
:10326000E81BF90BCF01F7FF03C0909581959F4FA5 |
:1032700006974CF480911802883C28F4809118023B |
:10328000865F80931802FE01EE0FFF1F8F01085525 |
:103290001B4FD8012D913C91C901880F991F820FB6 |
:1032A000931F840F951F64E070E00E94162ED801D2 |
:1032B0008D919C9111979B01281B390BE254FB4F78 |
:1032C0003183208311967C936E932196D093CD0108 |
:1032D000C093CC01FF91EF91DF91CF91BF91AF915E |
:1032E0009F918F917F916F915F914F913F912F911E |
:1032F0001F910F910F900FBE0F901F901895AF92D6 |
:10330000BF92CF92DF92EF92FF920F931F93109292 |
:103310007A008091B701882369F08091AB01909188 |
:10332000AC016091B70177270E94162E70931105AA |
:10333000609310058091B801882369F08091AD01F8 |
:103340009091AE016091B80177270E94162E70937C |
:103350000F0560930E058091B901882369F0809173 |
:10336000AF019091B0016091B90177270E94162EAC |
:1033700070932505609324058091BA018823D9F1C3 |
:103380006091B3017091B4012091BA01E0902105E0 |
:10339000F09022050027F7FC0095102F57016801D7 |
:1033A00083E0AA0CBB1CCC1CDD1C8A95D1F7AE189F |
:1033B000BF08C00AD10A882777FD8095982FB4E00E |
:1033C000660F771F881F991FBA95D1F733274427B7 |
:1033D00055270E944B2EA20EB31EC41ED51EC60139 |
:1033E000B50128E030E040E050E00E944B2E3093E1 |
:1033F0002205209321058091BB018823D9F160919A |
:10340000B1017091B2012091BB01E0902A05F090CA |
:103410002B050027F7FC0095102F57016801A3E04A |
:10342000AA0CBB1CCC1CDD1CAA95D1F7AE18BF089A |
:10343000C00AD10A882777FD8095982FF4E0660F9F |
:10344000771F881F991FFA95D1F7332744275527EF |
:103450000E944B2EA20EB31EC41ED51EC601B5017E |
:1034600028E030E040E050E00E944B2E30932B05E6 |
:1034700020932A058091BC018823A1F16091B501B8 |
:103480007091B6012091BC01E0901305F0901405F5 |
:103490000027F7FC0095102F57016801E3E0AA0C04 |
:1034A000BB1CCC1CDD1CEA95D1F7AE18BF08C00AC6 |
:1034B000D10A882777FD8095982F332744275527F1 |
:1034C0000E944B2EA20EB31EC41ED51EC601B5010E |
:1034D00028E030E040E050E00E944B2E309314058D |
:1034E000209313051092AC011092AB011092B7011A |
:1034F0001092AE011092AD011092B8011092B0017D |
:103500001092AF011092B9011092B2011092B10164 |
:103510001092BB011092B4011092B3011092BA0143 |
:103520001092B6011092B5011092BC018091FB017E |
:103530009091FC01A091FD01B091FE018093E70103 |
:103540009093E801A093E901B093EA018091EB0127 |
:103550009091EC01A091ED01B091EE018093D70123 |
:103560009093D801A093D901B093DA018091F3012F |
:103570009091F401A091F501B091F6018093DF01E3 |
:103580009093E001A093E101B093E2018091EF01FB |
:103590009091F001A091F101B091F2018093DB01D3 |
:1035A0009093DC01A093DD01B093DE018091F701DF |
:1035B0009091F801A091F901B091FA018093E30193 |
:1035C0009093E401A093E501B093E6018FEC809322 |
:1035D0007A0020911002309111028091D804E82FD6 |
:1035E000FF27EE0FFF1FE855FB4F80819181825925 |
:1035F0009F4F281739071CF42F5F3F4F0CC0808165 |
:10360000918182599F4F821793074CF42115310500 |
:1036100031F021503040309311022093100220915C |
:103620001202309113028091D904E82FFF27EE0F88 |
:10363000FF1FE855FB4F8081918182599F4F2817CA |
:1036400039071CF42F5F3F4F0CC080819181825954 |
:103650009F4F821793074CF42115310531F021500B |
:1036600030403093130220931202209114023091C3 |
:1036700015028091DA04E82FFF27EE0FFF1FE855AF |
:10368000FB4F8081918182599F4F281739071CF485 |
:103690002F5F3F4F0CC08081918182599F4F8217CD |
:1036A00093074CF42115310531F02150304030930F |
:1036B0001502209314022091160230911702809176 |
:1036C000DB04E82FFF27EE0FFF1FE855FB4F80813B |
:1036D000918182599F4F281739071CF42F5F3F4F64 |
:1036E0000CC08081918182599F4F821793074CF4BF |
:1036F0002115310531F021503040309317022093CD |
:103700001602809110029091110297FF05C010924D |
:103710001102109210020AC08F3F910539F034F067 |
:103720008FEF90E09093110280931002809112022B |
:103730009091130297FF05C010921302109212028B |
:103740000AC08F3F910539F034F08FEF90E09093ED |
:10375000130280931202809114029091150297FF38 |
:1037600005C010921502109214020AC08F3F9105F5 |
:1037700039F034F08FEF90E09093150280931402AB |
:10378000809116029091170297FF05C010921702C0 |
:10379000109216020AC08F3F910539F034F08FEF76 |
:1037A00090E090931702809316021F910F91FF9063 |
:1037B000EF90DF90CF90BF90AF90089510927A0075 |
:1037C0008091B701882369F08091AB019091AC01A1 |
:1037D0006091B70177270E94162E709311056093B0 |
:1037E00010058091B801882369F08091AD01909116 |
:1037F000AE016091B80177270E94162E70930F05D5 |
:1038000060930E058091B901882369F08091AF0122 |
:103810009091B0016091B90177270E94162E7093A4 |
:103820002505609324058091BA018823D1F0609129 |
:10383000B3017091B4012091BA01882777FD80957A |
:10384000982FF4E0660F771F881F991FFA95D1F71C |
:103850003327442755270E944B2E3093220520936F |
:1038600021058091BB018823D1F06091B101709155 |
:10387000B2012091BB01882777FD8095982FE4E065 |
:10388000660F771F881F991FEA95D1F733274427C2 |
:1038900055270E944B2E30932B0520932A058091AB |
:1038A000BC01882399F06091B5017091B601209117 |
:1038B000BC01882777FD8095982F3327442755270B |
:1038C0000E944B2E30931405209313051092AC01E7 |
:1038D0001092AB011092B7011092AE011092AD019F |
:1038E0001092B8011092B0011092AF011092B9017C |
:1038F0001092B2011092B1011092BB011092B4016A |
:103900001092B3011092BA011092B6011092B50153 |
:103910001092BC018FEC80937A00209110023091BC |
:1039200011028091D804E82FFF27EE0FFF1FE85502 |
:10393000FB4F8081918182599F4F281739071CF4D2 |
:103940002F5F3F4F0CC08081918182599F4F82171A |
:1039500093074CF42115310531F02150304030935C |
:1039600011022093100220911202309113028091D3 |
:10397000D904E82FFF27EE0FFF1FE855FB4F80818A |
:10398000918182599F4F281739071CF42F5F3F4FB1 |
:103990000CC08081918182599F4F821793074CF40C |
:1039A0002115310531F0215030403093130220931E |
:1039B000120220911402309115028091DA04E82F4E |
:1039C000FF27EE0FFF1FE855FB4F80819181825941 |
:1039D0009F4F281739071CF42F5F3F4F0CC0808181 |
:1039E000918182599F4F821793074CF4211531051D |
:1039F00031F0215030403093150220931402209171 |
:103A00001602309117028091DB04E82FFF27EE0F9A |
:103A1000FF1FE855FB4F8081918182599F4F2817E6 |
:103A200039071CF42F5F3F4F0CC080819181825970 |
:103A30009F4F821793074CF42115310531F0215027 |
:103A4000304030931702209316028091100290911B |
:103A5000110297FF05C010921102109210020AC0C5 |
:103A60008F3F910539F034F08FEF90E09093110281 |
:103A700080931002809112029091130297FF05C06B |
:103A800010921302109212020AC08F3F910539F072 |
:103A900034F08FEF90E090931302809312028091A4 |
:103AA00014029091150297FF05C010921502109212 |
:103AB00014020AC08F3F910539F034F08FEF90E087 |
:103AC0009093150280931402809116029091170230 |
:103AD00097FF05C0109217021092160208958F3FAB |
:103AE000910539F034F08FEF90E0909317028093B6 |
:103AF000160208951F938091DF048B3F98F08B3F4F |
:103B000019F4809110020EC08C3F19F480911202BA |
:103B100009C08D3F19F48091140204C08E3F21F436 |
:103B2000809116028093810180918101882319F48C |
:103B30001092810104C08F3F11F480938101809124 |
:103B4000DE048B3F98F08B3F19F4809110020EC079 |
:103B50008C3F19F48091120209C08D3F19F48091B5 |
:103B6000140204C08E3F21F48091160280938001DC |
:103B700080918001882319F41092800105C0843659 |
:103B800018F084E6809380018091E0048B3F98F0E8 |
:103B90008B3F19F4809110020EC08C3F19F4809174 |
:103BA000120209C08D3F19F48091140204C08E3FA7 |
:103BB00021F48091160280938201809182018823F2 |
:103BC00019F41092820105C0843618F084E68093BF |
:103BD00082018091E2048B3F98F08B3F19F4809131 |
:103BE00010020EC08C3F19F48091120209C08D3F63 |
:103BF00019F48091140204C08E3F21F480911602C2 |
:103C00008093830180918301882319F410928301AA |
:103C100004C08F3F11F4809383018091E9048B3FAE |
:103C200098F08B3F19F4809110020EC08C3F19F46C |
:103C30008091120209C08D3F19F48091140204C0D2 |
:103C40008E3F21F48091160280938401809184013B |
:103C5000882319F41092840104C08F3F11F48093DB |
:103C600084018091EA048B3F98F08B3F19F4809196 |
:103C700010020EC08C3F19F48091120209C08D3FD2 |
:103C800019F48091140204C08E3F21F48091160231 |
:103C900080938501809185018B3010F48AE002C009 |
:103CA0008F3F11F4809385018091EB048B3F98F056 |
:103CB0008B3F19F4809110020EC08C3F19F4809153 |
:103CC000120209C08D3F19F48091140204C08E3F86 |
:103CD00021F48091160280938601809186018823C9 |
:103CE00019F41092860104C08F3F11F4809386016D |
:103CF0008091F0048B3F98F08B3F19F48091100273 |
:103D00000EC08C3F19F48091120209C08D3F19F446 |
:103D10008091140204C08E3F21F48091160280939A |
:103D2000880180918801882319F41092880104C0C9 |
:103D30008F3F11F4809388018091F1048B3F98F0BC |
:103D40008B3F19F4809110020EC08C3F19F48091C2 |
:103D5000120209C08D3F19F48091140204C08E3FF5 |
:103D600021F48091160280932402809124028823FA |
:103D700019F41092240204C08F3F11F4809324029E |
:103D80008091F2048B3F98F08B3F19F480911002E0 |
:103D90000EC08C3F19F48091120209C08D3F19F4B6 |
:103DA0008091140204C08E3F21F48091160280930A |
:103DB000250280912502882319F41092250204C05F |
:103DC0008F3F11F4809325028091F3048B3F98F08C |
:103DD0008B3F19F4809110020EC08C3F19F4809132 |
:103DE000120209C08D3F19F48091140204C08E3F65 |
:103DF00021F4809116028093260280912602882366 |
:103E000019F41092260204C08F3F11F48093260209 |
:103E10008091F4048B3F98F08B3F19F4809110024D |
:103E20000EC08C3F19F48091120209C08D3F19F425 |
:103E30008091140204C08E3F21F480911602809379 |
:103E4000270280912702882319F41092270204C0C8 |
:103E50008F3F11F4809327029091F5049B3FB0F0BF |
:103E60009B3F19F48091100204C09C3F29F480917B |
:103E70001202809389010CC09D3F19F480911402B5 |
:103E8000F8CF9E3F29F480911602F3CF90938901D9 |
:103E900080918901882319F41092890104C08F3F11 |
:103EA00011F4809389019B3FB0F09B3F19F48091FE |
:103EB000100204C09C3F29F4809112028093890172 |
:103EC0000CC09D3F19F480911402F8CF9E3F29F455 |
:103ED00080911602F3CF9093890180918901882304 |
:103EE00019F41092890104C08F3F11F48093890165 |
:103EF0009B3FB0F09B3F19F48091100204C09C3F9F |
:103F000029F480911202809389010CC09D3F19F41D |
:103F100080911402F8CF9E3F29F480911602F3CFCE |
:103F20009093890180918901882319F41092890165 |
:103F300004C08F3F11F48093890110918801612F93 |
:103F4000772767FD7095872F972F0E94212D17FFE8 |
:103F500006C020E030E040E853E40E947C2C27E1DA |
:103F600037EB41ED58E30E949B2D60937C017093E9 |
:103F70007D0180937E0190937F018091E70480937F |
:103F800023058091E604809312051F91089581E036 |
:103F90008093D40442E04093D50483E08093D60418 |
:103FA00094E09093D70435E03093D80486E0809372 |
:103FB000D90487E08093DA041092DC048EE18093C8 |
:103FC000DD048BEF8093DF048AE08093E00422E33A |
:103FD0002093DE042093E2044093E1049093E304F1 |
:103FE0001092E40490E19093E5048FE08093E6045E |
:103FF0008AEF8093E7048AE18093E8049093E904D0 |
:104000008FEA8093EA048093EB048AE58093EC04C2 |
:1040100083E28093ED0484E18093EE041092EF0438 |
:104020003093F00482EB8093F1041092F20410922A |
:10403000F3041092F40484E68093F50488E28093FC |
:10404000F6041092FA042093F70486E98093F804AA |
:104050003093F904A2E0B5E0E8E6F1E08CE00190ED |
:104060000D928150E1F7089581E08093D40452E0ED |
:104070005093D50483E08093D60444E04093D70462 |
:1040800035E03093D80486E08093D90487E08093AC |
:10409000DA0428E02093DB041092DC049EE1909384 |
:1040A000DD048BEF8093DF048AE08093E00486E4F4 |
:1040B0008093DE049093E2045093E1044093E30480 |
:1040C0002093E40490E19093E5048FE08093E6046C |
:1040D0008AEF8093E7048AE18093E8049093E904EF |
:1040E00088E78093EA0496E99093EB048AE580934D |
:1040F000EC0483E28093ED0484E18093EE0410925B |
:10410000EF043093F00482EB8093F1041092F204F8 |
:104110001092F3041092F40484E68093F50488E28C |
:104120008093F6041092FA0482E38093F70490934C |
:10413000F8043093F904A2E0B5E0E0E7F1E08CE0A8 |
:1041400001900D928150E1F7089580911F0288231C |
:1041500001F51092610210926002109264021092B6 |
:10416000650280919601882311F08093600280910E |
:104170009701882311F08093610280919801882330 |
:1041800011F08093650280919901882311F080934A |
:104190006402809160029927909373048093720463 |
:1041A00080916102992790937504809374048091A3 |
:1041B0006502992790937704809376048091640236 |
:1041C000992790937904809378041092C9011092F2 |
:1041D000CA010E9437180895CF93DF9310921A05F1 |
:1041E0001092190510921C0510921B0580E090E0BA |
:1041F000A0E0B0E080931D0590931E05A0931F05DD |
:10420000B09320051092D2011092D1011092D401E6 |
:104210001092D3011092D6011092D5010E94DE1B9C |
:1042200085E090E00E94B20BEC01CE010E94BB0B36 |
:104230008823D9F30E94DE1B8091DC0480FF10C02C |
:1042400080910A0190910B01875B934038F4809133 |
:104250000A0190910B018E5E924010F40E94F90FBA |
:10426000809110059091110597FF03C0909581955D |
:104270009F4F9093D2018093D10180910E05909130 |
:104280000F0597FF03C0909581959F4F9093D401A0 |
:104290008093D301809124059091250597FF03C059 |
:1042A000909581959F4F9093D6018093D50188E09A |
:1042B000E9E1F5E0A5E3B1E0182E0E94AB2E1092E3 |
:1042C000EB011092EC011092ED011092EE011092B0 |
:1042D000EF011092F0011092F1011092F201109290 |
:1042E000F3011092F4011092F5011092F601109270 |
:1042F000F7011092F8011092F9011092FA01109250 |
:10430000FB011092FC011092FD011092FE0110922F |
:1043100011051092100510920F0510920E051092C3 |
:104320002505109224058091060190910701A09126 |
:104330000801B09109019093800480937F0410924A |
:10434000BE011092BD01109203021092040210925D |
:104350000502109206028091070290910802909344 |
:104360000A02809309020E94442C82E390E0909319 |
:10437000A7018093A601DF91CF910895CF93DF939A |
:1043800010921A051092190510921C0510921B0527 |
:1043900080E090E0A0E0B0E080931D0590931E05C2 |
:1043A000A0931F05B09320050E94DE1B85E090E0DE |
:1043B0000E94B20BEC01CE010E94BB0B8823D9F303 |
:1043C0000E94DE1B809121059091220597FF03C07A |
:1043D000909581959F4F60E170E00E94162EC9E193 |
:1043E000D5E070931A056093190580912A05909184 |
:1043F0002B0597FF03C0909581959F4F60E170E07A |
:104400000E94162E70931C0560931B0560917D041D |
:1044100070917E04882777FD8095982F0E94212D2A |
:1044200060931D0570931E0580931F0590932005D2 |
:1044300088E0A5E3B1E0FE01182E0E94BC2EDF91BA |
:10444000CF9108951F93182F0EC080911F028823CB |
:1044500061F484E690E09093A7018093A6018AEF2F |
:1044600090E00E94CB0C115080F71F910895A6E0B8 |
:10447000B0E0EDE3F2E20C94662E0E947F19299AD7 |
:10448000E091D604FF27EE0FFF1FE855FB4F408059 |
:10449000518048E750E0440E551E57FE02C04424A8 |
:1044A000552480911802843608F048C0809101019B |
:1044B000882331F484EF91E09093A7018093A601C3 |
:1044C0008091300290913102009731F001979093E2 |
:1044D00031028093300204C010921F0210920E022B |
:1044E000289A80912B0290912C02815D974018F1BF |
:1044F0008091ED04482E552481E080930E02E091D6 |
:10450000D404FF27EE0FFF1FE855FB4F11821082E6 |
:10451000E091D504FF27EE0FFF1FE855FB4F1182F6 |
:104520001082E091D704FF27EE0FFF1FE855FB4FE5 |
:1045300011821082CBC110921F02C8C18091180253 |
:104540008D3808F4C3C110920E028091EE0422E36C |
:10455000829FC0011124909331028093300269E25E |
:10456000461651046CF080912B0290912C027FEF43 |
:104570008F3F970781F1019690932C0280932B0235 |
:1045800080912B0290912C02883C910520F088E2CA |
:104590004816510404F510924602109247021092F8 |
:1045A0004802109249021092420210924302109265 |
:1045B0004402109245021092FB011092FC011092ED |
:1045C000FD011092FE011092FF0110920002109264 |
:1045D00001021092020299EC491651040CF4D6C063 |
:1045E00080911F02882309F071C1E091D704FF2751 |
:1045F000EE0FFF1FE855FB4F808191818C349105B0 |
:104600000CF4C1C080912F028F5F80932F02893CF0 |
:1046100008F45CC129980E94EC2010921F021092AD |
:104620002F0210922C0210922B028091D404282F7A |
:104630003327F901EE0FFF1FE855FB4F8081918171 |
:10464000873491059CF4E091D504FF27EE0FFF1FFE |
:10465000E855FB4F0190F081E02DF7FF03C0F09586 |
:10466000E195FF4FE734F1050CF46CC08091D5045F |
:10467000682F7727DB01AA0FBB1FA855BB4F8D9171 |
:104680009C911197873491053CF0F901EE0FFF1FC3 |
:10469000E855FB4F808191818D919C9187349105E4 |
:1046A00064F0F901EE0FFF1FE855FB4F8081918107 |
:1046B0008734910514F042E001C041E0FB01EE0FA8 |
:1046C000FF1FE855FB4F80819181863491055CF492 |
:1046D000F901EE0FFF1FE855FB4F80819181873470 |
:1046E00091050CF043E0FB01EE0FFF1FE855FB4F77 |
:1046F000808191818A5B9F4F5CF4F901EE0FFF1F6F |
:10470000E855FB4F80819181873491050CF044E09E |
:10471000660F771F68557B4FFB01808191818A5B13 |
:104720009F4F5CF4220F331F28553B4FD9018D91C9 |
:104730009C91863491050CF445E0A2E0B0E0042E93 |
:104740000E94B02E0E94A9034AE364ED74E00E9427 |
:10475000CA030E94A9030E9422228091DC0480FFE8 |
:10476000B5C080910A0190910B01875B934040F4A2 |
:1047700080910A0190910B018E5E924008F0A6C0D4 |
:104780000E94F90FA3C010922F02A0C0F3E24F16AF |
:1047900051040CF09BC08091D704482F5527FA0193 |
:1047A000EE0FFF1FE855FB4F80819181855B9F4F86 |
:1047B0000CF06DC080912E028F5F80932E02893C99 |
:1047C00008F467C088EC80932E0281E090E090931B |
:1047D0002C0280932B0281E080931F0210923E02F4 |
:1047E00010923F0210924002109241021092FB017F |
:1047F0001092FC011092FD011092FE011092FF0137 |
:104800001092000210920102109202021092EB012B |
:104810001092EC011092ED011092EE011092F30152 |
:104820001092F4011092F5011092F6018091D701D7 |
:104830009091D801A091D901B091DA018093EF0154 |
:104840009093F001A093F101B093F2018091DF0108 |
:104850009091E001A091E101B091E2018093F70114 |
:104860009093F801A093F901B093FA0110924602D7 |
:10487000109247021092480210924902109242028E |
:1048800010924302109244021092450202C010920C |
:104890002E02440F551F48555B4FDA018D919C91B4 |
:1048A0008C3491058CF080912D028F5F80932D02C6 |
:1048B000893C60F010921F0288EC80932D021092C8 |
:1048C0002C0210922B0202C010922D0280916701DF |
:1048D000815080936701809167018F3F29F080911B |
:1048E0000E02882309F412C10E947A1DE091D404BB |
:1048F000FF27EE0FFF1FDF01A855BB4F8D919C9145 |
:104900006091E3047727E254FB4F2081318140918D |
:10491000E4045527FC01E69FC001E79F900DF69F38 |
:10492000900D1124D901A49F9001A59F300DB49F33 |
:10493000300D1124820F931F90931A028093190255 |
:10494000E091D504FF27EE0FFF1FDF01A855BB4FF5 |
:104950008D919C91E254FB4F20813181FC01E69FB7 |
:10496000C001E79F900DF69F900D1124B901649F3F |
:104970009001659F300D749F300D1124820F931F9D |
:1049800090931C0280931B02E091D704FF27EE0F47 |
:10499000FF1FE855FB4F80819181909581959F4F36 |
:1049A00090931E0280931D0210918501612F77273D |
:1049B00067FD7095872F972F0E94212D17FF06C046 |
:1049C00020E030E040E853E40E947C2C20E030E01E |
:1049D00040E251E40E947C2C20E030E040E85BE3C0 |
:1049E0000E949B2D5B016C01609326057093270547 |
:1049F000809328059093290510918601612F7727D0 |
:104A000067FD7095872F972F0E94212D17FF06C0F5 |
:104A100020E030E040E853E40E947C2C20E030EEBF |
:104A20004BE257E40E94BE2C609315057093160567 |
:104A300080931705909318058091DC0482FF0CC0C9 |
:104A400080E090E0A0E0B0E080931505909316051B |
:104A5000A0931705B093180520E030E040E050E047 |
:104A6000C601B5010E942B2D882364F480E090E0FC |
:104A7000A0E0B0E08093260590932705A093280539 |
:104A8000B093290520E030E040E050E0609115054A |
:104A90007091160580911705909118050E942B2D95 |
:104AA000882364F480E090E0A0E0B0E080931505F6 |
:104AB00090931605A0931705B093180580910E02E8 |
:104AC000882321F110921E0210921D0210921A02E8 |
:104AD0001092190210921C0210921B028DEC9CEC99 |
:104AE000ACECBDE38093260590932705A0932805A1 |
:104AF000B09329058AE097EDA3EABBE380931505FF |
:104B000090931605A0931705B09318058091BF01E7 |
:104B10009091C0018D54914008F477C0A090D701C6 |
:104B2000B090D801C090D901D090DA018091DB011A |
:104B30009091DC018A199B0990933502809334028D |
:104B40004091DF015091E0016091E1017091E2013B |
:104B50002091E3013091E401241B350B30933302A3 |
:104B6000209332021092C0011092BF01873A910542 |
:104B700034F08091D1019091D201019608C08A55FC |
:104B80009F4F4CF48091D1019091D2010197909365 |
:104B9000D2018093D101273A310534F08091D301BD |
:104BA0009091D401019608C02A553F4F4CF4809152 |
:104BB000D3019091D40101979093D4018093D301B4 |
:104BC00010927A00A092EF01B092F001C092F10130 |
:104BD000D092F2014093F7015093F8016093F901EC |
:104BE0007093FA018091E7019091E801A091E901A9 |
:104BF000B091EA018093FF0190930002A09301021B |
:104C0000B09302028FEC80937A00E090E804FF24D6 |
:104C1000002711276091D7017091D8018091D901A7 |
:104C20009091DA01A80197010E944B2E80912105F5 |
:104C300090912205AA2797FDA095BA2F281B390B22 |
:104C40004A0B5B0BCA01B90120E130E040E050E0C3 |
:104C50000E944B2E59016A0120933A0230933B0285 |
:104C600040933C0250933D026091DF017091E0015E |
:104C70008091E1019091E201A80197010E944B2EE1 |
:104C800080912A0590912B05AA2797FDA095BA2F10 |
:104C9000281B390B4A0B5B0BCA01B90120E130E03C |
:104CA00040E050E00E944B2E2093360230933702B2 |
:104CB0004093380250933902E5EFAE16E1E0BE06AC |
:104CC000E0E0CE06E0E0DE062CF084EF91E0A0E02C |
:104CD000B0E00DC0FCE0AF16FEEFBF06FFEFCF0661 |
:104CE000FFEFDF0664F48CE09EEFAFEFBFEF809341 |
:104CF0003A0290933B02A0933C02B0933D02253FC1 |
:104D000061E0360760E0460760E056072CF084EF6C |
:104D100091E0A0E0B0E009C02C503E4F4F4F5F4FF4 |
:104D200064F48CE09EEFAFEFBFEF80933602909378 |
:104D30003702A0933802B093390210927A00809122 |
:104D4000EB019091EC01A091ED01B091EE01209169 |
:104D50003A0230913B0240913C0250913D02821B4D |
:104D6000930BA40BB50B8093EB019093EC01A093F4 |
:104D7000ED01B093EE018091F3019091F401A091C7 |
:104D8000F501B091F6012091360230913702409141 |
:104D9000380250913902821B930BA40BB50B809300 |
:104DA000F3019093F401A093F501B093F601809084 |
:104DB0001D0290901E02540197FE04C0AA24BB2439 |
:104DC000A818B90885E1A816B1043CF08091DC046C |
:104DD00084FD03C081E080938A01E090E504CC2447 |
:104DE000B7FCC094DC2CB401882777FD8095982F00 |
:104DF0002E2D3327442755270E94E32D9B01AC011C |
:104E0000C601B5010E94E32D20E032E040E050E011 |
:104E10000E944B2E89019A01FF24E89CC001E99C65 |
:104E2000900DF89C900D112464E070E00E94162E05 |
:104E3000600F711F882777FD8095982F60933E0241 |
:104E400070933F0280934002909341022091FB01B6 |
:104E50003091FC014091FD015091FE01261B370B62 |
:104E6000480B590B2093FB013093FC014093FD014B |
:104E70005093FE018091FB019091FC01A091FD01F6 |
:104E8000B091FE018155934CA040B04064F080E5A4 |
:104E900093ECA0E0B0E08093FB019093FC01A09321 |
:104EA000FD01B093FE018091FB019091FC01A09166 |
:104EB000FD01B091FE01805B9C43AF4FBF4F64F496 |
:104EC00080EB9CE3AFEFBFEF8093FB019093FC017D |
:104ED000A093FD01B093FE018FEC80937A00809146 |
:104EE000DC0483FFA7C080910D02815080930D02E6 |
:104EF0008F3FD9F40E94AF14909308028093070269 |
:104F00002091090230910A02821B930B845E9D4F0F |
:104F100068E671E00E94162E845B904090930C022C |
:104F200080930B0282E380930D026091D701709110 |
:104F3000D8018091D9019091DA0120E032E040E07F |
:104F400050E00E944B2E890137FF03C01095019558 |
:104F50001F4F6091DF017091E0018091E10190911C |
:104F6000E20120E032E040E050E00E944B2EB90127 |
:104F700037FF03C0709561957F4F601771070CF480 |
:104F8000B8016332710574F480918A01882351F06D |
:104F9000809107029091080290930A02809309027F |
:104FA00010928A01209184013327629FC001639F80 |
:104FB000900D729F900D112460E470E00E94162EF7 |
:104FC000A901461B570B1416150674F510927A00AA |
:104FD0000091FB011091FC012091FD013091FE0137 |
:104FE00080910B0290910C02BC01469FC001479F2B |
:104FF000900D569F900D112460E270E00E94162ED5 |
:10500000882777FD8095982F060F171F281F391FB7 |
:105010000093FB011093FC012093FD013093FE01EE |
:105020008FEC80937A0006C084E690E09093A7010D |
:105030008093A601809159048F5F809359048091D9 |
:1050400028028150809328028F3F09F066C081E3D7 |
:1050500080932802E090E804FF2400271127609144 |
:10506000D7017091D8018091D9019091DA01A801FE |
:1050700097010E944B2E30935B0420935A04609159 |
:10508000DF017091E0018091E1019091E201A801BE |
:1050900097010E944B2E30935D0420935C04809115 |
:1050A00021059091220590935F0480935E04809186 |
:1050B0002A0590912B059093610480936004809160 |
:1050C0002405909125059093630480936204809158 |
:1050D0002002909121029093650480936404609172 |
:1050E000030270910402809105029091060220E073 |
:1050F00032E040E050E00E944B2E30936704209352 |
:10510000660450926904409268048091070290916D |
:10511000080290936B0480936A0460901505709068 |
:1051200016058090170590901805A0902605B09060 |
:105130002705C0902805D09029056091D70170916E |
:10514000D8018091D9019091DA010E94212DA4010A |
:1051500093010E949B2D7B018C0160911005709141 |
:105160001105882777FD8095982F0E94212DA60193 |
:1051700095010E949B2D9B01AC01C801B7010E94C3 |
:105180007C2C0E94042D1B01709311056093100567 |
:105190006091DF017091E0018091E1019091E20165 |
:1051A0000E94212DA40193010E949B2D7B018C0163 |
:1051B00060910E0570910F05882777FD8095982FD7 |
:1051C0000E94212DA60195010E949B2D9B01AC01FF |
:1051D000C801B7010E947C2C0E94042D7E836D8340 |
:1051E00070930F0560930E0560912405709125055D |
:1051F000882777FD8095982F0E94212D7B018C01B7 |
:1052000020E030E040E05FE3C601B5010E949B2D45 |
:105210009B01AC01C801B7010E949B2D7B018C0151 |
:105220006091E7017091E8018091E9019091EA01B4 |
:105230000E94212DA40193010E949B2D9B01AC0192 |
:10524000C801B7010E947C2C0E94042D9B01709321 |
:1052500025056093240571E0271678E037061CF0D9 |
:1052600080E098E007C080E0281688EF380634F424 |
:1052700080E098EF9093110580931005AD81BE8179 |
:10528000A150B8401CF080E098E007C04D815E81DD |
:105290004050584F34F480E098EF90930F0580937E |
:1052A0000E0578E0213037071CF080E098E005C05B |
:1052B0002050384F34F480E098EF90932505809388 |
:1052C00024058091DC04992780FFBEC020918101D4 |
:1052D00081FF0EC02233B0F4809120029091210210 |
:1052E0004497909323028093220210920F020DC0E4 |
:1052F0008091E104289FC0011124449790932302D8 |
:105300008093220281E080930F0280910E02882315 |
:1053100021F010922302109222022091200230915B |
:1053200021024091220250912302421753070CF0B0 |
:105330008BC080910F02882309F486C0241B350B93 |
:10534000809182019927DC012A9FC0012B9F900D3B |
:105350003A9F900D112460E170E00E94162E8201A8 |
:10536000061B170B2091BD013091BE018091800179 |
:105370009927FC012E9FC0012F9F900D3E9F900DFD |
:10538000112468E070E00E94162E061B170B609136 |
:10539000030270910402809105029091060220E0C0 |
:1053A00032E040E050E00E944B2ECA01B90120914A |
:1053B00083013327442755270E94E32D20E230E064 |
:1053C00040E050E00E944B2EFFEF2E3C3F0714F4CC |
:1053D0002EEC3FEF8091290290912A02AC0164E00B |
:1053E000440F551F6A95E1F7481B590B23333105CC |
:1053F00014F022E330E0021B130BCA01800F911F4F |
:1054000060E170E00E94162E70932A0260932902D8 |
:105410008091DD049927681779073CF448165906EE |
:105420005CF090932A028093290280912902909146 |
:105430002A024816590624F450922A024092290260 |
:105440004090290250902A02C0902405D090250552 |
:1054500080913E0290913F02C81AD90A25E6C216F1 |
:10546000D10424F014E6C12ED12C09C04CE9C41695 |
:105470004FEFD40624F4BCE9CB2EBFEFDB2E6091B6 |
:1054800078017091790180917A0190917B01698313 |
:105490007A838B839C832091190230911A02809128 |
:1054A0004A0290914B02281B390B609110057091B4 |
:1054B0001105621B730B882777FD8095982F0E943A |
:1054C000212D9B01AC0169817A818B819C810E9495 |
:1054D0009B2D0E94042DFB01709363026093620276 |
:1054E0008B01222717FD2095322F80914602909143 |
:1054F0004702A0914802B0914902080F191F2A1FC4 |
:105500003B1F0093460210934702209348023093BA |
:1055100049021016110612061306ACF4C80117FF53 |
:1055200003C0909581959F4F60E071E00E94162E18 |
:105530006F5F7F4F882777FD8095982F061B170B8D |
:10554000280B390B14C0C80117FF03C09095819533 |
:105550009F4F60E071E00E94162E6F5F7F4F88279B |
:1055600077FD8095982F060F171F281F391F00936E |
:1055700046021093470220934802309349028091DB |
:10558000460290914702A0914802B09149028138A9 |
:105590007EE3970770E0A70770E0B7072CF080E87C |
:1055A0009EE3A0E0B0E009C08058914CAF4FBF4FE0 |
:1055B00064F480E891ECAFEFBFEF809346029093E4 |
:1055C0004702A0934802B093490280907C019090DA |
:1055D0007D01A0907E01B0907F01BF01882777FDFB |
:1055E0008095982F0E94212D7B018C0160914602AD |
:1055F0007091470280914802909149020E94212DAA |
:105600009B01AC01C501B4010E949B2D9B01AC0123 |
:10561000C801B7010E947C2C0E94042D9601260F20 |
:10562000371F240D351D66244AE04416510414F436 |
:10563000A1E06A2E37FD02C0662019F040E050E07C |
:1056400008C080912305482F5527241735070CF4EF |
:10565000A90180911205282E3324910124163506C4 |
:105660000CF49A0120936002C201861B970BBC01C7 |
:105670006C0D7D1D77FD02C0662019F080E090E082 |
:1056800007C0809123059927681779070CF4CB018F |
:105690009101281639060CF49C0120936102209197 |
:1056A0001B0230911C0280914C0290914D02281BEC |
:1056B000390B60910E0570910F05621B730B8827E3 |
:1056C00077FD8095982F0E94212D9B01AC01698167 |
:1056D0007A818B819C810E949B2D0E94042DFB016D |
:1056E00070935F0260935E028B01222717FD209565 |
:1056F000322F8091420290914302A0914402B091D6 |
:105700004502080F191F2A1F3B1F009342021093E6 |
:1057100043022093440230934502101611061206EC |
:105720001306ACF4C80117FF03C0909581959F4FF5 |
:1057300060E071E00E94162E6F5F7F4F882777FD33 |
:105740008095982F061B170B280B390B14C0C80126 |
:1057500017FF03C0909581959F4F60E071E00E9414 |
:10576000162E6F5F7F4F882777FD8095982F060F45 |
:10577000171F281F391F00934202109343022093E2 |
:105780004402309345028091420290914302A091DD |
:105790004402B091450281382EE3920720E0A2072F |
:1057A00020E0B2072CF080E89EE3A0E0B0E009C062 |
:1057B0008058914CAF4FBF4F64F480E891ECAFEF4D |
:1057C000BFEF8093420290934302A0934402B093B0 |
:1057D0004502BF01882777FD8095982F0E94212DD3 |
:1057E0007B018C01609142027091430280914402DE |
:1057F000909145020E94212D9B01AC01C501B4018D |
:105800000E949B2D9B01AC01C801B7010E947C2C1A |
:105810000E94042D9201260F371F2C193D0937FDD8 |
:1058200002C0662019F040E050E008C080912305D6 |
:10583000482F5527241735070CF4A9019101241688 |
:1058400035060CF49A0120936502461A570AB201F4 |
:105850006C197D0977FD02C0662019F020E030E068 |
:1058600008C080912305282F3327621773070CF493 |
:105870009B01C101221633060CF4C9018093640216 |
:10588000E2E1CA5F0C94822E80914E0290914F0209 |
:10589000A0915002B091510280935602909357020A |
:1058A000A0935802B09359028091520290915302F2 |
:1058B000A0915402B091550280935A0290935B02DA |
:1058C000A0935C02B0935D02089510924B02109277 |
:1058D0004A0210924D0210924C020895FC01415070 |
:1058E000504030F001900616D1F73197CF0108955E |
:1058F0008827992708955058192EEFD001D0D2C08B |
:10590000BA176207730784079507B1F188F40EF49C |
:1059100010940B2EBA2FA02D062E622F202D072EAD |
:10592000732F302D082E842F402D092E952F502DAA |
:10593000FF275523B9F0591B49F0573E98F046957B |
:1059400037952795A795F0405395C9F776F0BA0F8C |
:10595000621F731F841F30F4879577956795B795FD |
:10596000F040939517FA0F2E0895BF1BBB27BA0B73 |
:10597000620B730B840BF6CFDEF6DBC0AED001D02A |
:1059800091C0552359F0992369F09F575F57951B94 |
:1059900033F442F4903811F4915805C09BC09158EB |
:1059A0009F3F09F4C6C0BB27112462177307840701 |
:1059B00030F4660F771F881FBB1F915098F311D0EA |
:1059C0000F920FD00F920DD0A0E826173707480787 |
:1059D0001B0609F0A048BA2F602D7F918F910024FB |
:1059E0000895A0E80024621773078407B10528F022 |
:1059F000621B730B840BB1090A2A660F771F881F7D |
:105A0000BB1FA69581F7089597FB73D09F3738F099 |
:105A1000FEE9F91B982F872F762F6B2F05C086C0C4 |
:105A20009695879577956795F150D0F73EF49095C8 |
:105A30008095709561957F4F8F4F9F4F0895E894A3 |
:105A400003C097FB0EF4F3DFB62F672F782F892F53 |
:105A50009EE9002427C00ED05EF004C00BD026F0D3 |
:105A600001C008D019F020F48FEF089580E0089568 |
:105A700081E0089597FB092E052600F8689430D040 |
:105A8000E89407FC07C0621773078407950721F0A5 |
:105A900008F400940794989408959A95BB0F661F94 |
:105AA000771F881F11249923A1F08823B2F79F3F05 |
:105AB00059F0BB0F48F421F4002011F460FF04C03A |
:105AC0006F5F7F4F8F4F9F4F881F9795879597F9EF |
:105AD00008952CC09FEF80EC0895052E092607FA43 |
:105AE000440F551F5F3F79F0AA27A51708F051E032 |
:105AF0004795880F991F9F3F31F0BB27B91708F0D2 |
:105B000091E0879508959F919F911124E3CF97FB92 |
:105B1000880F991F9F3F31F0BB27B91708F091E01C |
:105B2000879508959F919F911124D4CF6627772759 |
:105B3000882799270895D1DF01D0B4CF992339F070 |
:105B4000552329F09F575F57950F13F49AF1F1CF22 |
:105B500091589F3FE1F3629FA12D0F92BB27639F56 |
:105B6000A00DB11DEE27729FA00DB11DEE1FAF93CA |
:105B7000AA27649FB00DE11D739FB00DE11DAA1F00 |
:105B80006627829FB00DE11DA61F5527749FE00D6B |
:105B9000A11D551F839FE00DA11D561F849FA00DC1 |
:105BA000511D852F7A2F6E2F1F900F9088231AF486 |
:105BB000939539F48FCF000C111CBB1F661F771F04 |
:105BC000881F01280895629FD001739FF001829F72 |
:105BD000E00DF11D649FE00DF11D929FF00D839F7C |
:105BE000F00D749FF00D659FF00D9927729FB00D19 |
:105BF000E11DF91F639FB00DE11DF91FBD01CF012C |
:105C000011240895AA1BBB1B51E107C0AA1FBB1F8B |
:105C1000A617B70710F0A61BB70B881F991F5A9538 |
:105C2000A9F780959095BC01CD01089597FB092EA9 |
:105C300007260AD077FD04D0E5DF06D000201AF44D |
:105C4000709561957F4F0895F6F7909581959F4FD8 |
:105C50000895A1E21A2EAA1BBB1BFD010DC0AA1FAD |
:105C6000BB1FEE1FFF1FA217B307E407F50720F0C5 |
:105C7000A21BB30BE40BF50B661F771F881F991F40 |
:105C80001A9469F760957095809590959B01AC0189 |
:105C9000BD01CF01089597FB092E05260ED057FDB3 |
:105CA00004D0D7DF0AD0001C38F4509540953095C9 |
:105CB00021953F4F4F4F5F4F0895F6F79095809590 |
:105CC000709561957F4F8F4F9F4F08952F923F9210 |
:105CD0004F925F926F927F928F929F92AF92BF92FC |
:105CE000CF92DF92EF92FF920F931F93CF93DF93A8 |
:105CF000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE05 |
:105D0000CDBF09942A88398848885F846E847D8451 |
:105D10008C849B84AA84B984C884DF80EE80FD8053 |
:105D20000C811B81AA81B981CE0FD11D0FB6F894C9 |
:105D3000DEBF0FBECDBFED010895EE0FFF1F059032 |
:105D4000F491E02D0994F999FECFB2BDA1BDF89A66 |
:105D5000119600B40895F7DF01921A94E1F70895BF |
:105D6000F999FECFB2BDA1BD00BC11960FB6F89453 |
:105D7000FA9AF99A0FBE08950190F2DF1A94E1F7AA |
:045D80000895FFCFB4 |
:105D840001640A016400007D0000FF0301020304B2 |
:105D940005060708090A48616C6C6F2057656C7426 |
:105DA40000000000000000000000000000000000EF |
:105DB40000000000000000000000000000000000DF |
:105DC40000000000000000000000000000000000CF |
:105DD40000000000000000000000000000000000BF |
:105DE4000000000000000C014B616D657261000051 |
:105DF4004E6F726D616C00000000803F17B7D138A0 |
:0C5E040030FB103A403296020A640100A4 |
:00000001FF |
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.lss |
---|
0,0 → 1,9337 |
Flight-Ctrl_MEGA644_V0_60_MM3.elf: file format elf32-avr |
Sections: |
Idx Name Size VMA LMA File off Algn |
0 .data 0000008c 00800100 00005d84 00005e38 2**0 |
CONTENTS, ALLOC, LOAD, DATA |
1 .text 00005d84 00000000 00000000 000000b4 2**1 |
CONTENTS, ALLOC, LOAD, READONLY, CODE |
2 .bss 000003a0 0080018c 0080018c 00005ec4 2**0 |
ALLOC |
3 .eeprom 0000013d 00810000 00810000 00005ec4 2**0 |
CONTENTS, ALLOC, LOAD, DATA |
4 .stab 00000378 00000000 00000000 00006004 2**2 |
CONTENTS, READONLY, DEBUGGING |
5 .stabstr 00000071 00000000 00000000 0000637c 2**0 |
CONTENTS, READONLY, DEBUGGING |
Disassembly of section .text: |
00000000 <__vectors>: |
0: 0c 94 8a 03 jmp 0x714 ; 0x714 <__ctors_end> |
4: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
8: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
10: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
14: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
18: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
1c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
20: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
24: 0c 94 c7 0b jmp 0x178e ; 0x178e <__vector_9> |
28: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
2c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
30: 0c 94 e0 18 jmp 0x31c0 ; 0x31c0 <__vector_12> |
34: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
38: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
3c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
40: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
44: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
48: 0c 94 6a 0c jmp 0x18d4 ; 0x18d4 <__vector_18> |
4c: 0c 94 61 14 jmp 0x28c2 ; 0x28c2 <__vector_19> |
50: 0c 94 cc 05 jmp 0xb98 ; 0xb98 <__vector_20> |
54: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
58: 0c 94 96 05 jmp 0xb2c ; 0xb2c <__vector_22> |
5c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
60: 0c 94 e3 0c jmp 0x19c6 ; 0x19c6 <__vector_24> |
64: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
68: 0c 94 4d 18 jmp 0x309a ; 0x309a <__vector_26> |
6c: 0c 94 a7 03 jmp 0x74e ; 0x74e <__bad_interrupt> |
70: 43 08 sbc r4, r3 |
72: bd 08 sbc r11, r13 |
74: bd 08 sbc r11, r13 |
76: bd 08 sbc r11, r13 |
78: 75 08 sbc r7, r5 |
7a: 56 08 sbc r5, r6 |
7c: bd 08 sbc r11, r13 |
7e: bd 08 sbc r11, r13 |
80: bd 08 sbc r11, r13 |
82: a1 08 sbc r10, r1 |
84: a1 08 sbc r10, r1 |
86: a1 08 sbc r10, r1 |
88: a1 08 sbc r10, r1 |
8a: a1 08 sbc r10, r1 |
8c: 79 08 sbc r7, r9 |
8e: bd 08 sbc r11, r13 |
90: bd 08 sbc r11, r13 |
92: 68 08 sbc r6, r8 |
94: bd 08 sbc r11, r13 |
96: 71 08 sbc r7, r1 |
98: 0c 0d add r16, r12 |
9a: 5e 0d add r21, r14 |
9c: b7 0d add r27, r7 |
9e: 12 0e add r1, r18 |
a0: 2f 0e add r2, r31 |
a2: 52 0e add r5, r18 |
a4: 78 0e add r7, r24 |
a6: 5f 0f add r21, r31 |
a8: 9e 10 cpse r9, r14 |
aa: d2 10 cpse r13, r2 |
ac: 33 11 cpse r19, r3 |
ae: 89 11 cpse r24, r9 |
b0: d7 11 cpse r29, r7 |
b2: 50 12 cpse r5, r16 |
b4: aa 12 cpse r10, r26 |
b6: 0b 13 cpse r16, r27 |
b8: 2f 13 cpse r18, r31 |
ba: 65 13 cpse r22, r21 |
bc: a1 13 cpse r26, r17 |
be: df 13 cpse r29, r31 |
c0: 18 14 cp r1, r8 |
000000c2 <__c.2026>: |
c2: 0a 0a 0d 00 .... |
000000c6 <__c.2024>: |
c6: 4e 65 75 74 72 61 6c 00 Neutral. |
000000ce <__c.2022>: |
ce: 48 65 61 64 69 6e 67 48 6f 6c 64 00 HeadingHold. |
000000da <__c.2020>: |
da: 0a 0d 53 74 65 75 65 72 75 6e 67 3a 20 00 ..Steuerung: . |
000000e8 <__c.2018>: |
e8: 4f 4b 0a 0d 00 OK... |
000000ed <__c.2013>: |
ed: 0a 0d 41 62 67 6c 65 69 63 68 20 4c 75 66 74 64 ..Abgleich Luftd |
fd: 72 75 63 6b 73 65 6e 73 6f 72 2e 2e 00 rucksensor... |
0000010a <__c.2011>: |
10a: 0a 0d 4b 61 6c 69 62 72 69 65 72 65 20 4e 65 75 ..Kalibriere Neu |
11a: 74 72 61 6c 6c 61 67 65 00 trallage. |
00000123 <__c.2009>: |
123: 0a 0d 4b 61 6c 69 62 72 69 65 72 65 20 4b 6f 6d ..Kalibriere Kom |
133: 70 61 73 73 00 pass. |
00000138 <__c.2004>: |
138: 0a 0d 42 65 6e 75 74 7a 65 20 50 61 72 61 6d 65 ..Benutze Parame |
148: 74 65 72 73 61 74 7a 20 25 64 00 tersatz %d. |
00000153 <__c.1998>: |
153: 0a 0d 49 6e 69 74 2e 20 45 45 50 52 4f 4d 3a 20 ..Init. EEPROM: |
163: 47 65 6e 65 72 69 65 72 65 20 44 65 66 61 75 6c Generiere Defaul |
173: 74 2d 50 61 72 61 6d 65 74 65 72 2e 2e 2e 00 t-Parameter.... |
00000182 <__c.1996>: |
182: 0a 0d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..============== |
192: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================ |
... |
000001a3 <__c.1994>: |
1a3: 0a 0d 46 6c 69 67 68 74 43 6f 6e 74 72 6f 6c 20 ..FlightControl |
1b3: 56 25 64 2e 25 64 20 00 V%d.%d . |
000001bb <__c.1996>: |
1bb: 2e 00 .. |
000001bd <__c.2096>: |
1bd: 5a 5f 52 61 6e 67 65 3a 20 20 25 34 69 00 Z_Range: %4i. |
000001cb <__c.2094>: |
1cb: 59 5f 52 61 6e 67 65 3a 20 20 25 34 69 00 Y_Range: %4i. |
000001d9 <__c.2092>: |
1d9: 58 5f 52 61 6e 67 65 3a 20 20 25 34 69 00 X_Range: %4i. |
000001e7 <__c.2090>: |
1e7: 4d 4d 33 20 52 61 6e 67 65 00 MM3 Range. |
000001f1 <__c.2087>: |
1f1: 5a 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 Z_Offset: %3i. |
00000200 <__c.2085>: |
200: 59 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 Y_Offset: %3i. |
0000020f <__c.2083>: |
20f: 58 5f 4f 66 66 73 65 74 3a 20 20 25 33 69 00 X_Offset: %3i. |
0000021e <__c.2081>: |
21e: 4d 4d 33 20 4f 66 66 00 MM3 Off. |
00000226 <__c.2078>: |
226: 52 61 6e 67 65 3a 25 33 69 2d 25 33 69 00 Range:%3i-%3i. |
00000234 <__c.2076>: |
234: 53 74 65 6c 6c 75 6e 67 3a 20 25 33 69 00 Stellung: %3i. |
00000242 <__c.2074>: |
242: 53 65 74 70 6f 69 6e 74 20 20 25 33 69 00 Setpoint %3i. |
00000250 <__c.2072>: |
250: 53 65 72 76 6f 20 20 00 Servo . |
00000258 <__c.2069>: |
258: 50 6f 74 69 34 3a 20 20 25 33 69 00 Poti4: %3i. |
00000264 <__c.2067>: |
264: 50 6f 74 69 33 3a 20 20 25 33 69 00 Poti3: %3i. |
00000270 <__c.2065>: |
270: 50 6f 74 69 32 3a 20 20 25 33 69 00 Poti2: %3i. |
0000027c <__c.2063>: |
27c: 50 6f 74 69 31 3a 20 20 25 33 69 00 Poti1: %3i. |
00000288 <__c.2060>: |
288: 53 74 61 72 74 3a 20 20 20 20 20 25 35 69 00 Start: %5i. |
00000297 <__c.2058>: |
297: 4d 65 73 73 77 65 72 74 3a 20 20 25 35 69 00 Messwert: %5i. |
000002a6 <__c.2056>: |
2a6: 52 69 63 68 74 75 6e 67 3a 20 20 25 35 69 00 Richtung: %5i. |
000002b5 <__c.2054>: |
2b5: 4b 6f 6d 70 61 73 73 20 20 20 20 20 20 20 00 Kompass . |
000002c4 <__c.2051>: |
2c4: 45 6d 70 66 2e 50 65 67 65 6c 3a 25 35 69 00 Empf.Pegel:%5i. |
000002d3 <__c.2049>: |
2d3: 53 70 61 6e 6e 75 6e 67 3a 20 20 25 35 69 00 Spannung: %5i. |
000002e2 <__c.2046>: |
2e2: 48 6f 63 68 20 25 34 69 20 28 25 33 69 29 00 Hoch %4i (%3i). |
000002f1 <__c.2044>: |
2f1: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i). |
00000300 <__c.2042>: |
300: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i). |
0000030f <__c.2040>: |
30f: 41 43 43 20 2d 20 53 65 6e 73 6f 72 00 ACC - Sensor. |
0000031c <__c.2037>: |
31c: 47 69 65 72 20 25 34 69 20 28 25 33 69 29 00 Gier %4i (%3i). |
0000032b <__c.2035>: |
32b: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i). |
0000033a <__c.2033>: |
33a: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i). |
00000349 <__c.2031>: |
349: 47 79 72 6f 20 2d 20 53 65 6e 73 6f 72 00 Gyro - Sensor. |
00000357 <__c.2028>: |
357: 50 33 3a 25 34 69 20 20 4b 61 6e e4 6c 65 20 00 P3:%4i Kan.le . |
00000367 <__c.2026>: |
367: 50 31 3a 25 34 69 20 20 50 32 3a 25 34 69 20 00 P1:%4i P2:%4i . |
00000377 <__c.2024>: |
377: 47 73 3a 25 34 69 20 20 47 69 3a 25 34 69 20 00 Gs:%4i Gi:%4i . |
00000387 <__c.2022>: |
387: 4e 69 3a 25 34 69 20 20 52 6f 3a 25 34 69 20 00 Ni:%4i Ro:%4i . |
00000397 <__c.2019>: |
397: 4b 37 3a 25 34 69 20 20 4b 61 6e e4 6c 65 20 00 K7:%4i Kan.le . |
000003a7 <__c.2017>: |
3a7: 4b 35 3a 25 34 69 20 20 4b 36 3a 25 34 69 20 00 K5:%4i K6:%4i . |
000003b7 <__c.2015>: |
3b7: 4b 33 3a 25 34 69 20 20 4b 34 3a 25 34 69 20 00 K3:%4i K4:%4i . |
000003c7 <__c.2013>: |
3c7: 4b 31 3a 25 34 69 20 20 4b 32 3a 25 34 69 20 00 K1:%4i K2:%4i . |
000003d7 <__c.2010>: |
3d7: 4b 6f 6d 70 61 73 73 3a 20 20 20 25 35 69 00 Kompass: %5i. |
000003e6 <__c.2008>: |
3e6: 52 6f 6c 6c 3a 20 20 20 20 20 20 25 35 69 00 Roll: %5i. |
000003f5 <__c.2006>: |
3f5: 4e 69 63 6b 3a 20 20 20 20 20 20 25 35 69 00 Nick: %5i. |
00000404 <__c.2004>: |
404: 61 6b 74 2e 20 4c 61 67 65 00 akt. Lage. |
0000040e <__c.2001>: |
40e: 48 f6 68 65 6e 72 65 67 65 6c 75 6e 67 00 H.henregelung. |
0000041c <__c.1999>: |
41c: 4b 65 69 6e 65 20 00 Keine . |
00000423 <__c.1997>: |
423: 4f 66 66 20 20 20 20 20 20 3a 20 25 35 69 00 Off : %5i. |
00000432 <__c.1995>: |
432: 4c 75 66 74 64 72 75 63 6b 3a 20 25 35 69 00 Luftdruck: %5i. |
00000441 <__c.1993>: |
441: 53 6f 6c 6c 48 6f 65 68 65 3a 20 25 35 69 00 SollHoehe: %5i. |
00000450 <__c.1991>: |
450: 48 6f 65 68 65 3a 20 20 20 20 20 25 35 69 00 Hoehe: %5i. |
0000045f <__c.1987>: |
45f: 28 63 29 20 48 6f 6c 67 65 72 20 42 75 73 73 00 (c) Holger Buss. |
0000046f <__c.1985>: |
46f: 53 65 74 74 69 6e 67 3a 20 25 64 20 00 Setting: %d . |
0000047c <__c.1983>: |
47c: 56 25 64 2e 25 64 00 V%d.%d. |
00000483 <__c.1981>: |
483: 2b 2b 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 2b ++ MikroKopter + |
493: 2b 00 +. |
00000495 <__c.1978>: |
495: 5b 25 69 5d 00 [%i]. |
0000049a <pgm_atan>: |
49a: 00 01 02 03 05 06 07 08 09 0a 0b 0c 0d 0f 10 11 ................ |
4aa: 12 13 14 15 16 17 18 19 1a 1b 1b 1c 1d 1e 1f 20 ............... |
4ba: 21 21 22 23 24 25 25 26 27 27 28 29 29 2a 2b 2b !!"#$%%&''())*++ |
4ca: 2c 2c 2d 2e 2e 2f 2f 30 30 31 31 32 32 33 33 34 ,,-..//001122334 |
4da: 34 34 35 35 36 36 36 37 37 38 38 38 39 39 39 3a 445566677888999: |
4ea: 3a 3a 3b 3b 3b 3c 3c 3c 3c 3d 3d 3d 3d 3e 3e 3e ::;;;<<<<====>>> |
4fa: 3e 3f 3f 3f 3f 40 40 40 40 41 41 41 41 41 42 42 >????@@@@AAAAABB |
50a: 42 42 42 43 43 43 43 43 43 44 44 44 44 44 44 45 BBBCCCCCCDDDDDDE |
51a: 45 45 45 45 45 45 46 46 46 46 46 46 46 46 47 47 EEEEEEFFFFFFFFGG |
52a: 47 47 47 47 47 47 48 48 48 48 48 48 48 48 48 49 GGGGGGHHHHHHHHHI |
53a: 49 49 49 49 49 49 49 49 49 4a 4a 4a 4a 4a 4a 4a IIIIIIIIIJJJJJJJ |
54a: 4a 4a 4a 4a 4a 4b 4b 4b 4b 4b 4b 4b 4b 4b 4b 4b JJJJJKKKKKKKKKKK |
55a: 4b 4b 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c 4c KKLLLLLLLLLLLLLL |
56a: 4c 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d LMMMMMMMMMMMMMMM |
57a: 4d 4d 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e MMNNNNNNNNNNNNNN |
58a: 4e 4e 4e 4e 4e 4e 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f NNNNNNOOOOOOOOOO |
59a: 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f 4f OOOOOOOOOOOOOO |
000005a8 <pgm_sinus_f>: |
5a8: 00 00 00 00 56 f8 8e 3c c7 f2 0e 3d 46 5e 56 3d ....V..<...=F^V= |
5b8: 7f dc 8e 3d b0 7e b2 3d 0a 13 d6 3d 9d 96 f9 3d ...=.~.=...=...= |
5c8: 65 83 0e 3e 5e 30 20 3e d5 d0 31 3e 6f 63 43 3e e..>^0 >..1>ocC> |
5d8: ce e6 54 3e 8e 59 66 3e 60 ba 77 3e ed 83 84 3e ..T>.Yf>`.w>...> |
5e8: 55 20 8d 3e be b1 95 3e 7a 37 9e 3e dd b0 a6 3e U .>...>z7.>...> |
5f8: 42 1d af 3e ff 7b b7 3e 70 cc bf 3e e8 0d c8 3e B..>.{.>p..>...> |
608: c8 3f d0 3e 6a 61 d8 3e 2d 72 e0 3e 71 71 e8 3e .?.>ja.>-r.>qq.> |
618: 92 5e f0 3e f7 38 f8 3e 00 00 00 3f 89 d9 03 3f .^.>.8.>...?...? |
628: cb a8 07 3f 76 6d 0b 3f 44 27 0f 3f e7 d5 12 3f ...?vm.?D'.?...? |
638: 17 79 16 3f 8c 10 1a 3f fe 9b 1d 3f 24 1b 21 3f .y.?...?...?$.!? |
648: ba 8d 24 3f 7c f3 27 3f 25 4c 2b 3f 71 97 2e 3f ..$?|.'?%L+?q..? |
658: 22 d5 31 3f f4 04 35 3f a7 26 38 3f ff 39 3b 3f ".1?..5?.&8?.9;? |
668: bd 3e 3e 3f a6 34 41 3f 7c 1b 44 3f 09 f3 46 3f .>>?.4A?|.D?..F? |
678: 12 bb 49 3f 60 73 4c 3f bd 1b 4f 3f f2 b3 51 3f ..I?`sL?..O?..Q? |
688: cf 3b 54 3f 1e b3 56 3f ae 19 59 3f 51 6f 5b 3f .;T?..V?..Y?Qo[? |
698: d7 b3 5d 3f 14 e7 5f 3f db 08 62 3f 01 19 64 3f ..]?.._?..b?..d? |
6a8: 5d 17 66 3f ca 03 68 3f 1d de 69 3f 34 a6 6b 3f ].f?..h?..i?4.k? |
6b8: eb 5b 6d 3f 20 ff 6e 3f b2 8f 70 3f 82 0d 72 3f .[m? .n?..p?..r? |
6c8: 70 78 73 3f 63 d0 74 3f 3f 15 76 3f ea 46 77 3f pxs?c.t??.v?.Fw? |
6d8: 4d 65 78 3f 52 70 79 3f e2 67 7a 3f ec 4b 7b 3f Mex?Rpy?.gz?.K{? |
6e8: 5c 1c 7c 3f 24 d9 7c 3f 36 82 7d 3f 80 17 7e 3f \.|?$.|?6.}?..~? |
6f8: fd 98 7e 3f 9e 06 7f 3f 5b 60 7f 3f 2f a6 7f 3f ..~?...?[`.?/..? |
708: 13 d8 7f 3f 05 f6 7f 3f 00 00 80 3f ...?...?...? |
00000714 <__ctors_end>: |
714: 11 24 eor r1, r1 |
716: 1f be out 0x3f, r1 ; 63 |
718: cf ef ldi r28, 0xFF ; 255 |
71a: d0 e1 ldi r29, 0x10 ; 16 |
71c: de bf out 0x3e, r29 ; 62 |
71e: cd bf out 0x3d, r28 ; 61 |
00000720 <__do_copy_data>: |
720: 11 e0 ldi r17, 0x01 ; 1 |
722: a0 e0 ldi r26, 0x00 ; 0 |
724: b1 e0 ldi r27, 0x01 ; 1 |
726: e4 e8 ldi r30, 0x84 ; 132 |
728: fd e5 ldi r31, 0x5D ; 93 |
72a: 02 c0 rjmp .+4 ; 0x730 <.do_copy_data_start> |
0000072c <.do_copy_data_loop>: |
72c: 05 90 lpm r0, Z+ |
72e: 0d 92 st X+, r0 |
00000730 <.do_copy_data_start>: |
730: ac 38 cpi r26, 0x8C ; 140 |
732: b1 07 cpc r27, r17 |
734: d9 f7 brne .-10 ; 0x72c <.do_copy_data_loop> |
00000736 <__do_clear_bss>: |
736: 15 e0 ldi r17, 0x05 ; 5 |
738: ac e8 ldi r26, 0x8C ; 140 |
73a: b1 e0 ldi r27, 0x01 ; 1 |
73c: 01 c0 rjmp .+2 ; 0x740 <.do_clear_bss_start> |
0000073e <.do_clear_bss_loop>: |
73e: 1d 92 st X+, r1 |
00000740 <.do_clear_bss_start>: |
740: ac 32 cpi r26, 0x2C ; 44 |
742: b1 07 cpc r27, r17 |
744: e1 f7 brne .-8 ; 0x73e <.do_clear_bss_loop> |
746: 0e 94 df 03 call 0x7be ; 0x7be <main> |
74a: 0c 94 c1 2e jmp 0x5d82 ; 0x5d82 <_exit> |
0000074e <__bad_interrupt>: |
74e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> |
00000752 <GetActiveParamSetNumber>: |
752: a2 e0 ldi r26, 0x02 ; 2 |
754: b0 e0 ldi r27, 0x00 ; 0 |
756: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
75a: 80 2d mov r24, r0 |
75c: 99 27 eor r25, r25 |
75e: 08 95 ret |
00000760 <WriteParameterSet>: |
760: fb 01 movw r30, r22 |
762: 86 30 cpi r24, 0x06 ; 6 |
764: 08 f0 brcs .+2 ; 0x768 <WriteParameterSet+0x8> |
766: 85 e0 ldi r24, 0x05 ; 5 |
768: 28 2f mov r18, r24 |
76a: 21 50 subi r18, 0x01 ; 1 |
76c: 84 2f mov r24, r20 |
76e: 99 27 eor r25, r25 |
770: aa e3 ldi r26, 0x3A ; 58 |
772: 2a 9f mul r18, r26 |
774: d0 01 movw r26, r0 |
776: 11 24 eor r1, r1 |
778: a6 5f subi r26, 0xF6 ; 246 |
77a: bf 4f sbci r27, 0xFF ; 255 |
0000077c <.28_start>: |
77c: 01 97 sbiw r24, 0x01 ; 1 |
77e: 24 f0 brlt .+8 ; 0x788 <.28_finished> |
780: 01 90 ld r0, Z+ |
782: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
786: fa cf rjmp .-12 ; 0x77c <.28_start> |
00000788 <.28_finished>: |
788: a2 e0 ldi r26, 0x02 ; 2 |
78a: b0 e0 ldi r27, 0x00 ; 0 |
78c: 02 2e mov r0, r18 |
78e: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
792: 08 95 ret |
00000794 <ReadParameterSet>: |
794: fb 01 movw r30, r22 |
796: 28 2f mov r18, r24 |
798: 86 30 cpi r24, 0x06 ; 6 |
79a: 08 f0 brcs .+2 ; 0x79e <ReadParameterSet+0xa> |
79c: 25 e0 ldi r18, 0x05 ; 5 |
79e: 84 2f mov r24, r20 |
7a0: 99 27 eor r25, r25 |
7a2: 21 50 subi r18, 0x01 ; 1 |
7a4: aa e3 ldi r26, 0x3A ; 58 |
7a6: 2a 9f mul r18, r26 |
7a8: d0 01 movw r26, r0 |
7aa: 11 24 eor r1, r1 |
7ac: a6 5f subi r26, 0xF6 ; 246 |
7ae: bf 4f sbci r27, 0xFF ; 255 |
000007b0 <.49_start>: |
7b0: 01 97 sbiw r24, 0x01 ; 1 |
7b2: 24 f0 brlt .+8 ; 0x7bc <.49_finished> |
7b4: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
7b8: 01 92 st Z+, r0 |
7ba: fa cf rjmp .-12 ; 0x7b0 <.49_start> |
000007bc <.49_finished>: |
7bc: 08 95 ret |
000007be <main>: |
7be: 0f 93 push r16 |
7c0: 1f 93 push r17 |
7c2: cf 93 push r28 |
7c4: df 93 push r29 |
7c6: 81 e0 ldi r24, 0x01 ; 1 |
7c8: 87 b9 out 0x07, r24 ; 7 |
7ca: 8f ef ldi r24, 0xFF ; 255 |
7cc: 88 b9 out 0x08, r24 ; 8 |
7ce: 8b e1 ldi r24, 0x1B ; 27 |
7d0: 84 b9 out 0x04, r24 ; 4 |
7d2: 28 9a sbi 0x05, 0 ; 5 |
7d4: 8e e3 ldi r24, 0x3E ; 62 |
7d6: 8a b9 out 0x0a, r24 ; 10 |
7d8: 57 9a sbi 0x0a, 7 ; 10 |
7da: 87 ef ldi r24, 0xF7 ; 247 |
7dc: 8b b9 out 0x0b, r24 ; 11 |
7de: 84 b7 in r24, 0x34 ; 52 |
7e0: 87 7f andi r24, 0xF7 ; 247 |
7e2: 84 bf out 0x34, r24 ; 52 |
7e4: 80 91 60 00 lds r24, 0x0060 |
7e8: 88 61 ori r24, 0x18 ; 24 |
7ea: 80 93 60 00 sts 0x0060, r24 |
7ee: 10 92 60 00 sts 0x0060, r1 |
7f2: 88 ee ldi r24, 0xE8 ; 232 |
7f4: 93 e0 ldi r25, 0x03 ; 3 |
7f6: 90 93 a7 01 sts 0x01A7, r25 |
7fa: 80 93 a6 01 sts 0x01A6, r24 |
7fe: 10 92 1e 02 sts 0x021E, r1 |
802: 10 92 1d 02 sts 0x021D, r1 |
806: 10 92 ad 04 sts 0x04AD, r1 |
80a: 10 92 ac 04 sts 0x04AC, r1 |
80e: 10 92 1c 02 sts 0x021C, r1 |
812: 10 92 1b 02 sts 0x021B, r1 |
816: 10 92 1a 02 sts 0x021A, r1 |
81a: 10 92 19 02 sts 0x0219, r1 |
81e: 28 98 cbi 0x05, 0 ; 5 |
820: 0e 94 95 0b call 0x172a ; 0x172a <Timer_Init> |
824: 0e 94 9c 07 call 0xf38 ; 0xf38 <UART_Init> |
828: 0e 94 cb 18 call 0x3196 ; 0x3196 <rc_sum_init> |
82c: 0e 94 dd 0c call 0x19ba ; 0x19ba <ADC_Init> |
830: 0e 94 31 18 call 0x3062 ; 0x3062 <i2c_init> |
834: 0e 94 0d 17 call 0x2e1a ; 0x2e1a <init_MM3> |
838: 78 94 sei |
83a: 10 92 a8 03 sts 0x03A8, r1 |
83e: 8c e3 ldi r24, 0x3C ; 60 |
840: 80 93 a9 03 sts 0x03A9, r24 |
844: 84 e0 ldi r24, 0x04 ; 4 |
846: 80 93 aa 03 sts 0x03AA, r24 |
84a: 8c e3 ldi r24, 0x3C ; 60 |
84c: 90 e0 ldi r25, 0x00 ; 0 |
84e: 9f 93 push r25 |
850: 8f 93 push r24 |
852: 1f 92 push r1 |
854: 1f 92 push r1 |
856: 83 ea ldi r24, 0xA3 ; 163 |
858: 91 e0 ldi r25, 0x01 ; 1 |
85a: 9f 93 push r25 |
85c: 8f 93 push r24 |
85e: 1f 92 push r1 |
860: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
864: 82 e8 ldi r24, 0x82 ; 130 |
866: 91 e0 ldi r25, 0x01 ; 1 |
868: 9f 93 push r25 |
86a: 8f 93 push r24 |
86c: 1f 92 push r1 |
86e: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
872: 29 9a sbi 0x05, 1 ; 5 |
874: a1 e0 ldi r26, 0x01 ; 1 |
876: b0 e0 ldi r27, 0x00 ; 0 |
878: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
87c: 80 2d mov r24, r0 |
87e: 2d b7 in r18, 0x3d ; 61 |
880: 3e b7 in r19, 0x3e ; 62 |
882: 26 5f subi r18, 0xF6 ; 246 |
884: 3f 4f sbci r19, 0xFF ; 255 |
886: 2d bf out 0x3d, r18 ; 61 |
888: 8a 30 cpi r24, 0x0A ; 10 |
88a: b9 f1 breq .+110 ; 0x8fa <main+0x13c> |
88c: 83 e5 ldi r24, 0x53 ; 83 |
88e: 91 e0 ldi r25, 0x01 ; 1 |
890: 9f 93 push r25 |
892: 8f 93 push r24 |
894: 1f 92 push r1 |
896: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
89a: 0e 94 34 20 call 0x4068 ; 0x4068 <DefaultKonstanten1> |
89e: 4a e3 ldi r20, 0x3A ; 58 |
8a0: 64 ed ldi r22, 0xD4 ; 212 |
8a2: 74 e0 ldi r23, 0x04 ; 4 |
8a4: 80 e0 ldi r24, 0x00 ; 0 |
8a6: 0e 94 b0 03 call 0x760 ; 0x760 <WriteParameterSet> |
8aa: 01 e0 ldi r16, 0x01 ; 1 |
8ac: 0f 90 pop r0 |
8ae: 0f 90 pop r0 |
8b0: 0f 90 pop r0 |
8b2: 02 30 cpi r16, 0x02 ; 2 |
8b4: 49 f4 brne .+18 ; 0x8c8 <main+0x10a> |
8b6: 0e 94 c7 1f call 0x3f8e ; 0x3f8e <DefaultKonstanten2> |
8ba: 4a e3 ldi r20, 0x3A ; 58 |
8bc: 64 ed ldi r22, 0xD4 ; 212 |
8be: 74 e0 ldi r23, 0x04 ; 4 |
8c0: 82 e0 ldi r24, 0x02 ; 2 |
8c2: 0e 94 b0 03 call 0x760 ; 0x760 <WriteParameterSet> |
8c6: 03 e0 ldi r16, 0x03 ; 3 |
8c8: 4a e3 ldi r20, 0x3A ; 58 |
8ca: 64 ed ldi r22, 0xD4 ; 212 |
8cc: 74 e0 ldi r23, 0x04 ; 4 |
8ce: 80 2f mov r24, r16 |
8d0: 0e 94 b0 03 call 0x760 ; 0x760 <WriteParameterSet> |
8d4: 0f 5f subi r16, 0xFF ; 255 |
8d6: 06 30 cpi r16, 0x06 ; 6 |
8d8: 60 f3 brcs .-40 ; 0x8b2 <main+0xf4> |
8da: 81 e0 ldi r24, 0x01 ; 1 |
8dc: 22 e0 ldi r18, 0x02 ; 2 |
8de: 30 e0 ldi r19, 0x00 ; 0 |
8e0: d9 01 movw r26, r18 |
8e2: 08 2e mov r0, r24 |
8e4: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
8e8: 8a e0 ldi r24, 0x0A ; 10 |
8ea: 21 50 subi r18, 0x01 ; 1 |
8ec: 30 40 sbci r19, 0x00 ; 0 |
8ee: d9 01 movw r26, r18 |
8f0: 08 2e mov r0, r24 |
8f2: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
8f6: 0e 94 be 21 call 0x437c ; 0x437c <calib_acc> |
8fa: 02 e0 ldi r16, 0x02 ; 2 |
8fc: 10 e0 ldi r17, 0x00 ; 0 |
8fe: d8 01 movw r26, r16 |
900: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
904: 80 2d mov r24, r0 |
906: 4a e3 ldi r20, 0x3A ; 58 |
908: 64 ed ldi r22, 0xD4 ; 212 |
90a: 74 e0 ldi r23, 0x04 ; 4 |
90c: 0e 94 ca 03 call 0x794 ; 0x794 <ReadParameterSet> |
910: d8 01 movw r26, r16 |
912: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
916: 80 2d mov r24, r0 |
918: 99 27 eor r25, r25 |
91a: 9f 93 push r25 |
91c: 8f 93 push r24 |
91e: 88 e3 ldi r24, 0x38 ; 56 |
920: 91 e0 ldi r25, 0x01 ; 1 |
922: 9f 93 push r25 |
924: 8f 93 push r24 |
926: 1f 92 push r1 |
928: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
92c: 84 ef ldi r24, 0xF4 ; 244 |
92e: 91 e0 ldi r25, 0x01 ; 1 |
930: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
934: ec 01 movw r28, r24 |
936: 0f 90 pop r0 |
938: 0f 90 pop r0 |
93a: 0f 90 pop r0 |
93c: 0f 90 pop r0 |
93e: 0f 90 pop r0 |
940: ce 01 movw r24, r28 |
942: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
946: 88 23 and r24, r24 |
948: d9 f3 breq .-10 ; 0x940 <main+0x182> |
94a: e0 91 d6 04 lds r30, 0x04D6 |
94e: ff 27 eor r31, r31 |
950: ee 0f add r30, r30 |
952: ff 1f adc r31, r31 |
954: e8 55 subi r30, 0x58 ; 88 |
956: fb 4f sbci r31, 0xFB ; 251 |
958: 80 81 ld r24, Z |
95a: 91 81 ldd r25, Z+1 ; 0x01 |
95c: 85 36 cpi r24, 0x65 ; 101 |
95e: 91 05 cpc r25, r1 |
960: c4 f0 brlt .+48 ; 0x992 <main+0x1d4> |
962: e0 91 d7 04 lds r30, 0x04D7 |
966: ff 27 eor r31, r31 |
968: ee 0f add r30, r30 |
96a: ff 1f adc r31, r31 |
96c: e8 55 subi r30, 0x58 ; 88 |
96e: fb 4f sbci r31, 0xFB ; 251 |
970: 80 81 ld r24, Z |
972: 91 81 ldd r25, Z+1 ; 0x01 |
974: 85 36 cpi r24, 0x65 ; 101 |
976: 91 05 cpc r25, r1 |
978: 64 f0 brlt .+24 ; 0x992 <main+0x1d4> |
97a: 83 e2 ldi r24, 0x23 ; 35 |
97c: 91 e0 ldi r25, 0x01 ; 1 |
97e: 9f 93 push r25 |
980: 8f 93 push r24 |
982: 1f 92 push r1 |
984: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
988: 0e 94 47 16 call 0x2c8e ; 0x2c8e <calib_MM3> |
98c: 0f 90 pop r0 |
98e: 0f 90 pop r0 |
990: 0f 90 pop r0 |
992: e0 91 d6 04 lds r30, 0x04D6 |
996: ff 27 eor r31, r31 |
998: ee 0f add r30, r30 |
99a: ff 1f adc r31, r31 |
99c: e8 55 subi r30, 0x58 ; 88 |
99e: fb 4f sbci r31, 0xFB ; 251 |
9a0: 80 81 ld r24, Z |
9a2: 91 81 ldd r25, Z+1 ; 0x01 |
9a4: 85 36 cpi r24, 0x65 ; 101 |
9a6: 91 05 cpc r25, r1 |
9a8: c4 f0 brlt .+48 ; 0x9da <main+0x21c> |
9aa: e0 91 d7 04 lds r30, 0x04D7 |
9ae: ff 27 eor r31, r31 |
9b0: ee 0f add r30, r30 |
9b2: ff 1f adc r31, r31 |
9b4: e8 55 subi r30, 0x58 ; 88 |
9b6: fb 4f sbci r31, 0xFB ; 251 |
9b8: 80 81 ld r24, Z |
9ba: 91 81 ldd r25, Z+1 ; 0x01 |
9bc: 8c 59 subi r24, 0x9C ; 156 |
9be: 9f 4f sbci r25, 0xFF ; 255 |
9c0: 64 f4 brge .+24 ; 0x9da <main+0x21c> |
9c2: 8a e0 ldi r24, 0x0A ; 10 |
9c4: 91 e0 ldi r25, 0x01 ; 1 |
9c6: 9f 93 push r25 |
9c8: 8f 93 push r24 |
9ca: 1f 92 push r1 |
9cc: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
9d0: 0e 94 be 21 call 0x437c ; 0x437c <calib_acc> |
9d4: 0f 90 pop r0 |
9d6: 0f 90 pop r0 |
9d8: 0f 90 pop r0 |
9da: 80 91 dc 04 lds r24, 0x04DC |
9de: 80 ff sbrs r24, 0 |
9e0: 20 c0 rjmp .+64 ; 0xa22 <main+0x264> |
9e2: 8d ee ldi r24, 0xED ; 237 |
9e4: 90 e0 ldi r25, 0x00 ; 0 |
9e6: 9f 93 push r25 |
9e8: 8f 93 push r24 |
9ea: 1f 92 push r1 |
9ec: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
9f0: 84 ec ldi r24, 0xC4 ; 196 |
9f2: 99 e0 ldi r25, 0x09 ; 9 |
9f4: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
9f8: ec 01 movw r28, r24 |
9fa: 0e 94 f9 0f call 0x1ff2 ; 0x1ff2 <SucheLuftruckOffset> |
9fe: 0f 90 pop r0 |
a00: 0f 90 pop r0 |
a02: 0f 90 pop r0 |
a04: ce 01 movw r24, r28 |
a06: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
a0a: 88 23 and r24, r24 |
a0c: d9 f3 breq .-10 ; 0xa04 <main+0x246> |
a0e: 88 ee ldi r24, 0xE8 ; 232 |
a10: 90 e0 ldi r25, 0x00 ; 0 |
a12: 9f 93 push r25 |
a14: 8f 93 push r24 |
a16: 1f 92 push r1 |
a18: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
a1c: 0f 90 pop r0 |
a1e: 0f 90 pop r0 |
a20: 0f 90 pop r0 |
a22: 0e 94 ec 20 call 0x41d8 ; 0x41d8 <SetNeutral> |
a26: 28 98 cbi 0x05, 0 ; 5 |
a28: 80 ed ldi r24, 0xD0 ; 208 |
a2a: 97 e0 ldi r25, 0x07 ; 7 |
a2c: 90 93 a7 01 sts 0x01A7, r25 |
a30: 80 93 a6 01 sts 0x01A6, r24 |
a34: 88 ee ldi r24, 0xE8 ; 232 |
a36: 93 e0 ldi r25, 0x03 ; 3 |
a38: 90 93 a3 03 sts 0x03A3, r25 |
a3c: 80 93 a2 03 sts 0x03A2, r24 |
a40: 85 e5 ldi r24, 0x55 ; 85 |
a42: 80 93 9d 03 sts 0x039D, r24 |
a46: 8a ed ldi r24, 0xDA ; 218 |
a48: 90 e0 ldi r25, 0x00 ; 0 |
a4a: 9f 93 push r25 |
a4c: 8f 93 push r24 |
a4e: 1f 92 push r1 |
a50: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
a54: 80 91 dc 04 lds r24, 0x04DC |
a58: 0f 90 pop r0 |
a5a: 0f 90 pop r0 |
a5c: 0f 90 pop r0 |
a5e: 82 ff sbrs r24, 2 |
a60: 03 c0 rjmp .+6 ; 0xa68 <main+0x2aa> |
a62: 8e ec ldi r24, 0xCE ; 206 |
a64: 90 e0 ldi r25, 0x00 ; 0 |
a66: 02 c0 rjmp .+4 ; 0xa6c <main+0x2ae> |
a68: 86 ec ldi r24, 0xC6 ; 198 |
a6a: 90 e0 ldi r25, 0x00 ; 0 |
a6c: 9f 93 push r25 |
a6e: 8f 93 push r24 |
a70: 1f 92 push r1 |
a72: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
a76: 0f 90 pop r0 |
a78: 0f 90 pop r0 |
a7a: 0f 90 pop r0 |
a7c: 82 ec ldi r24, 0xC2 ; 194 |
a7e: 90 e0 ldi r25, 0x00 ; 0 |
a80: 9f 93 push r25 |
a82: 8f 93 push r24 |
a84: 1f 92 push r1 |
a86: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
a8a: 0e 94 3d 10 call 0x207a ; 0x207a <LcdClear> |
a8e: 0f 90 pop r0 |
a90: 0f 90 pop r0 |
a92: 0f 90 pop r0 |
a94: 80 91 a5 01 lds r24, 0x01A5 |
a98: 88 23 and r24, r24 |
a9a: 79 f1 breq .+94 ; 0xafa <main+0x33c> |
a9c: 10 92 a5 01 sts 0x01A5, r1 |
aa0: 0e 94 37 22 call 0x446e ; 0x446e <MotorRegler> |
aa4: 0e 94 a5 20 call 0x414a ; 0x414a <SendMotorData> |
aa8: 28 98 cbi 0x05, 0 ; 5 |
aaa: 80 91 01 01 lds r24, 0x0101 |
aae: 88 23 and r24, r24 |
ab0: 19 f0 breq .+6 ; 0xab8 <main+0x2fa> |
ab2: 81 50 subi r24, 0x01 ; 1 |
ab4: 80 93 01 01 sts 0x0101, r24 |
ab8: 80 91 18 02 lds r24, 0x0218 |
abc: 88 23 and r24, r24 |
abe: 29 f0 breq .+10 ; 0xaca <main+0x30c> |
ac0: 80 91 18 02 lds r24, 0x0218 |
ac4: 81 50 subi r24, 0x01 ; 1 |
ac6: 80 93 18 02 sts 0x0218, r24 |
aca: 20 91 04 01 lds r18, 0x0104 |
ace: 30 91 05 01 lds r19, 0x0105 |
ad2: 80 91 ec 04 lds r24, 0x04EC |
ad6: 99 27 eor r25, r25 |
ad8: 28 17 cp r18, r24 |
ada: 39 07 cpc r19, r25 |
adc: 34 f4 brge .+12 ; 0xaea <main+0x32c> |
ade: 80 ed ldi r24, 0xD0 ; 208 |
ae0: 97 e0 ldi r25, 0x07 ; 7 |
ae2: 90 93 a7 01 sts 0x01A7, r25 |
ae6: 80 93 a6 01 sts 0x01A6, r24 |
aea: 80 91 d0 01 lds r24, 0x01D0 |
aee: 88 23 and r24, r24 |
af0: 19 f4 brne .+6 ; 0xaf8 <main+0x33a> |
af2: 0e 94 31 18 call 0x3062 ; 0x3062 <i2c_init> |
af6: 01 c0 rjmp .+2 ; 0xafa <main+0x33c> |
af8: 28 98 cbi 0x05, 0 ; 5 |
afa: 0e 94 b7 07 call 0xf6e ; 0xf6e <DatenUebertragung> |
afe: 0e 94 25 08 call 0x104a ; 0x104a <BearbeiteRxDaten> |
b02: 80 e0 ldi r24, 0x00 ; 0 |
b04: 90 e0 ldi r25, 0x00 ; 0 |
b06: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
b0a: 88 23 and r24, r24 |
b0c: 19 f2 breq .-122 ; 0xa94 <main+0x2d6> |
b0e: 80 91 1f 02 lds r24, 0x021F |
b12: 88 23 and r24, r24 |
b14: 29 f0 breq .+10 ; 0xb20 <main+0x362> |
b16: 88 b1 in r24, 0x08 ; 8 |
b18: 90 e1 ldi r25, 0x10 ; 16 |
b1a: 89 27 eor r24, r25 |
b1c: 88 b9 out 0x08, r24 ; 8 |
b1e: 01 c0 rjmp .+2 ; 0xb22 <main+0x364> |
b20: 44 98 cbi 0x08, 4 ; 8 |
b22: 84 ef ldi r24, 0xF4 ; 244 |
b24: 91 e0 ldi r25, 0x01 ; 1 |
b26: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
b2a: b4 cf rjmp .-152 ; 0xa94 <main+0x2d6> |
00000b2c <__vector_22>: |
b2c: 1f 92 push r1 |
b2e: 0f 92 push r0 |
b30: 0f b6 in r0, 0x3f ; 63 |
b32: 0f 92 push r0 |
b34: 11 24 eor r1, r1 |
b36: 8f 93 push r24 |
b38: 9f 93 push r25 |
b3a: ef 93 push r30 |
b3c: ff 93 push r31 |
b3e: 80 91 00 01 lds r24, 0x0100 |
b42: 88 23 and r24, r24 |
b44: e1 f4 brne .+56 ; 0xb7e <__vector_22+0x52> |
b46: 80 91 a1 01 lds r24, 0x01A1 |
b4a: 90 91 a2 01 lds r25, 0x01A2 |
b4e: 01 96 adiw r24, 0x01 ; 1 |
b50: 90 93 a2 01 sts 0x01A2, r25 |
b54: 80 93 a1 01 sts 0x01A1, r24 |
b58: fc 01 movw r30, r24 |
b5a: e1 59 subi r30, 0x91 ; 145 |
b5c: fd 4f sbci r31, 0xFD ; 253 |
b5e: e0 81 ld r30, Z |
b60: ed 30 cpi r30, 0x0D ; 13 |
b62: 19 f0 breq .+6 ; 0xb6a <__vector_22+0x3e> |
b64: 86 39 cpi r24, 0x96 ; 150 |
b66: 91 05 cpc r25, r1 |
b68: 39 f4 brne .+14 ; 0xb78 <__vector_22+0x4c> |
b6a: 10 92 a2 01 sts 0x01A2, r1 |
b6e: 10 92 a1 01 sts 0x01A1, r1 |
b72: 81 e0 ldi r24, 0x01 ; 1 |
b74: 80 93 00 01 sts 0x0100, r24 |
b78: e0 93 c6 00 sts 0x00C6, r30 |
b7c: 04 c0 rjmp .+8 ; 0xb86 <__vector_22+0x5a> |
b7e: 10 92 a2 01 sts 0x01A2, r1 |
b82: 10 92 a1 01 sts 0x01A1, r1 |
b86: ff 91 pop r31 |
b88: ef 91 pop r30 |
b8a: 9f 91 pop r25 |
b8c: 8f 91 pop r24 |
b8e: 0f 90 pop r0 |
b90: 0f be out 0x3f, r0 ; 63 |
b92: 0f 90 pop r0 |
b94: 1f 90 pop r1 |
b96: 18 95 reti |
00000b98 <__vector_20>: |
b98: 1f 92 push r1 |
b9a: 0f 92 push r0 |
b9c: 0f b6 in r0, 0x3f ; 63 |
b9e: 0f 92 push r0 |
ba0: 11 24 eor r1, r1 |
ba2: 2f 93 push r18 |
ba4: 3f 93 push r19 |
ba6: 4f 93 push r20 |
ba8: 8f 93 push r24 |
baa: 9f 93 push r25 |
bac: af 93 push r26 |
bae: bf 93 push r27 |
bb0: cf 93 push r28 |
bb2: df 93 push r29 |
bb4: ef 93 push r30 |
bb6: ff 93 push r31 |
bb8: 80 91 c6 00 lds r24, 0x00C6 |
bbc: 80 93 90 01 sts 0x0190, r24 |
bc0: 40 91 9c 01 lds r20, 0x019C |
bc4: 46 39 cpi r20, 0x96 ; 150 |
bc6: 10 f0 brcs .+4 ; 0xbcc <__vector_20+0x34> |
bc8: 10 92 9b 01 sts 0x019B, r1 |
bcc: 80 91 90 01 lds r24, 0x0190 |
bd0: 8d 30 cpi r24, 0x0D ; 13 |
bd2: 09 f0 breq .+2 ; 0xbd6 <__vector_20+0x3e> |
bd4: 5c c0 rjmp .+184 ; 0xc8e <__vector_20+0xf6> |
bd6: 80 91 9b 01 lds r24, 0x019B |
bda: 82 30 cpi r24, 0x02 ; 2 |
bdc: 09 f0 breq .+2 ; 0xbe0 <__vector_20+0x48> |
bde: 57 c0 rjmp .+174 ; 0xc8e <__vector_20+0xf6> |
be0: 10 92 9b 01 sts 0x019B, r1 |
be4: a4 2f mov r26, r20 |
be6: bb 27 eor r27, r27 |
be8: fd 01 movw r30, r26 |
bea: e0 55 subi r30, 0x50 ; 80 |
bec: fc 4f sbci r31, 0xFC ; 252 |
bee: 30 81 ld r19, Z |
bf0: ed 01 movw r28, r26 |
bf2: cf 54 subi r28, 0x4F ; 79 |
bf4: dc 4f sbci r29, 0xFC ; 252 |
bf6: 28 81 ld r18, Y |
bf8: 80 91 9f 01 lds r24, 0x019F |
bfc: 90 91 a0 01 lds r25, 0x01A0 |
c00: 83 1b sub r24, r19 |
c02: 91 09 sbc r25, r1 |
c04: 82 1b sub r24, r18 |
c06: 91 09 sbc r25, r1 |
c08: 9f 70 andi r25, 0x0F ; 15 |
c0a: 90 93 a0 01 sts 0x01A0, r25 |
c0e: 80 93 9f 01 sts 0x019F, r24 |
c12: 9c 01 movw r18, r24 |
c14: 96 e0 ldi r25, 0x06 ; 6 |
c16: 36 95 lsr r19 |
c18: 27 95 ror r18 |
c1a: 9a 95 dec r25 |
c1c: e1 f7 brne .-8 ; 0xc16 <__vector_20+0x7e> |
c1e: 23 5c subi r18, 0xC3 ; 195 |
c20: 20 93 9e 01 sts 0x019E, r18 |
c24: 98 2f mov r25, r24 |
c26: 9f 73 andi r25, 0x3F ; 63 |
c28: 93 5c subi r25, 0xC3 ; 195 |
c2a: 90 93 9d 01 sts 0x019D, r25 |
c2e: 80 81 ld r24, Z |
c30: 28 17 cp r18, r24 |
c32: 29 f4 brne .+10 ; 0xc3e <__vector_20+0xa6> |
c34: 88 81 ld r24, Y |
c36: 98 17 cp r25, r24 |
c38: 11 f4 brne .+4 ; 0xc3e <__vector_20+0xa6> |
c3a: 91 e0 ldi r25, 0x01 ; 1 |
c3c: 06 c0 rjmp .+12 ; 0xc4a <__vector_20+0xb2> |
c3e: 80 91 93 01 lds r24, 0x0193 |
c42: 8f 5f subi r24, 0xFF ; 255 |
c44: 80 93 93 01 sts 0x0193, r24 |
c48: 90 e0 ldi r25, 0x00 ; 0 |
c4a: 80 91 91 01 lds r24, 0x0191 |
c4e: 88 23 and r24, r24 |
c50: 09 f0 breq .+2 ; 0xc54 <__vector_20+0xbc> |
c52: 64 c0 rjmp .+200 ; 0xd1c <__vector_20+0x184> |
c54: 99 23 and r25, r25 |
c56: 09 f4 brne .+2 ; 0xc5a <__vector_20+0xc2> |
c58: 61 c0 rjmp .+194 ; 0xd1c <__vector_20+0x184> |
c5a: 81 e0 ldi r24, 0x01 ; 1 |
c5c: 80 93 91 01 sts 0x0191, r24 |
c60: 40 93 94 01 sts 0x0194, r20 |
c64: ae 54 subi r26, 0x4E ; 78 |
c66: bc 4f sbci r27, 0xFC ; 252 |
c68: 8d e0 ldi r24, 0x0D ; 13 |
c6a: 8c 93 st X, r24 |
c6c: 80 91 b4 03 lds r24, 0x03B4 |
c70: 82 35 cpi r24, 0x52 ; 82 |
c72: 09 f0 breq .+2 ; 0xc76 <__vector_20+0xde> |
c74: 53 c0 rjmp .+166 ; 0xd1c <__vector_20+0x184> |
c76: 88 e1 ldi r24, 0x18 ; 24 |
c78: 90 e0 ldi r25, 0x00 ; 0 |
c7a: 2c e0 ldi r18, 0x0C ; 12 |
c7c: 0f b6 in r0, 0x3f ; 63 |
c7e: f8 94 cli |
c80: a8 95 wdr |
c82: 80 93 60 00 sts 0x0060, r24 |
c86: 0f be out 0x3f, r0 ; 63 |
c88: 20 93 60 00 sts 0x0060, r18 |
c8c: 47 c0 rjmp .+142 ; 0xd1c <__vector_20+0x184> |
c8e: 80 91 9b 01 lds r24, 0x019B |
c92: 81 30 cpi r24, 0x01 ; 1 |
c94: d9 f0 breq .+54 ; 0xccc <__vector_20+0x134> |
c96: 81 30 cpi r24, 0x01 ; 1 |
c98: 18 f0 brcs .+6 ; 0xca0 <__vector_20+0x108> |
c9a: 82 30 cpi r24, 0x02 ; 2 |
c9c: e9 f5 brne .+122 ; 0xd18 <__vector_20+0x180> |
c9e: 30 c0 rjmp .+96 ; 0xd00 <__vector_20+0x168> |
ca0: 80 91 90 01 lds r24, 0x0190 |
ca4: 83 32 cpi r24, 0x23 ; 35 |
ca6: 39 f4 brne .+14 ; 0xcb6 <__vector_20+0x11e> |
ca8: 80 91 91 01 lds r24, 0x0191 |
cac: 88 23 and r24, r24 |
cae: 19 f4 brne .+6 ; 0xcb6 <__vector_20+0x11e> |
cb0: 81 e0 ldi r24, 0x01 ; 1 |
cb2: 80 93 9b 01 sts 0x019B, r24 |
cb6: 80 91 90 01 lds r24, 0x0190 |
cba: 80 93 b2 03 sts 0x03B2, r24 |
cbe: 81 e0 ldi r24, 0x01 ; 1 |
cc0: 80 93 9c 01 sts 0x019C, r24 |
cc4: 80 91 90 01 lds r24, 0x0190 |
cc8: 99 27 eor r25, r25 |
cca: 15 c0 rjmp .+42 ; 0xcf6 <__vector_20+0x15e> |
ccc: 82 e0 ldi r24, 0x02 ; 2 |
cce: 80 93 9b 01 sts 0x019B, r24 |
cd2: e4 2f mov r30, r20 |
cd4: ff 27 eor r31, r31 |
cd6: 80 91 90 01 lds r24, 0x0190 |
cda: ee 54 subi r30, 0x4E ; 78 |
cdc: fc 4f sbci r31, 0xFC ; 252 |
cde: 80 83 st Z, r24 |
ce0: 4f 5f subi r20, 0xFF ; 255 |
ce2: 40 93 9c 01 sts 0x019C, r20 |
ce6: 20 91 90 01 lds r18, 0x0190 |
cea: 80 91 9f 01 lds r24, 0x019F |
cee: 90 91 a0 01 lds r25, 0x01A0 |
cf2: 82 0f add r24, r18 |
cf4: 91 1d adc r25, r1 |
cf6: 90 93 a0 01 sts 0x01A0, r25 |
cfa: 80 93 9f 01 sts 0x019F, r24 |
cfe: 0e c0 rjmp .+28 ; 0xd1c <__vector_20+0x184> |
d00: e4 2f mov r30, r20 |
d02: ff 27 eor r31, r31 |
d04: 80 91 90 01 lds r24, 0x0190 |
d08: ee 54 subi r30, 0x4E ; 78 |
d0a: fc 4f sbci r31, 0xFC ; 252 |
d0c: 80 83 st Z, r24 |
d0e: 46 39 cpi r20, 0x96 ; 150 |
d10: 38 f3 brcs .-50 ; 0xce0 <__vector_20+0x148> |
d12: 10 92 9b 01 sts 0x019B, r1 |
d16: e7 cf rjmp .-50 ; 0xce6 <__vector_20+0x14e> |
d18: 10 92 9b 01 sts 0x019B, r1 |
d1c: ff 91 pop r31 |
d1e: ef 91 pop r30 |
d20: df 91 pop r29 |
d22: cf 91 pop r28 |
d24: bf 91 pop r27 |
d26: af 91 pop r26 |
d28: 9f 91 pop r25 |
d2a: 8f 91 pop r24 |
d2c: 4f 91 pop r20 |
d2e: 3f 91 pop r19 |
d30: 2f 91 pop r18 |
d32: 0f 90 pop r0 |
d34: 0f be out 0x3f, r0 ; 63 |
d36: 0f 90 pop r0 |
d38: 1f 90 pop r1 |
d3a: 18 95 reti |
00000d3c <AddCRC>: |
d3c: dc 01 movw r26, r24 |
d3e: 20 e0 ldi r18, 0x00 ; 0 |
d40: 30 e0 ldi r19, 0x00 ; 0 |
d42: 40 e0 ldi r20, 0x00 ; 0 |
d44: 50 e0 ldi r21, 0x00 ; 0 |
d46: ef e6 ldi r30, 0x6F ; 111 |
d48: f2 e0 ldi r31, 0x02 ; 2 |
d4a: 05 c0 rjmp .+10 ; 0xd56 <AddCRC+0x1a> |
d4c: 81 91 ld r24, Z+ |
d4e: 28 0f add r18, r24 |
d50: 31 1d adc r19, r1 |
d52: 4f 5f subi r20, 0xFF ; 255 |
d54: 5f 4f sbci r21, 0xFF ; 255 |
d56: 4a 17 cp r20, r26 |
d58: 5b 07 cpc r21, r27 |
d5a: c1 f7 brne .-16 ; 0xd4c <AddCRC+0x10> |
d5c: 3f 70 andi r19, 0x0F ; 15 |
d5e: c9 01 movw r24, r18 |
d60: 36 e0 ldi r19, 0x06 ; 6 |
d62: 96 95 lsr r25 |
d64: 87 95 ror r24 |
d66: 3a 95 dec r19 |
d68: e1 f7 brne .-8 ; 0xd62 <AddCRC+0x26> |
d6a: 83 5c subi r24, 0xC3 ; 195 |
d6c: fd 01 movw r30, r26 |
d6e: e1 59 subi r30, 0x91 ; 145 |
d70: fd 4f sbci r31, 0xFD ; 253 |
d72: 80 83 st Z, r24 |
d74: 11 96 adiw r26, 0x01 ; 1 |
d76: 2f 73 andi r18, 0x3F ; 63 |
d78: 23 5c subi r18, 0xC3 ; 195 |
d7a: fd 01 movw r30, r26 |
d7c: e1 59 subi r30, 0x91 ; 145 |
d7e: fd 4f sbci r31, 0xFD ; 253 |
d80: 20 83 st Z, r18 |
d82: a0 59 subi r26, 0x90 ; 144 |
d84: bd 4f sbci r27, 0xFD ; 253 |
d86: 8d e0 ldi r24, 0x0D ; 13 |
d88: 8c 93 st X, r24 |
d8a: 10 92 00 01 sts 0x0100, r1 |
d8e: 80 91 6f 02 lds r24, 0x026F |
d92: 80 93 c6 00 sts 0x00C6, r24 |
d96: 08 95 ret |
00000d98 <SendOutData>: |
d98: ef 92 push r14 |
d9a: ff 92 push r15 |
d9c: 0f 93 push r16 |
d9e: 1f 93 push r17 |
da0: cf 93 push r28 |
da2: df 93 push r29 |
da4: 7a 01 movw r14, r20 |
da6: 72 2f mov r23, r18 |
da8: 93 e2 ldi r25, 0x23 ; 35 |
daa: 90 93 6f 02 sts 0x026F, r25 |
dae: 60 93 70 02 sts 0x0270, r22 |
db2: 80 93 71 02 sts 0x0271, r24 |
db6: 03 e0 ldi r16, 0x03 ; 3 |
db8: 10 e0 ldi r17, 0x00 ; 0 |
dba: 60 e0 ldi r22, 0x00 ; 0 |
dbc: a2 e7 ldi r26, 0x72 ; 114 |
dbe: b2 e0 ldi r27, 0x02 ; 2 |
dc0: 46 c0 rjmp .+140 ; 0xe4e <SendOutData+0xb6> |
dc2: f7 01 movw r30, r14 |
dc4: e6 0f add r30, r22 |
dc6: f1 1d adc r31, r1 |
dc8: 90 81 ld r25, Z |
dca: 6f 5f subi r22, 0xFF ; 255 |
dcc: 71 50 subi r23, 0x01 ; 1 |
dce: 19 f4 brne .+6 ; 0xdd6 <SendOutData+0x3e> |
dd0: e0 e0 ldi r30, 0x00 ; 0 |
dd2: 40 e0 ldi r20, 0x00 ; 0 |
dd4: 0f c0 rjmp .+30 ; 0xdf4 <SendOutData+0x5c> |
dd6: f7 01 movw r30, r14 |
dd8: e6 0f add r30, r22 |
dda: f1 1d adc r31, r1 |
ddc: 40 81 ld r20, Z |
dde: 6f 5f subi r22, 0xFF ; 255 |
de0: 71 50 subi r23, 0x01 ; 1 |
de2: 11 f4 brne .+4 ; 0xde8 <SendOutData+0x50> |
de4: e0 e0 ldi r30, 0x00 ; 0 |
de6: 06 c0 rjmp .+12 ; 0xdf4 <SendOutData+0x5c> |
de8: f7 01 movw r30, r14 |
dea: e6 0f add r30, r22 |
dec: f1 1d adc r31, r1 |
dee: e0 81 ld r30, Z |
df0: 6f 5f subi r22, 0xFF ; 255 |
df2: 71 50 subi r23, 0x01 ; 1 |
df4: 89 2f mov r24, r25 |
df6: 86 95 lsr r24 |
df8: 86 95 lsr r24 |
dfa: 83 5c subi r24, 0xC3 ; 195 |
dfc: 8c 93 st X, r24 |
dfe: 55 27 eor r21, r21 |
e00: 89 2f mov r24, r25 |
e02: 99 27 eor r25, r25 |
e04: 83 70 andi r24, 0x03 ; 3 |
e06: 90 70 andi r25, 0x00 ; 0 |
e08: 24 e0 ldi r18, 0x04 ; 4 |
e0a: 88 0f add r24, r24 |
e0c: 99 1f adc r25, r25 |
e0e: 2a 95 dec r18 |
e10: e1 f7 brne .-8 ; 0xe0a <SendOutData+0x72> |
e12: 9a 01 movw r18, r20 |
e14: 94 e0 ldi r25, 0x04 ; 4 |
e16: 36 95 lsr r19 |
e18: 27 95 ror r18 |
e1a: 9a 95 dec r25 |
e1c: e1 f7 brne .-8 ; 0xe16 <SendOutData+0x7e> |
e1e: 82 2b or r24, r18 |
e20: 83 5c subi r24, 0xC3 ; 195 |
e22: ed 01 movw r28, r26 |
e24: 89 83 std Y+1, r24 ; 0x01 |
e26: 4f 70 andi r20, 0x0F ; 15 |
e28: 50 70 andi r21, 0x00 ; 0 |
e2a: 44 0f add r20, r20 |
e2c: 55 1f adc r21, r21 |
e2e: 44 0f add r20, r20 |
e30: 55 1f adc r21, r21 |
e32: 8e 2f mov r24, r30 |
e34: 82 95 swap r24 |
e36: 86 95 lsr r24 |
e38: 86 95 lsr r24 |
e3a: 83 70 andi r24, 0x03 ; 3 |
e3c: 84 2b or r24, r20 |
e3e: 83 5c subi r24, 0xC3 ; 195 |
e40: 8a 83 std Y+2, r24 ; 0x02 |
e42: ef 73 andi r30, 0x3F ; 63 |
e44: e3 5c subi r30, 0xC3 ; 195 |
e46: eb 83 std Y+3, r30 ; 0x03 |
e48: 0c 5f subi r16, 0xFC ; 252 |
e4a: 1f 4f sbci r17, 0xFF ; 255 |
e4c: 14 96 adiw r26, 0x04 ; 4 |
e4e: 77 23 and r23, r23 |
e50: 09 f0 breq .+2 ; 0xe54 <SendOutData+0xbc> |
e52: b7 cf rjmp .-146 ; 0xdc2 <SendOutData+0x2a> |
e54: c8 01 movw r24, r16 |
e56: 0e 94 9e 06 call 0xd3c ; 0xd3c <AddCRC> |
e5a: e6 e0 ldi r30, 0x06 ; 6 |
e5c: cd b7 in r28, 0x3d ; 61 |
e5e: de b7 in r29, 0x3e ; 62 |
e60: 0c 94 8e 2e jmp 0x5d1c ; 0x5d1c <__epilogue_restores__+0x18> |
00000e64 <Decode64>: |
e64: 1f 93 push r17 |
e66: cf 93 push r28 |
e68: df 93 push r29 |
e6a: ec 01 movw r28, r24 |
e6c: 70 e0 ldi r23, 0x00 ; 0 |
e6e: a2 2f mov r26, r18 |
e70: bb 27 eor r27, r27 |
e72: 12 97 sbiw r26, 0x02 ; 2 |
e74: 48 c0 rjmp .+144 ; 0xf06 <Decode64+0xa2> |
e76: e4 2f mov r30, r20 |
e78: ff 27 eor r31, r31 |
e7a: ee 54 subi r30, 0x4E ; 78 |
e7c: fc 4f sbci r31, 0xFC ; 252 |
e7e: 30 81 ld r19, Z |
e80: 4f 5f subi r20, 0xFF ; 255 |
e82: e4 2f mov r30, r20 |
e84: ff 27 eor r31, r31 |
e86: ee 54 subi r30, 0x4E ; 78 |
e88: fc 4f sbci r31, 0xFC ; 252 |
e8a: 50 81 ld r21, Z |
e8c: 4f 5f subi r20, 0xFF ; 255 |
e8e: e4 2f mov r30, r20 |
e90: ff 27 eor r31, r31 |
e92: ee 54 subi r30, 0x4E ; 78 |
e94: fc 4f sbci r31, 0xFC ; 252 |
e96: 10 81 ld r17, Z |
e98: 4f 5f subi r20, 0xFF ; 255 |
e9a: e4 2f mov r30, r20 |
e9c: ff 27 eor r31, r31 |
e9e: ee 54 subi r30, 0x4E ; 78 |
ea0: fc 4f sbci r31, 0xFC ; 252 |
ea2: 20 81 ld r18, Z |
ea4: 4f 5f subi r20, 0xFF ; 255 |
ea6: 84 2f mov r24, r20 |
ea8: 99 27 eor r25, r25 |
eaa: a8 17 cp r26, r24 |
eac: b9 07 cpc r27, r25 |
eae: 74 f1 brlt .+92 ; 0xf0c <Decode64+0xa8> |
eb0: 5d 53 subi r21, 0x3D ; 61 |
eb2: fe 01 movw r30, r28 |
eb4: e7 0f add r30, r23 |
eb6: f1 1d adc r31, r1 |
eb8: 3d 53 subi r19, 0x3D ; 61 |
eba: 33 0f add r19, r19 |
ebc: 33 0f add r19, r19 |
ebe: 85 2f mov r24, r21 |
ec0: 82 95 swap r24 |
ec2: 8f 70 andi r24, 0x0F ; 15 |
ec4: 38 2b or r19, r24 |
ec6: 30 83 st Z, r19 |
ec8: 61 30 cpi r22, 0x01 ; 1 |
eca: 01 f1 breq .+64 ; 0xf0c <Decode64+0xa8> |
ecc: 91 2f mov r25, r17 |
ece: 9d 53 subi r25, 0x3D ; 61 |
ed0: 7f 5f subi r23, 0xFF ; 255 |
ed2: fe 01 movw r30, r28 |
ed4: e7 0f add r30, r23 |
ed6: f1 1d adc r31, r1 |
ed8: 71 50 subi r23, 0x01 ; 1 |
eda: 52 95 swap r21 |
edc: 50 7f andi r21, 0xF0 ; 240 |
ede: 89 2f mov r24, r25 |
ee0: 86 95 lsr r24 |
ee2: 86 95 lsr r24 |
ee4: 58 2b or r21, r24 |
ee6: 50 83 st Z, r21 |
ee8: 63 50 subi r22, 0x03 ; 3 |
eea: 6f 3f cpi r22, 0xFF ; 255 |
eec: 79 f0 breq .+30 ; 0xf0c <Decode64+0xa8> |
eee: 7e 5f subi r23, 0xFE ; 254 |
ef0: fe 01 movw r30, r28 |
ef2: e7 0f add r30, r23 |
ef4: f1 1d adc r31, r1 |
ef6: 92 95 swap r25 |
ef8: 99 0f add r25, r25 |
efa: 99 0f add r25, r25 |
efc: 90 7c andi r25, 0xC0 ; 192 |
efe: 2d 53 subi r18, 0x3D ; 61 |
f00: 92 2b or r25, r18 |
f02: 90 83 st Z, r25 |
f04: 7f 5f subi r23, 0xFF ; 255 |
f06: 66 23 and r22, r22 |
f08: 09 f0 breq .+2 ; 0xf0c <Decode64+0xa8> |
f0a: b5 cf rjmp .-150 ; 0xe76 <Decode64+0x12> |
f0c: df 91 pop r29 |
f0e: cf 91 pop r28 |
f10: 1f 91 pop r17 |
f12: 08 95 ret |
00000f14 <uart_putchar>: |
f14: 1f 93 push r17 |
f16: 18 2f mov r17, r24 |
f18: 8a 30 cpi r24, 0x0A ; 10 |
f1a: 19 f4 brne .+6 ; 0xf22 <uart_putchar+0xe> |
f1c: 8d e0 ldi r24, 0x0D ; 13 |
f1e: 0e 94 8a 07 call 0xf14 ; 0xf14 <uart_putchar> |
f22: 80 91 c0 00 lds r24, 0x00C0 |
f26: 85 ff sbrs r24, 5 |
f28: fc cf rjmp .-8 ; 0xf22 <uart_putchar+0xe> |
f2a: 10 93 c6 00 sts 0x00C6, r17 |
f2e: 80 e0 ldi r24, 0x00 ; 0 |
f30: 90 e0 ldi r25, 0x00 ; 0 |
f32: 1f 91 pop r17 |
f34: 08 95 ret |
00000f36 <WriteProgramData>: |
f36: 08 95 ret |
00000f38 <UART_Init>: |
f38: e1 ec ldi r30, 0xC1 ; 193 |
f3a: f0 e0 ldi r31, 0x00 ; 0 |
f3c: 88 e1 ldi r24, 0x18 ; 24 |
f3e: 80 83 st Z, r24 |
f40: a0 ec ldi r26, 0xC0 ; 192 |
f42: b0 e0 ldi r27, 0x00 ; 0 |
f44: 8c 91 ld r24, X |
f46: 82 60 ori r24, 0x02 ; 2 |
f48: 8c 93 st X, r24 |
f4a: 80 81 ld r24, Z |
f4c: 80 68 ori r24, 0x80 ; 128 |
f4e: 80 83 st Z, r24 |
f50: 80 81 ld r24, Z |
f52: 80 64 ori r24, 0x40 ; 64 |
f54: 80 83 st Z, r24 |
f56: 8a e2 ldi r24, 0x2A ; 42 |
f58: 80 93 c4 00 sts 0x00C4, r24 |
f5c: 88 ec ldi r24, 0xC8 ; 200 |
f5e: 90 e0 ldi r25, 0x00 ; 0 |
f60: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
f64: 90 93 9c 03 sts 0x039C, r25 |
f68: 80 93 9b 03 sts 0x039B, r24 |
f6c: 08 95 ret |
00000f6e <DatenUebertragung>: |
f6e: 80 91 00 01 lds r24, 0x0100 |
f72: 88 23 and r24, r24 |
f74: 09 f4 brne .+2 ; 0xf78 <DatenUebertragung+0xa> |
f76: 68 c0 rjmp .+208 ; 0x1048 <DatenUebertragung+0xda> |
f78: 80 91 8c 01 lds r24, 0x018C |
f7c: 88 23 and r24, r24 |
f7e: 71 f0 breq .+28 ; 0xf9c <DatenUebertragung+0x2e> |
f80: 80 91 00 01 lds r24, 0x0100 |
f84: 88 23 and r24, r24 |
f86: 51 f0 breq .+20 ; 0xf9c <DatenUebertragung+0x2e> |
f88: 2b e0 ldi r18, 0x0B ; 11 |
f8a: 4d e9 ldi r20, 0x9D ; 157 |
f8c: 53 e0 ldi r21, 0x03 ; 3 |
f8e: 60 91 6e 02 lds r22, 0x026E |
f92: 87 e4 ldi r24, 0x47 ; 71 |
f94: 0e 94 cc 06 call 0xd98 ; 0xd98 <SendOutData> |
f98: 10 92 8c 01 sts 0x018C, r1 |
f9c: 80 91 9b 03 lds r24, 0x039B |
fa0: 90 91 9c 03 lds r25, 0x039C |
fa4: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
fa8: 88 23 and r24, r24 |
faa: 21 f4 brne .+8 ; 0xfb4 <DatenUebertragung+0x46> |
fac: 80 91 8e 01 lds r24, 0x018E |
fb0: 88 23 and r24, r24 |
fb2: b1 f0 breq .+44 ; 0xfe0 <DatenUebertragung+0x72> |
fb4: 80 91 00 01 lds r24, 0x0100 |
fb8: 88 23 and r24, r24 |
fba: 91 f0 breq .+36 ; 0xfe0 <DatenUebertragung+0x72> |
fbc: 22 e3 ldi r18, 0x32 ; 50 |
fbe: 48 e4 ldi r20, 0x48 ; 72 |
fc0: 54 e0 ldi r21, 0x04 ; 4 |
fc2: 60 91 6e 02 lds r22, 0x026E |
fc6: 84 e4 ldi r24, 0x44 ; 68 |
fc8: 0e 94 cc 06 call 0xd98 ; 0xd98 <SendOutData> |
fcc: 10 92 8e 01 sts 0x018E, r1 |
fd0: 8a ef ldi r24, 0xFA ; 250 |
fd2: 90 e0 ldi r25, 0x00 ; 0 |
fd4: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
fd8: 90 93 9c 03 sts 0x039C, r25 |
fdc: 80 93 9b 03 sts 0x039B, r24 |
fe0: 80 91 8d 01 lds r24, 0x018D |
fe4: 88 23 and r24, r24 |
fe6: f1 f0 breq .+60 ; 0x1024 <DatenUebertragung+0xb6> |
fe8: 80 91 00 01 lds r24, 0x0100 |
fec: 88 23 and r24, r24 |
fee: d1 f0 breq .+52 ; 0x1024 <DatenUebertragung+0xb6> |
ff0: 0e 94 46 10 call 0x208c ; 0x208c <Menu> |
ff4: 10 92 8d 01 sts 0x018D, r1 |
ff8: 80 91 9a 01 lds r24, 0x019A |
ffc: 8f 5f subi r24, 0xFF ; 255 |
ffe: 80 93 9a 01 sts 0x019A, r24 |
1002: 84 30 cpi r24, 0x04 ; 4 |
1004: 11 f4 brne .+4 ; 0x100a <DatenUebertragung+0x9c> |
1006: 10 92 9a 01 sts 0x019A, r1 |
100a: 80 91 9a 01 lds r24, 0x019A |
100e: 44 e1 ldi r20, 0x14 ; 20 |
1010: 84 9f mul r24, r20 |
1012: a0 01 movw r20, r0 |
1014: 11 24 eor r1, r1 |
1016: 4a 5e subi r20, 0xEA ; 234 |
1018: 5e 4f sbci r21, 0xFE ; 254 |
101a: 24 e1 ldi r18, 0x14 ; 20 |
101c: 60 e0 ldi r22, 0x00 ; 0 |
101e: 80 5d subi r24, 0xD0 ; 208 |
1020: 0e 94 cc 06 call 0xd98 ; 0xd98 <SendOutData> |
1024: 80 91 8f 01 lds r24, 0x018F |
1028: 88 23 and r24, r24 |
102a: 71 f0 breq .+28 ; 0x1048 <DatenUebertragung+0xda> |
102c: 80 91 00 01 lds r24, 0x0100 |
1030: 88 23 and r24, r24 |
1032: 51 f0 breq .+20 ; 0x1048 <DatenUebertragung+0xda> |
1034: 2a e0 ldi r18, 0x0A ; 10 |
1036: 48 ea ldi r20, 0xA8 ; 168 |
1038: 53 e0 ldi r21, 0x03 ; 3 |
103a: 60 91 6e 02 lds r22, 0x026E |
103e: 86 e5 ldi r24, 0x56 ; 86 |
1040: 0e 94 cc 06 call 0xd98 ; 0xd98 <SendOutData> |
1044: 10 92 8f 01 sts 0x018F, r1 |
1048: 08 95 ret |
0000104a <BearbeiteRxDaten>: |
104a: a2 e0 ldi r26, 0x02 ; 2 |
104c: b0 e0 ldi r27, 0x00 ; 0 |
104e: eb e2 ldi r30, 0x2B ; 43 |
1050: f8 e0 ldi r31, 0x08 ; 8 |
1052: 0c 94 75 2e jmp 0x5cea ; 0x5cea <__prologue_saves__+0x1e> |
1056: 80 91 91 01 lds r24, 0x0191 |
105a: 88 23 and r24, r24 |
105c: 09 f4 brne .+2 ; 0x1060 <BearbeiteRxDaten+0x16> |
105e: 8f c0 rjmp .+286 ; 0x117e <__stack+0x7f> |
1060: 8f ef ldi r24, 0xFF ; 255 |
1062: 80 93 01 01 sts 0x0101, r24 |
1066: 80 91 b4 03 lds r24, 0x03B4 |
106a: 99 27 eor r25, r25 |
106c: aa 27 eor r26, r26 |
106e: bb 27 eor r27, r27 |
1070: fc 01 movw r30, r24 |
1072: e3 56 subi r30, 0x63 ; 99 |
1074: f0 40 sbci r31, 0x00 ; 0 |
1076: e4 31 cpi r30, 0x14 ; 20 |
1078: f1 05 cpc r31, r1 |
107a: 08 f0 brcs .+2 ; 0x107e <BearbeiteRxDaten+0x34> |
107c: 7e c0 rjmp .+252 ; 0x117a <__stack+0x7b> |
107e: e8 5c subi r30, 0xC8 ; 200 |
1080: ff 4f sbci r31, 0xFF ; 255 |
1082: 0c 94 9d 2e jmp 0x5d3a ; 0x5d3a <__tablejump2__> |
1086: 20 91 94 01 lds r18, 0x0194 |
108a: 43 e0 ldi r20, 0x03 ; 3 |
108c: 6b e0 ldi r22, 0x0B ; 11 |
108e: 8d e9 ldi r24, 0x9D ; 157 |
1090: 93 e0 ldi r25, 0x03 ; 3 |
1092: 0e 94 32 07 call 0xe64 ; 0xe64 <Decode64> |
1096: 80 91 c6 01 lds r24, 0x01C6 |
109a: 90 91 9f 03 lds r25, 0x039F |
109e: 89 2b or r24, r25 |
10a0: 80 93 c6 01 sts 0x01C6, r24 |
10a4: 81 e0 ldi r24, 0x01 ; 1 |
10a6: 80 93 8e 01 sts 0x018E, r24 |
10aa: 67 c0 rjmp .+206 ; 0x117a <__stack+0x7b> |
10ac: 20 91 94 01 lds r18, 0x0194 |
10b0: 43 e0 ldi r20, 0x03 ; 3 |
10b2: 62 e0 ldi r22, 0x02 ; 2 |
10b4: ce 01 movw r24, r28 |
10b6: 01 96 adiw r24, 0x01 ; 1 |
10b8: 0e 94 32 07 call 0xe64 ; 0xe64 <Decode64> |
10bc: 80 91 c6 01 lds r24, 0x01C6 |
10c0: 99 81 ldd r25, Y+1 ; 0x01 |
10c2: 89 2b or r24, r25 |
10c4: 80 93 c6 01 sts 0x01C6, r24 |
10c8: 81 e0 ldi r24, 0x01 ; 1 |
10ca: 80 93 8d 01 sts 0x018D, r24 |
10ce: 55 c0 rjmp .+170 ; 0x117a <__stack+0x7b> |
10d0: 20 91 94 01 lds r18, 0x0194 |
10d4: 43 e0 ldi r20, 0x03 ; 3 |
10d6: 64 e0 ldi r22, 0x04 ; 4 |
10d8: 86 e9 ldi r24, 0x96 ; 150 |
10da: 91 e0 ldi r25, 0x01 ; 1 |
10dc: 0e 94 32 07 call 0xe64 ; 0xe64 <Decode64> |
10e0: 4c c0 rjmp .+152 ; 0x117a <__stack+0x7b> |
10e2: 81 e0 ldi r24, 0x01 ; 1 |
10e4: 80 93 8f 01 sts 0x018F, r24 |
10e8: 48 c0 rjmp .+144 ; 0x117a <__stack+0x7b> |
10ea: 81 e0 ldi r24, 0x01 ; 1 |
10ec: 80 93 8c 01 sts 0x018C, r24 |
10f0: 44 c0 rjmp .+136 ; 0x117a <__stack+0x7b> |
10f2: 20 91 94 01 lds r18, 0x0194 |
10f6: 43 e0 ldi r20, 0x03 ; 3 |
10f8: 62 e0 ldi r22, 0x02 ; 2 |
10fa: ce 01 movw r24, r28 |
10fc: 01 96 adiw r24, 0x01 ; 1 |
10fe: 0e 94 32 07 call 0xe64 ; 0xe64 <Decode64> |
1102: 89 81 ldd r24, Y+1 ; 0x01 |
1104: 8f 3f cpi r24, 0xFF ; 255 |
1106: 89 f0 breq .+34 ; 0x112a <__stack+0x2b> |
1108: 86 30 cpi r24, 0x06 ; 6 |
110a: 10 f0 brcs .+4 ; 0x1110 <__stack+0x11> |
110c: 85 e0 ldi r24, 0x05 ; 5 |
110e: 89 83 std Y+1, r24 ; 0x01 |
1110: 4a e3 ldi r20, 0x3A ; 58 |
1112: 64 ed ldi r22, 0xD4 ; 212 |
1114: 74 e0 ldi r23, 0x04 ; 4 |
1116: 89 81 ldd r24, Y+1 ; 0x01 |
1118: 0e 94 ca 03 call 0x794 ; 0x794 <ReadParameterSet> |
111c: 89 81 ldd r24, Y+1 ; 0x01 |
111e: 2a e3 ldi r18, 0x3A ; 58 |
1120: 44 ed ldi r20, 0xD4 ; 212 |
1122: 54 e0 ldi r21, 0x04 ; 4 |
1124: 60 91 6e 02 lds r22, 0x026E |
1128: 08 c0 rjmp .+16 ; 0x113a <__stack+0x3b> |
112a: 10 91 6e 02 lds r17, 0x026E |
112e: 0e 94 a9 03 call 0x752 ; 0x752 <GetActiveParamSetNumber> |
1132: 2a e3 ldi r18, 0x3A ; 58 |
1134: 44 ed ldi r20, 0xD4 ; 212 |
1136: 54 e0 ldi r21, 0x04 ; 4 |
1138: 61 2f mov r22, r17 |
113a: 85 5b subi r24, 0xB5 ; 181 |
113c: 0e 94 cc 06 call 0xd98 ; 0xd98 <SendOutData> |
1140: 1c c0 rjmp .+56 ; 0x117a <__stack+0x7b> |
1142: 20 91 94 01 lds r18, 0x0194 |
1146: 43 e0 ldi r20, 0x03 ; 3 |
1148: 6a e3 ldi r22, 0x3A ; 58 |
114a: 84 ed ldi r24, 0xD4 ; 212 |
114c: 94 e0 ldi r25, 0x04 ; 4 |
114e: 0e 94 32 07 call 0xe64 ; 0xe64 <Decode64> |
1152: 80 91 b4 03 lds r24, 0x03B4 |
1156: 4a e3 ldi r20, 0x3A ; 58 |
1158: 64 ed ldi r22, 0xD4 ; 212 |
115a: 74 e0 ldi r23, 0x04 ; 4 |
115c: 8b 56 subi r24, 0x6B ; 107 |
115e: 0e 94 b0 03 call 0x760 ; 0x760 <WriteParameterSet> |
1162: 80 91 b4 03 lds r24, 0x03B4 |
1166: 8b 56 subi r24, 0x6B ; 107 |
1168: a2 e0 ldi r26, 0x02 ; 2 |
116a: b0 e0 ldi r27, 0x00 ; 0 |
116c: 08 2e mov r0, r24 |
116e: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
1172: 0e 94 a9 03 call 0x752 ; 0x752 <GetActiveParamSetNumber> |
1176: 0e 94 22 22 call 0x4444 ; 0x4444 <Piep> |
117a: 10 92 91 01 sts 0x0191, r1 |
117e: e3 e0 ldi r30, 0x03 ; 3 |
1180: ce 5f subi r28, 0xFE ; 254 |
1182: 0c 94 91 2e jmp 0x5d22 ; 0x5d22 <__epilogue_restores__+0x1e> |
00001186 <Putchar>: |
1186: 98 2f mov r25, r24 |
1188: 80 91 7a 04 lds r24, 0x047A |
118c: 81 30 cpi r24, 0x01 ; 1 |
118e: 69 f4 brne .+26 ; 0x11aa <Putchar+0x24> |
1190: 80 91 c5 01 lds r24, 0x01C5 |
1194: e8 2f mov r30, r24 |
1196: ff 27 eor r31, r31 |
1198: ea 5e subi r30, 0xEA ; 234 |
119a: fe 4f sbci r31, 0xFE ; 254 |
119c: 90 83 st Z, r25 |
119e: 8f 5f subi r24, 0xFF ; 255 |
11a0: 80 93 c5 01 sts 0x01C5, r24 |
11a4: 21 e0 ldi r18, 0x01 ; 1 |
11a6: 30 e0 ldi r19, 0x00 ; 0 |
11a8: 05 c0 rjmp .+10 ; 0x11b4 <Putchar+0x2e> |
11aa: 89 2f mov r24, r25 |
11ac: 0e 94 8a 07 call 0xf14 ; 0xf14 <uart_putchar> |
11b0: 28 2f mov r18, r24 |
11b2: 33 27 eor r19, r19 |
11b4: c9 01 movw r24, r18 |
11b6: 08 95 ret |
000011b8 <PAD_0>: |
11b8: 1f 93 push r17 |
11ba: 18 2f mov r17, r24 |
11bc: 04 c0 rjmp .+8 ; 0x11c6 <PAD_0+0xe> |
11be: 80 e3 ldi r24, 0x30 ; 48 |
11c0: 0e 94 c3 08 call 0x1186 ; 0x1186 <Putchar> |
11c4: 11 50 subi r17, 0x01 ; 1 |
11c6: 11 16 cp r1, r17 |
11c8: d4 f3 brlt .-12 ; 0x11be <PAD_0+0x6> |
11ca: 1f 91 pop r17 |
11cc: 08 95 ret |
000011ce <PAD_SP>: |
11ce: 1f 93 push r17 |
11d0: 18 2f mov r17, r24 |
11d2: 04 c0 rjmp .+8 ; 0x11dc <PAD_SP+0xe> |
11d4: 80 e2 ldi r24, 0x20 ; 32 |
11d6: 0e 94 c3 08 call 0x1186 ; 0x1186 <Putchar> |
11da: 11 50 subi r17, 0x01 ; 1 |
11dc: 11 16 cp r1, r17 |
11de: d4 f3 brlt .-12 ; 0x11d4 <PAD_SP+0x6> |
11e0: 1f 91 pop r17 |
11e2: 08 95 ret |
000011e4 <PRINTP>: |
11e4: 0f 93 push r16 |
11e6: 1f 93 push r17 |
11e8: cf 93 push r28 |
11ea: df 93 push r29 |
11ec: 8c 01 movw r16, r24 |
11ee: eb 01 movw r28, r22 |
11f0: 08 c0 rjmp .+16 ; 0x1202 <PRINTP+0x1e> |
11f2: f8 01 movw r30, r16 |
11f4: 0f 5f subi r16, 0xFF ; 255 |
11f6: 1f 4f sbci r17, 0xFF ; 255 |
11f8: e4 91 lpm r30, Z |
11fa: 8e 2f mov r24, r30 |
11fc: 0e 94 c3 08 call 0x1186 ; 0x1186 <Putchar> |
1200: 21 97 sbiw r28, 0x01 ; 1 |
1202: 20 97 sbiw r28, 0x00 ; 0 |
1204: b1 f7 brne .-20 ; 0x11f2 <PRINTP+0xe> |
1206: df 91 pop r29 |
1208: cf 91 pop r28 |
120a: 1f 91 pop r17 |
120c: 0f 91 pop r16 |
120e: 08 95 ret |
00001210 <PRINT>: |
1210: 0f 93 push r16 |
1212: 1f 93 push r17 |
1214: cf 93 push r28 |
1216: df 93 push r29 |
1218: 8c 01 movw r16, r24 |
121a: eb 01 movw r28, r22 |
121c: 06 c0 rjmp .+12 ; 0x122a <PRINT+0x1a> |
121e: f8 01 movw r30, r16 |
1220: 81 91 ld r24, Z+ |
1222: 8f 01 movw r16, r30 |
1224: 0e 94 c3 08 call 0x1186 ; 0x1186 <Putchar> |
1228: 21 97 sbiw r28, 0x01 ; 1 |
122a: 20 97 sbiw r28, 0x00 ; 0 |
122c: c1 f7 brne .-16 ; 0x121e <PRINT+0xe> |
122e: df 91 pop r29 |
1230: cf 91 pop r28 |
1232: 1f 91 pop r17 |
1234: 0f 91 pop r16 |
1236: 08 95 ret |
00001238 <_printf_P>: |
1238: a3 e3 ldi r26, 0x33 ; 51 |
123a: b0 e0 ldi r27, 0x00 ; 0 |
123c: e2 e2 ldi r30, 0x22 ; 34 |
123e: f9 e0 ldi r31, 0x09 ; 9 |
1240: 0c 94 66 2e jmp 0x5ccc ; 0x5ccc <__prologue_saves__> |
1244: 29 96 adiw r28, 0x09 ; 9 |
1246: 8f ad ldd r24, Y+63 ; 0x3f |
1248: 29 97 sbiw r28, 0x09 ; 9 |
124a: 80 93 7a 04 sts 0x047A, r24 |
124e: ce 01 movw r24, r28 |
1250: 85 5b subi r24, 0xB5 ; 181 |
1252: 9f 4f sbci r25, 0xFF ; 255 |
1254: 9d 83 std Y+5, r25 ; 0x05 |
1256: 8c 83 std Y+4, r24 ; 0x04 |
1258: 2b 96 adiw r28, 0x0b ; 11 |
125a: 8e ad ldd r24, Y+62 ; 0x3e |
125c: 9f ad ldd r25, Y+63 ; 0x3f |
125e: 2b 97 sbiw r28, 0x0b ; 11 |
1260: 9f a7 std Y+47, r25 ; 0x2f |
1262: 8e a7 std Y+46, r24 ; 0x2e |
1264: 22 24 eor r2, r2 |
1266: 33 24 eor r3, r3 |
1268: 21 01 movw r4, r2 |
126a: 02 c0 rjmp .+4 ; 0x1270 <_printf_P+0x38> |
126c: 13 01 movw r2, r6 |
126e: 24 01 movw r4, r8 |
1270: 0e a5 ldd r16, Y+46 ; 0x2e |
1272: 1f a5 ldd r17, Y+47 ; 0x2f |
1274: 02 c0 rjmp .+4 ; 0x127a <_printf_P+0x42> |
1276: 0f 5f subi r16, 0xFF ; 255 |
1278: 1f 4f sbci r17, 0xFF ; 255 |
127a: f8 01 movw r30, r16 |
127c: f4 90 lpm r15, Z |
127e: ff 20 and r15, r15 |
1280: 19 f0 breq .+6 ; 0x1288 <_printf_P+0x50> |
1282: f5 e2 ldi r31, 0x25 ; 37 |
1284: ff 16 cp r15, r31 |
1286: b9 f7 brne .-18 ; 0x1276 <_printf_P+0x3e> |
1288: b8 01 movw r22, r16 |
128a: 8e a5 ldd r24, Y+46 ; 0x2e |
128c: 9f a5 ldd r25, Y+47 ; 0x2f |
128e: 68 1b sub r22, r24 |
1290: 79 0b sbc r23, r25 |
1292: 11 f0 breq .+4 ; 0x1298 <_printf_P+0x60> |
1294: 0e 94 f2 08 call 0x11e4 ; 0x11e4 <PRINTP> |
1298: ff 20 and r15, r15 |
129a: 09 f4 brne .+2 ; 0x129e <_printf_P+0x66> |
129c: 42 c2 rjmp .+1156 ; 0x1722 <_printf_P+0x4ea> |
129e: 0f 5f subi r16, 0xFF ; 255 |
12a0: 1f 4f sbci r17, 0xFF ; 255 |
12a2: 1f a7 std Y+47, r17 ; 0x2f |
12a4: 0e a7 std Y+46, r16 ; 0x2e |
12a6: 19 82 std Y+1, r1 ; 0x01 |
12a8: ac 81 ldd r26, Y+4 ; 0x04 |
12aa: bd 81 ldd r27, Y+5 ; 0x05 |
12ac: 1b aa std Y+51, r1 ; 0x33 |
12ae: 1a aa std Y+50, r1 ; 0x32 |
12b0: 9f ef ldi r25, 0xFF ; 255 |
12b2: 99 ab std Y+49, r25 ; 0x31 |
12b4: ee a5 ldd r30, Y+46 ; 0x2e |
12b6: ff a5 ldd r31, Y+47 ; 0x2f |
12b8: cf 01 movw r24, r30 |
12ba: 01 96 adiw r24, 0x01 ; 1 |
12bc: 9f a7 std Y+47, r25 ; 0x2f |
12be: 8e a7 std Y+46, r24 ; 0x2e |
12c0: b4 90 lpm r11, Z |
12c2: 95 e7 ldi r25, 0x75 ; 117 |
12c4: b9 16 cp r11, r25 |
12c6: 21 f0 breq .+8 ; 0x12d0 <_printf_P+0x98> |
12c8: 8b 2d mov r24, r11 |
12ca: 80 62 ori r24, 0x20 ; 32 |
12cc: 88 37 cpi r24, 0x78 ; 120 |
12ce: 89 f4 brne .+34 ; 0x12f2 <_printf_P+0xba> |
12d0: eb a9 ldd r30, Y+51 ; 0x33 |
12d2: e0 ff sbrs r30, 0 |
12d4: 07 c0 rjmp .+14 ; 0x12e4 <_printf_P+0xac> |
12d6: 2d 90 ld r2, X+ |
12d8: 3d 90 ld r3, X+ |
12da: 4d 90 ld r4, X+ |
12dc: 5c 90 ld r5, X |
12de: 13 97 sbiw r26, 0x03 ; 3 |
12e0: 14 96 adiw r26, 0x04 ; 4 |
12e2: 07 c0 rjmp .+14 ; 0x12f2 <_printf_P+0xba> |
12e4: 8d 91 ld r24, X+ |
12e6: 9c 91 ld r25, X |
12e8: 11 97 sbiw r26, 0x01 ; 1 |
12ea: 1c 01 movw r2, r24 |
12ec: 44 24 eor r4, r4 |
12ee: 55 24 eor r5, r5 |
12f0: 12 96 adiw r26, 0x02 ; 2 |
12f2: f0 e2 ldi r31, 0x20 ; 32 |
12f4: bf 16 cp r11, r31 |
12f6: 21 f4 brne .+8 ; 0x1300 <_printf_P+0xc8> |
12f8: 89 81 ldd r24, Y+1 ; 0x01 |
12fa: 88 23 and r24, r24 |
12fc: d9 f6 brne .-74 ; 0x12b4 <_printf_P+0x7c> |
12fe: 85 c0 rjmp .+266 ; 0x140a <_printf_P+0x1d2> |
1300: 83 e2 ldi r24, 0x23 ; 35 |
1302: b8 16 cp r11, r24 |
1304: 09 f4 brne .+2 ; 0x1308 <_printf_P+0xd0> |
1306: 83 c0 rjmp .+262 ; 0x140e <_printf_P+0x1d6> |
1308: 9a e2 ldi r25, 0x2A ; 42 |
130a: b9 16 cp r11, r25 |
130c: 21 f0 breq .+8 ; 0x1316 <_printf_P+0xde> |
130e: ed e2 ldi r30, 0x2D ; 45 |
1310: be 16 cp r11, r30 |
1312: 69 f4 brne .+26 ; 0x132e <_printf_P+0xf6> |
1314: 08 c0 rjmp .+16 ; 0x1326 <_printf_P+0xee> |
1316: fd 01 movw r30, r26 |
1318: 12 96 adiw r26, 0x02 ; 2 |
131a: e0 81 ld r30, Z |
131c: ea ab std Y+50, r30 ; 0x32 |
131e: e7 ff sbrs r30, 7 |
1320: c9 cf rjmp .-110 ; 0x12b4 <_printf_P+0x7c> |
1322: e1 95 neg r30 |
1324: ea ab std Y+50, r30 ; 0x32 |
1326: fb a9 ldd r31, Y+51 ; 0x33 |
1328: f0 61 ori r31, 0x10 ; 16 |
132a: ff 7d andi r31, 0xDF ; 223 |
132c: 72 c0 rjmp .+228 ; 0x1412 <_printf_P+0x1da> |
132e: 8b e2 ldi r24, 0x2B ; 43 |
1330: b8 16 cp r11, r24 |
1332: 09 f4 brne .+2 ; 0x1336 <_printf_P+0xfe> |
1334: 6a c0 rjmp .+212 ; 0x140a <_printf_P+0x1d2> |
1336: 9e e2 ldi r25, 0x2E ; 46 |
1338: b9 16 cp r11, r25 |
133a: b1 f5 brne .+108 ; 0x13a8 <_printf_P+0x170> |
133c: 2e a5 ldd r18, Y+46 ; 0x2e |
133e: 3f a5 ldd r19, Y+47 ; 0x2f |
1340: 2f 5f subi r18, 0xFF ; 255 |
1342: 3f 4f sbci r19, 0xFF ; 255 |
1344: ee a5 ldd r30, Y+46 ; 0x2e |
1346: ff a5 ldd r31, Y+47 ; 0x2f |
1348: 84 91 lpm r24, Z |
134a: 8a 32 cpi r24, 0x2A ; 42 |
134c: 21 f0 breq .+8 ; 0x1356 <_printf_P+0x11e> |
134e: b8 2e mov r11, r24 |
1350: 20 e0 ldi r18, 0x00 ; 0 |
1352: 30 e0 ldi r19, 0x00 ; 0 |
1354: 1b c0 rjmp .+54 ; 0x138c <_printf_P+0x154> |
1356: fd 01 movw r30, r26 |
1358: 12 96 adiw r26, 0x02 ; 2 |
135a: 40 81 ld r20, Z |
135c: 51 81 ldd r21, Z+1 ; 0x01 |
135e: 57 ff sbrs r21, 7 |
1360: 02 c0 rjmp .+4 ; 0x1366 <_printf_P+0x12e> |
1362: 4f ef ldi r20, 0xFF ; 255 |
1364: 5f ef ldi r21, 0xFF ; 255 |
1366: 49 ab std Y+49, r20 ; 0x31 |
1368: 3f a7 std Y+47, r19 ; 0x2f |
136a: 2e a7 std Y+46, r18 ; 0x2e |
136c: a3 cf rjmp .-186 ; 0x12b4 <_printf_P+0x7c> |
136e: c9 01 movw r24, r18 |
1370: 03 e0 ldi r16, 0x03 ; 3 |
1372: 88 0f add r24, r24 |
1374: 99 1f adc r25, r25 |
1376: 0a 95 dec r16 |
1378: e1 f7 brne .-8 ; 0x1372 <_printf_P+0x13a> |
137a: 22 0f add r18, r18 |
137c: 33 1f adc r19, r19 |
137e: 28 0f add r18, r24 |
1380: 39 1f adc r19, r25 |
1382: 2b 0d add r18, r11 |
1384: 31 1d adc r19, r1 |
1386: 20 53 subi r18, 0x30 ; 48 |
1388: 30 40 sbci r19, 0x00 ; 0 |
138a: b4 90 lpm r11, Z |
138c: 31 96 adiw r30, 0x01 ; 1 |
138e: 8b 2d mov r24, r11 |
1390: 80 53 subi r24, 0x30 ; 48 |
1392: 8a 30 cpi r24, 0x0A ; 10 |
1394: 60 f3 brcs .-40 ; 0x136e <_printf_P+0x136> |
1396: ff a7 std Y+47, r31 ; 0x2f |
1398: ee a7 std Y+46, r30 ; 0x2e |
139a: a9 01 movw r20, r18 |
139c: 37 ff sbrs r19, 7 |
139e: 02 c0 rjmp .+4 ; 0x13a4 <_printf_P+0x16c> |
13a0: 4f ef ldi r20, 0xFF ; 255 |
13a2: 5f ef ldi r21, 0xFF ; 255 |
13a4: 49 ab std Y+49, r20 ; 0x31 |
13a6: 8d cf rjmp .-230 ; 0x12c2 <_printf_P+0x8a> |
13a8: f0 e3 ldi r31, 0x30 ; 48 |
13aa: bf 16 cp r11, r31 |
13ac: 31 f4 brne .+12 ; 0x13ba <_printf_P+0x182> |
13ae: 8b a9 ldd r24, Y+51 ; 0x33 |
13b0: 84 fd sbrc r24, 4 |
13b2: 80 cf rjmp .-256 ; 0x12b4 <_printf_P+0x7c> |
13b4: 80 62 ori r24, 0x20 ; 32 |
13b6: 8b ab std Y+51, r24 ; 0x33 |
13b8: 7d cf rjmp .-262 ; 0x12b4 <_printf_P+0x7c> |
13ba: 8b 2d mov r24, r11 |
13bc: 81 53 subi r24, 0x31 ; 49 |
13be: 89 30 cpi r24, 0x09 ; 9 |
13c0: e8 f4 brcc .+58 ; 0x13fc <_printf_P+0x1c4> |
13c2: 20 e0 ldi r18, 0x00 ; 0 |
13c4: 30 e0 ldi r19, 0x00 ; 0 |
13c6: c9 01 movw r24, r18 |
13c8: f3 e0 ldi r31, 0x03 ; 3 |
13ca: 88 0f add r24, r24 |
13cc: 99 1f adc r25, r25 |
13ce: fa 95 dec r31 |
13d0: e1 f7 brne .-8 ; 0x13ca <_printf_P+0x192> |
13d2: 22 0f add r18, r18 |
13d4: 33 1f adc r19, r19 |
13d6: 28 0f add r18, r24 |
13d8: 39 1f adc r19, r25 |
13da: 2b 0d add r18, r11 |
13dc: 31 1d adc r19, r1 |
13de: 20 53 subi r18, 0x30 ; 48 |
13e0: 30 40 sbci r19, 0x00 ; 0 |
13e2: ee a5 ldd r30, Y+46 ; 0x2e |
13e4: ff a5 ldd r31, Y+47 ; 0x2f |
13e6: cf 01 movw r24, r30 |
13e8: 01 96 adiw r24, 0x01 ; 1 |
13ea: 9f a7 std Y+47, r25 ; 0x2f |
13ec: 8e a7 std Y+46, r24 ; 0x2e |
13ee: b4 90 lpm r11, Z |
13f0: 8b 2d mov r24, r11 |
13f2: 80 53 subi r24, 0x30 ; 48 |
13f4: 8a 30 cpi r24, 0x0A ; 10 |
13f6: 38 f3 brcs .-50 ; 0x13c6 <_printf_P+0x18e> |
13f8: 2a ab std Y+50, r18 ; 0x32 |
13fa: 63 cf rjmp .-314 ; 0x12c2 <_printf_P+0x8a> |
13fc: 98 e6 ldi r25, 0x68 ; 104 |
13fe: b9 16 cp r11, r25 |
1400: 51 f4 brne .+20 ; 0x1416 <_printf_P+0x1de> |
1402: eb a9 ldd r30, Y+51 ; 0x33 |
1404: e4 60 ori r30, 0x04 ; 4 |
1406: eb ab std Y+51, r30 ; 0x33 |
1408: 55 cf rjmp .-342 ; 0x12b4 <_printf_P+0x7c> |
140a: b9 82 std Y+1, r11 ; 0x01 |
140c: 53 cf rjmp .-346 ; 0x12b4 <_printf_P+0x7c> |
140e: fb a9 ldd r31, Y+51 ; 0x33 |
1410: f8 60 ori r31, 0x08 ; 8 |
1412: fb ab std Y+51, r31 ; 0x33 |
1414: 4f cf rjmp .-354 ; 0x12b4 <_printf_P+0x7c> |
1416: 8c e6 ldi r24, 0x6C ; 108 |
1418: b8 16 cp r11, r24 |
141a: 21 f4 brne .+8 ; 0x1424 <_printf_P+0x1ec> |
141c: 9b a9 ldd r25, Y+51 ; 0x33 |
141e: 91 60 ori r25, 0x01 ; 1 |
1420: 9b ab std Y+51, r25 ; 0x33 |
1422: 48 cf rjmp .-368 ; 0x12b4 <_printf_P+0x7c> |
1424: bd 83 std Y+5, r27 ; 0x05 |
1426: ac 83 std Y+4, r26 ; 0x04 |
1428: e3 e6 ldi r30, 0x63 ; 99 |
142a: be 16 cp r11, r30 |
142c: 39 f4 brne .+14 ; 0x143c <_printf_P+0x204> |
142e: 12 96 adiw r26, 0x02 ; 2 |
1430: bd 83 std Y+5, r27 ; 0x05 |
1432: ac 83 std Y+4, r26 ; 0x04 |
1434: 12 97 sbiw r26, 0x02 ; 2 |
1436: 8c 91 ld r24, X |
1438: 8e 83 std Y+6, r24 ; 0x06 |
143a: 18 c1 rjmp .+560 ; 0x166c <_printf_P+0x434> |
143c: f4 e4 ldi r31, 0x44 ; 68 |
143e: bf 16 cp r11, r31 |
1440: 39 f0 breq .+14 ; 0x1450 <_printf_P+0x218> |
1442: 84 e6 ldi r24, 0x64 ; 100 |
1444: b8 16 cp r11, r24 |
1446: 39 f0 breq .+14 ; 0x1456 <_printf_P+0x21e> |
1448: 99 e6 ldi r25, 0x69 ; 105 |
144a: b9 16 cp r11, r25 |
144c: 59 f5 brne .+86 ; 0x14a4 <_printf_P+0x26c> |
144e: 03 c0 rjmp .+6 ; 0x1456 <_printf_P+0x21e> |
1450: eb a9 ldd r30, Y+51 ; 0x33 |
1452: e1 60 ori r30, 0x01 ; 1 |
1454: eb ab std Y+51, r30 ; 0x33 |
1456: fb a9 ldd r31, Y+51 ; 0x33 |
1458: f0 ff sbrs r31, 0 |
145a: 08 c0 rjmp .+16 ; 0x146c <_printf_P+0x234> |
145c: 14 96 adiw r26, 0x04 ; 4 |
145e: bd 83 std Y+5, r27 ; 0x05 |
1460: ac 83 std Y+4, r26 ; 0x04 |
1462: 5e 90 ld r5, -X |
1464: 4e 90 ld r4, -X |
1466: 3e 90 ld r3, -X |
1468: 2e 90 ld r2, -X |
146a: 0a c0 rjmp .+20 ; 0x1480 <_printf_P+0x248> |
146c: 12 96 adiw r26, 0x02 ; 2 |
146e: bd 83 std Y+5, r27 ; 0x05 |
1470: ac 83 std Y+4, r26 ; 0x04 |
1472: 9e 91 ld r25, -X |
1474: 8e 91 ld r24, -X |
1476: 1c 01 movw r2, r24 |
1478: 44 24 eor r4, r4 |
147a: 37 fc sbrc r3, 7 |
147c: 40 94 com r4 |
147e: 54 2c mov r5, r4 |
1480: 57 fc sbrc r5, 7 |
1482: 03 c0 rjmp .+6 ; 0x148a <_printf_P+0x252> |
1484: 8a e0 ldi r24, 0x0A ; 10 |
1486: 88 ab std Y+48, r24 ; 0x30 |
1488: 92 c0 rjmp .+292 ; 0x15ae <_printf_P+0x376> |
148a: 50 94 com r5 |
148c: 40 94 com r4 |
148e: 30 94 com r3 |
1490: 20 94 com r2 |
1492: 21 1c adc r2, r1 |
1494: 31 1c adc r3, r1 |
1496: 41 1c adc r4, r1 |
1498: 51 1c adc r5, r1 |
149a: 8d e2 ldi r24, 0x2D ; 45 |
149c: 89 83 std Y+1, r24 ; 0x01 |
149e: 9a e0 ldi r25, 0x0A ; 10 |
14a0: 98 ab std Y+48, r25 ; 0x30 |
14a2: 85 c0 rjmp .+266 ; 0x15ae <_printf_P+0x376> |
14a4: ef e4 ldi r30, 0x4F ; 79 |
14a6: be 16 cp r11, r30 |
14a8: 29 f0 breq .+10 ; 0x14b4 <_printf_P+0x27c> |
14aa: ff e6 ldi r31, 0x6F ; 111 |
14ac: bf 16 cp r11, r31 |
14ae: 39 f4 brne .+14 ; 0x14be <_printf_P+0x286> |
14b0: 88 e0 ldi r24, 0x08 ; 8 |
14b2: 61 c0 rjmp .+194 ; 0x1576 <_printf_P+0x33e> |
14b4: 9b a9 ldd r25, Y+51 ; 0x33 |
14b6: 91 60 ori r25, 0x01 ; 1 |
14b8: 9b ab std Y+51, r25 ; 0x33 |
14ba: e8 e0 ldi r30, 0x08 ; 8 |
14bc: 56 c0 rjmp .+172 ; 0x156a <_printf_P+0x332> |
14be: f0 e7 ldi r31, 0x70 ; 112 |
14c0: bf 16 cp r11, r31 |
14c2: 71 f4 brne .+28 ; 0x14e0 <_printf_P+0x2a8> |
14c4: 12 96 adiw r26, 0x02 ; 2 |
14c6: bd 83 std Y+5, r27 ; 0x05 |
14c8: ac 83 std Y+4, r26 ; 0x04 |
14ca: 9e 91 ld r25, -X |
14cc: 8e 91 ld r24, -X |
14ce: 1c 01 movw r2, r24 |
14d0: 44 24 eor r4, r4 |
14d2: 55 24 eor r5, r5 |
14d4: 8b a9 ldd r24, Y+51 ; 0x33 |
14d6: 80 64 ori r24, 0x40 ; 64 |
14d8: 8b ab std Y+51, r24 ; 0x33 |
14da: 78 e7 ldi r23, 0x78 ; 120 |
14dc: b7 2e mov r11, r23 |
14de: 5e c0 rjmp .+188 ; 0x159c <_printf_P+0x364> |
14e0: e3 e7 ldi r30, 0x73 ; 115 |
14e2: be 16 cp r11, r30 |
14e4: d9 f5 brne .+118 ; 0x155c <_printf_P+0x324> |
14e6: 12 96 adiw r26, 0x02 ; 2 |
14e8: bd 83 std Y+5, r27 ; 0x05 |
14ea: ac 83 std Y+4, r26 ; 0x04 |
14ec: de 90 ld r13, -X |
14ee: ce 90 ld r12, -X |
14f0: c1 14 cp r12, r1 |
14f2: d1 04 cpc r13, r1 |
14f4: 89 f4 brne .+34 ; 0x1518 <_printf_P+0x2e0> |
14f6: 88 e2 ldi r24, 0x28 ; 40 |
14f8: 8e 83 std Y+6, r24 ; 0x06 |
14fa: 8e e6 ldi r24, 0x6E ; 110 |
14fc: 8f 83 std Y+7, r24 ; 0x07 |
14fe: 85 e7 ldi r24, 0x75 ; 117 |
1500: 88 87 std Y+8, r24 ; 0x08 |
1502: 8c e6 ldi r24, 0x6C ; 108 |
1504: 89 87 std Y+9, r24 ; 0x09 |
1506: 8a 87 std Y+10, r24 ; 0x0a |
1508: 89 e2 ldi r24, 0x29 ; 41 |
150a: 8b 87 std Y+11, r24 ; 0x0b |
150c: 1c 86 std Y+12, r1 ; 0x0c |
150e: 66 e0 ldi r22, 0x06 ; 6 |
1510: c6 2e mov r12, r22 |
1512: d1 2c mov r13, r1 |
1514: cc 0e add r12, r28 |
1516: dd 1e adc r13, r29 |
1518: f9 a9 ldd r31, Y+49 ; 0x31 |
151a: f7 fd sbrc r31, 7 |
151c: 13 c0 rjmp .+38 ; 0x1544 <_printf_P+0x30c> |
151e: 4f 2f mov r20, r31 |
1520: 55 27 eor r21, r21 |
1522: 47 fd sbrc r20, 7 |
1524: 50 95 com r21 |
1526: 60 e0 ldi r22, 0x00 ; 0 |
1528: 70 e0 ldi r23, 0x00 ; 0 |
152a: c6 01 movw r24, r12 |
152c: 0e 94 6e 2c call 0x58dc ; 0x58dc <memchr> |
1530: 00 97 sbiw r24, 0x00 ; 0 |
1532: 11 f4 brne .+4 ; 0x1538 <_printf_P+0x300> |
1534: 19 a9 ldd r17, Y+49 ; 0x31 |
1536: 0d c0 rjmp .+26 ; 0x1552 <_printf_P+0x31a> |
1538: 8c 19 sub r24, r12 |
153a: 19 a9 ldd r17, Y+49 ; 0x31 |
153c: 81 17 cp r24, r17 |
153e: 4c f4 brge .+18 ; 0x1552 <_printf_P+0x31a> |
1540: 18 2f mov r17, r24 |
1542: 07 c0 rjmp .+14 ; 0x1552 <_printf_P+0x31a> |
1544: f6 01 movw r30, r12 |
1546: 01 90 ld r0, Z+ |
1548: 00 20 and r0, r0 |
154a: e9 f7 brne .-6 ; 0x1546 <_printf_P+0x30e> |
154c: 31 97 sbiw r30, 0x01 ; 1 |
154e: 1e 2f mov r17, r30 |
1550: 1c 19 sub r17, r12 |
1552: 19 82 std Y+1, r1 ; 0x01 |
1554: 42 01 movw r8, r4 |
1556: 31 01 movw r6, r2 |
1558: 40 e0 ldi r20, 0x00 ; 0 |
155a: 94 c0 rjmp .+296 ; 0x1684 <_printf_P+0x44c> |
155c: 85 e5 ldi r24, 0x55 ; 85 |
155e: b8 16 cp r11, r24 |
1560: 31 f0 breq .+12 ; 0x156e <_printf_P+0x336> |
1562: 95 e7 ldi r25, 0x75 ; 117 |
1564: b9 16 cp r11, r25 |
1566: 49 f4 brne .+18 ; 0x157a <_printf_P+0x342> |
1568: ea e0 ldi r30, 0x0A ; 10 |
156a: e8 ab std Y+48, r30 ; 0x30 |
156c: 1f c0 rjmp .+62 ; 0x15ac <_printf_P+0x374> |
156e: fb a9 ldd r31, Y+51 ; 0x33 |
1570: f1 60 ori r31, 0x01 ; 1 |
1572: fb ab std Y+51, r31 ; 0x33 |
1574: 8a e0 ldi r24, 0x0A ; 10 |
1576: 88 ab std Y+48, r24 ; 0x30 |
1578: 19 c0 rjmp .+50 ; 0x15ac <_printf_P+0x374> |
157a: 98 e5 ldi r25, 0x58 ; 88 |
157c: b9 16 cp r11, r25 |
157e: 21 f0 breq .+8 ; 0x1588 <_printf_P+0x350> |
1580: e8 e7 ldi r30, 0x78 ; 120 |
1582: be 16 cp r11, r30 |
1584: 09 f0 breq .+2 ; 0x1588 <_printf_P+0x350> |
1586: 6e c0 rjmp .+220 ; 0x1664 <_printf_P+0x42c> |
1588: fb a9 ldd r31, Y+51 ; 0x33 |
158a: f3 fd sbrc r31, 3 |
158c: 02 c0 rjmp .+4 ; 0x1592 <_printf_P+0x35a> |
158e: 80 e1 ldi r24, 0x10 ; 16 |
1590: f2 cf rjmp .-28 ; 0x1576 <_printf_P+0x33e> |
1592: 21 14 cp r2, r1 |
1594: 31 04 cpc r3, r1 |
1596: 41 04 cpc r4, r1 |
1598: 51 04 cpc r5, r1 |
159a: 19 f4 brne .+6 ; 0x15a2 <_printf_P+0x36a> |
159c: 90 e1 ldi r25, 0x10 ; 16 |
159e: 98 ab std Y+48, r25 ; 0x30 |
15a0: 05 c0 rjmp .+10 ; 0x15ac <_printf_P+0x374> |
15a2: eb a9 ldd r30, Y+51 ; 0x33 |
15a4: e0 64 ori r30, 0x40 ; 64 |
15a6: eb ab std Y+51, r30 ; 0x33 |
15a8: f0 e1 ldi r31, 0x10 ; 16 |
15aa: f8 ab std Y+48, r31 ; 0x30 |
15ac: 19 82 std Y+1, r1 ; 0x01 |
15ae: 89 a9 ldd r24, Y+49 ; 0x31 |
15b0: 87 fd sbrc r24, 7 |
15b2: 03 c0 rjmp .+6 ; 0x15ba <_printf_P+0x382> |
15b4: 9b a9 ldd r25, Y+51 ; 0x33 |
15b6: 9f 7d andi r25, 0xDF ; 223 |
15b8: 9b ab std Y+51, r25 ; 0x33 |
15ba: 21 14 cp r2, r1 |
15bc: 31 04 cpc r3, r1 |
15be: 41 04 cpc r4, r1 |
15c0: 51 04 cpc r5, r1 |
15c2: 61 f4 brne .+24 ; 0x15dc <_printf_P+0x3a4> |
15c4: e9 a9 ldd r30, Y+49 ; 0x31 |
15c6: ee 23 and r30, r30 |
15c8: 49 f4 brne .+18 ; 0x15dc <_printf_P+0x3a4> |
15ca: 66 24 eor r6, r6 |
15cc: 77 24 eor r7, r7 |
15ce: 43 01 movw r8, r6 |
15d0: 5e e2 ldi r21, 0x2E ; 46 |
15d2: c5 2e mov r12, r21 |
15d4: d1 2c mov r13, r1 |
15d6: cc 0e add r12, r28 |
15d8: dd 1e adc r13, r29 |
15da: 3e c0 rjmp .+124 ; 0x1658 <_printf_P+0x420> |
15dc: 4e e2 ldi r20, 0x2E ; 46 |
15de: c4 2e mov r12, r20 |
15e0: d1 2c mov r13, r1 |
15e2: cc 0e add r12, r28 |
15e4: dd 1e adc r13, r29 |
15e6: f8 a9 ldd r31, Y+48 ; 0x30 |
15e8: ef 2e mov r14, r31 |
15ea: ff 24 eor r15, r15 |
15ec: 00 27 eor r16, r16 |
15ee: 11 27 eor r17, r17 |
15f0: c2 01 movw r24, r4 |
15f2: b1 01 movw r22, r2 |
15f4: a8 01 movw r20, r16 |
15f6: 97 01 movw r18, r14 |
15f8: 0e 94 29 2e call 0x5c52 ; 0x5c52 <__udivmodsi4> |
15fc: 6a 30 cpi r22, 0x0A ; 10 |
15fe: 20 f4 brcc .+8 ; 0x1608 <_printf_P+0x3d0> |
1600: 30 e3 ldi r19, 0x30 ; 48 |
1602: a3 2e mov r10, r19 |
1604: a6 0e add r10, r22 |
1606: 08 c0 rjmp .+16 ; 0x1618 <_printf_P+0x3e0> |
1608: 27 e5 ldi r18, 0x57 ; 87 |
160a: a2 2e mov r10, r18 |
160c: a6 0e add r10, r22 |
160e: 88 e5 ldi r24, 0x58 ; 88 |
1610: b8 16 cp r11, r24 |
1612: 11 f4 brne .+4 ; 0x1618 <_printf_P+0x3e0> |
1614: 9f ed ldi r25, 0xDF ; 223 |
1616: a9 22 and r10, r25 |
1618: f6 01 movw r30, r12 |
161a: a2 92 st -Z, r10 |
161c: 6f 01 movw r12, r30 |
161e: c2 01 movw r24, r4 |
1620: b1 01 movw r22, r2 |
1622: a8 01 movw r20, r16 |
1624: 97 01 movw r18, r14 |
1626: 0e 94 29 2e call 0x5c52 ; 0x5c52 <__udivmodsi4> |
162a: 39 01 movw r6, r18 |
162c: 4a 01 movw r8, r20 |
162e: 2e 14 cp r2, r14 |
1630: 3f 04 cpc r3, r15 |
1632: 40 06 cpc r4, r16 |
1634: 51 06 cpc r5, r17 |
1636: 18 f0 brcs .+6 ; 0x163e <_printf_P+0x406> |
1638: 19 01 movw r2, r18 |
163a: 2a 01 movw r4, r20 |
163c: d9 cf rjmp .-78 ; 0x15f0 <_printf_P+0x3b8> |
163e: f8 a9 ldd r31, Y+48 ; 0x30 |
1640: f8 30 cpi r31, 0x08 ; 8 |
1642: 51 f4 brne .+20 ; 0x1658 <_printf_P+0x420> |
1644: 8b a9 ldd r24, Y+51 ; 0x33 |
1646: 83 ff sbrs r24, 3 |
1648: 07 c0 rjmp .+14 ; 0x1658 <_printf_P+0x420> |
164a: 90 e3 ldi r25, 0x30 ; 48 |
164c: a9 16 cp r10, r25 |
164e: 21 f0 breq .+8 ; 0x1658 <_printf_P+0x420> |
1650: 80 e3 ldi r24, 0x30 ; 48 |
1652: f6 01 movw r30, r12 |
1654: 82 93 st -Z, r24 |
1656: 6f 01 movw r12, r30 |
1658: ce 01 movw r24, r28 |
165a: 8c 19 sub r24, r12 |
165c: 18 2f mov r17, r24 |
165e: 12 5d subi r17, 0xD2 ; 210 |
1660: 49 a9 ldd r20, Y+49 ; 0x31 |
1662: 10 c0 rjmp .+32 ; 0x1684 <_printf_P+0x44c> |
1664: bb 20 and r11, r11 |
1666: 09 f4 brne .+2 ; 0x166a <_printf_P+0x432> |
1668: 5c c0 rjmp .+184 ; 0x1722 <_printf_P+0x4ea> |
166a: be 82 std Y+6, r11 ; 0x06 |
166c: 19 82 std Y+1, r1 ; 0x01 |
166e: 42 01 movw r8, r4 |
1670: 31 01 movw r6, r2 |
1672: 00 e0 ldi r16, 0x00 ; 0 |
1674: 96 e0 ldi r25, 0x06 ; 6 |
1676: c9 2e mov r12, r25 |
1678: d1 2c mov r13, r1 |
167a: cc 0e add r12, r28 |
167c: dd 1e adc r13, r29 |
167e: 11 e0 ldi r17, 0x01 ; 1 |
1680: 21 e0 ldi r18, 0x01 ; 1 |
1682: 05 c0 rjmp .+10 ; 0x168e <_printf_P+0x456> |
1684: 21 2f mov r18, r17 |
1686: 04 2f mov r16, r20 |
1688: 01 1b sub r16, r17 |
168a: 07 fd sbrc r16, 7 |
168c: 00 e0 ldi r16, 0x00 ; 0 |
168e: 89 81 ldd r24, Y+1 ; 0x01 |
1690: 88 23 and r24, r24 |
1692: 19 f0 breq .+6 ; 0x169a <_printf_P+0x462> |
1694: 81 2f mov r24, r17 |
1696: 8f 5f subi r24, 0xFF ; 255 |
1698: 07 c0 rjmp .+14 ; 0x16a8 <_printf_P+0x470> |
169a: 9b a9 ldd r25, Y+51 ; 0x33 |
169c: 96 fd sbrc r25, 6 |
169e: 02 c0 rjmp .+4 ; 0x16a4 <_printf_P+0x46c> |
16a0: 81 2f mov r24, r17 |
16a2: 02 c0 rjmp .+4 ; 0x16a8 <_printf_P+0x470> |
16a4: 82 2f mov r24, r18 |
16a6: 8e 5f subi r24, 0xFE ; 254 |
16a8: a8 2e mov r10, r24 |
16aa: a0 0e add r10, r16 |
16ac: eb a9 ldd r30, Y+51 ; 0x33 |
16ae: ee 2e mov r14, r30 |
16b0: ff 24 eor r15, r15 |
16b2: 80 e3 ldi r24, 0x30 ; 48 |
16b4: 48 2e mov r4, r24 |
16b6: 51 2c mov r5, r1 |
16b8: 4e 20 and r4, r14 |
16ba: 5f 20 and r5, r15 |
16bc: 41 14 cp r4, r1 |
16be: 51 04 cpc r5, r1 |
16c0: 21 f4 brne .+8 ; 0x16ca <_printf_P+0x492> |
16c2: 8a a9 ldd r24, Y+50 ; 0x32 |
16c4: 8a 19 sub r24, r10 |
16c6: 0e 94 e7 08 call 0x11ce ; 0x11ce <PAD_SP> |
16ca: 89 81 ldd r24, Y+1 ; 0x01 |
16cc: 88 23 and r24, r24 |
16ce: 29 f0 breq .+10 ; 0x16da <_printf_P+0x4a2> |
16d0: 61 e0 ldi r22, 0x01 ; 1 |
16d2: 70 e0 ldi r23, 0x00 ; 0 |
16d4: ce 01 movw r24, r28 |
16d6: 01 96 adiw r24, 0x01 ; 1 |
16d8: 09 c0 rjmp .+18 ; 0x16ec <_printf_P+0x4b4> |
16da: e6 fe sbrs r14, 6 |
16dc: 09 c0 rjmp .+18 ; 0x16f0 <_printf_P+0x4b8> |
16de: 80 e3 ldi r24, 0x30 ; 48 |
16e0: 8a 83 std Y+2, r24 ; 0x02 |
16e2: bb 82 std Y+3, r11 ; 0x03 |
16e4: 62 e0 ldi r22, 0x02 ; 2 |
16e6: 70 e0 ldi r23, 0x00 ; 0 |
16e8: ce 01 movw r24, r28 |
16ea: 02 96 adiw r24, 0x02 ; 2 |
16ec: 0e 94 08 09 call 0x1210 ; 0x1210 <PRINT> |
16f0: f0 e2 ldi r31, 0x20 ; 32 |
16f2: 4f 16 cp r4, r31 |
16f4: 51 04 cpc r5, r1 |
16f6: 21 f4 brne .+8 ; 0x1700 <_printf_P+0x4c8> |
16f8: 8a a9 ldd r24, Y+50 ; 0x32 |
16fa: 8a 19 sub r24, r10 |
16fc: 0e 94 dc 08 call 0x11b8 ; 0x11b8 <PAD_0> |
1700: 80 2f mov r24, r16 |
1702: 0e 94 dc 08 call 0x11b8 ; 0x11b8 <PAD_0> |
1706: 61 2f mov r22, r17 |
1708: 77 27 eor r23, r23 |
170a: 67 fd sbrc r22, 7 |
170c: 70 95 com r23 |
170e: c6 01 movw r24, r12 |
1710: 0e 94 08 09 call 0x1210 ; 0x1210 <PRINT> |
1714: e4 fe sbrs r14, 4 |
1716: aa cd rjmp .-1196 ; 0x126c <_printf_P+0x34> |
1718: 8a a9 ldd r24, Y+50 ; 0x32 |
171a: 8a 19 sub r24, r10 |
171c: 0e 94 e7 08 call 0x11ce ; 0x11ce <PAD_SP> |
1720: a5 cd rjmp .-1206 ; 0x126c <_printf_P+0x34> |
1722: e2 e1 ldi r30, 0x12 ; 18 |
1724: cd 5c subi r28, 0xCD ; 205 |
1726: 0c 94 82 2e jmp 0x5d04 ; 0x5d04 <__epilogue_restores__> |
0000172a <Timer_Init>: |
172a: 82 e0 ldi r24, 0x02 ; 2 |
172c: 85 bd out 0x25, r24 ; 37 |
172e: 83 ea ldi r24, 0xA3 ; 163 |
1730: 84 bd out 0x24, r24 ; 36 |
1732: 17 bc out 0x27, r1 ; 39 |
1734: 88 e7 ldi r24, 0x78 ; 120 |
1736: 88 bd out 0x28, r24 ; 40 |
1738: 83 ec ldi r24, 0xC3 ; 195 |
173a: 80 93 b0 00 sts 0x00B0, r24 |
173e: 86 e0 ldi r24, 0x06 ; 6 |
1740: 80 93 b1 00 sts 0x00B1, r24 |
1744: e0 e7 ldi r30, 0x70 ; 112 |
1746: f0 e0 ldi r31, 0x00 ; 0 |
1748: 80 81 ld r24, Z |
174a: 82 60 ori r24, 0x02 ; 2 |
174c: 80 83 st Z, r24 |
174e: ee e6 ldi r30, 0x6E ; 110 |
1750: f0 e0 ldi r31, 0x00 ; 0 |
1752: 80 81 ld r24, Z |
1754: 81 60 ori r24, 0x01 ; 1 |
1756: 80 83 st Z, r24 |
1758: 8a e0 ldi r24, 0x0A ; 10 |
175a: 80 93 b3 00 sts 0x00B3, r24 |
175e: 10 92 b2 00 sts 0x00B2, r1 |
1762: 08 95 ret |
00001764 <SetDelay>: |
1764: 20 91 a3 01 lds r18, 0x01A3 |
1768: 30 91 a4 01 lds r19, 0x01A4 |
176c: 2f 5f subi r18, 0xFF ; 255 |
176e: 3f 4f sbci r19, 0xFF ; 255 |
1770: 82 0f add r24, r18 |
1772: 93 1f adc r25, r19 |
1774: 08 95 ret |
00001776 <CheckDelay>: |
1776: 20 91 a3 01 lds r18, 0x01A3 |
177a: 30 91 a4 01 lds r19, 0x01A4 |
177e: 82 1b sub r24, r18 |
1780: 93 0b sbc r25, r19 |
1782: 89 2f mov r24, r25 |
1784: 99 27 eor r25, r25 |
1786: 86 95 lsr r24 |
1788: 80 74 andi r24, 0x40 ; 64 |
178a: 99 27 eor r25, r25 |
178c: 08 95 ret |
0000178e <__vector_9>: |
178e: 1f 92 push r1 |
1790: 0f 92 push r0 |
1792: 0f b6 in r0, 0x3f ; 63 |
1794: 0f 92 push r0 |
1796: 11 24 eor r1, r1 |
1798: ef 92 push r14 |
179a: ff 92 push r15 |
179c: 0f 93 push r16 |
179e: 1f 93 push r17 |
17a0: 2f 93 push r18 |
17a2: 3f 93 push r19 |
17a4: 4f 93 push r20 |
17a6: 5f 93 push r21 |
17a8: 6f 93 push r22 |
17aa: 7f 93 push r23 |
17ac: 8f 93 push r24 |
17ae: 9f 93 push r25 |
17b0: af 93 push r26 |
17b2: bf 93 push r27 |
17b4: cf 93 push r28 |
17b6: df 93 push r29 |
17b8: ef 93 push r30 |
17ba: ff 93 push r31 |
17bc: 80 91 02 01 lds r24, 0x0102 |
17c0: 81 50 subi r24, 0x01 ; 1 |
17c2: 80 93 02 01 sts 0x0102, r24 |
17c6: 8f 3f cpi r24, 0xFF ; 255 |
17c8: 09 f0 breq .+2 ; 0x17cc <__vector_9+0x3e> |
17ca: 69 c0 rjmp .+210 ; 0x189e <__vector_9+0x110> |
17cc: 83 e8 ldi r24, 0x83 ; 131 |
17ce: 80 93 b0 00 sts 0x00B0, r24 |
17d2: 80 91 89 01 lds r24, 0x0189 |
17d6: c8 2f mov r28, r24 |
17d8: dd 27 eor r29, r29 |
17da: d0 93 a9 01 sts 0x01A9, r29 |
17de: c0 93 a8 01 sts 0x01A8, r28 |
17e2: 80 91 fa 04 lds r24, 0x04FA |
17e6: e0 90 f6 04 lds r14, 0x04F6 |
17ea: 20 91 d7 01 lds r18, 0x01D7 |
17ee: 30 91 d8 01 lds r19, 0x01D8 |
17f2: 40 91 d9 01 lds r20, 0x01D9 |
17f6: 50 91 da 01 lds r21, 0x01DA |
17fa: 80 ff sbrs r24, 0 |
17fc: 18 c0 rjmp .+48 ; 0x182e <__vector_9+0xa0> |
17fe: ff 24 eor r15, r15 |
1800: 00 27 eor r16, r16 |
1802: 11 27 eor r17, r17 |
1804: ca 01 movw r24, r20 |
1806: b9 01 movw r22, r18 |
1808: 20 e8 ldi r18, 0x80 ; 128 |
180a: 30 e0 ldi r19, 0x00 ; 0 |
180c: 40 e0 ldi r20, 0x00 ; 0 |
180e: 50 e0 ldi r21, 0x00 ; 0 |
1810: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1814: c8 01 movw r24, r16 |
1816: b7 01 movw r22, r14 |
1818: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
181c: 20 e0 ldi r18, 0x00 ; 0 |
181e: 32 e0 ldi r19, 0x02 ; 2 |
1820: 40 e0 ldi r20, 0x00 ; 0 |
1822: 50 e0 ldi r21, 0x00 ; 0 |
1824: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1828: c2 0f add r28, r18 |
182a: d3 1f adc r29, r19 |
182c: 17 c0 rjmp .+46 ; 0x185c <__vector_9+0xce> |
182e: ff 24 eor r15, r15 |
1830: 00 27 eor r16, r16 |
1832: 11 27 eor r17, r17 |
1834: ca 01 movw r24, r20 |
1836: b9 01 movw r22, r18 |
1838: 20 e8 ldi r18, 0x80 ; 128 |
183a: 30 e0 ldi r19, 0x00 ; 0 |
183c: 40 e0 ldi r20, 0x00 ; 0 |
183e: 50 e0 ldi r21, 0x00 ; 0 |
1840: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1844: c8 01 movw r24, r16 |
1846: b7 01 movw r22, r14 |
1848: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
184c: 20 e0 ldi r18, 0x00 ; 0 |
184e: 32 e0 ldi r19, 0x02 ; 2 |
1850: 40 e0 ldi r20, 0x00 ; 0 |
1852: 50 e0 ldi r21, 0x00 ; 0 |
1854: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1858: c2 1b sub r28, r18 |
185a: d3 0b sbc r29, r19 |
185c: d0 93 a9 01 sts 0x01A9, r29 |
1860: c0 93 a8 01 sts 0x01A8, r28 |
1864: 20 91 a8 01 lds r18, 0x01A8 |
1868: 30 91 a9 01 lds r19, 0x01A9 |
186c: 80 91 f7 04 lds r24, 0x04F7 |
1870: 99 27 eor r25, r25 |
1872: 28 17 cp r18, r24 |
1874: 39 07 cpc r19, r25 |
1876: 34 f0 brlt .+12 ; 0x1884 <__vector_9+0xf6> |
1878: 80 91 f8 04 lds r24, 0x04F8 |
187c: 99 27 eor r25, r25 |
187e: 82 17 cp r24, r18 |
1880: 93 07 cpc r25, r19 |
1882: 24 f4 brge .+8 ; 0x188c <__vector_9+0xfe> |
1884: 90 93 a9 01 sts 0x01A9, r25 |
1888: 80 93 a8 01 sts 0x01A8, r24 |
188c: 80 91 a8 01 lds r24, 0x01A8 |
1890: 80 93 b3 00 sts 0x00B3, r24 |
1894: 80 91 f9 04 lds r24, 0x04F9 |
1898: 80 93 02 01 sts 0x0102, r24 |
189c: 04 c0 rjmp .+8 ; 0x18a6 <__vector_9+0x118> |
189e: 83 e0 ldi r24, 0x03 ; 3 |
18a0: 80 93 b0 00 sts 0x00B0, r24 |
18a4: 5f 98 cbi 0x0b, 7 ; 11 |
18a6: ff 91 pop r31 |
18a8: ef 91 pop r30 |
18aa: df 91 pop r29 |
18ac: cf 91 pop r28 |
18ae: bf 91 pop r27 |
18b0: af 91 pop r26 |
18b2: 9f 91 pop r25 |
18b4: 8f 91 pop r24 |
18b6: 7f 91 pop r23 |
18b8: 6f 91 pop r22 |
18ba: 5f 91 pop r21 |
18bc: 4f 91 pop r20 |
18be: 3f 91 pop r19 |
18c0: 2f 91 pop r18 |
18c2: 1f 91 pop r17 |
18c4: 0f 91 pop r16 |
18c6: ff 90 pop r15 |
18c8: ef 90 pop r14 |
18ca: 0f 90 pop r0 |
18cc: 0f be out 0x3f, r0 ; 63 |
18ce: 0f 90 pop r0 |
18d0: 1f 90 pop r1 |
18d2: 18 95 reti |
000018d4 <__vector_18>: |
18d4: 1f 92 push r1 |
18d6: 0f 92 push r0 |
18d8: 0f b6 in r0, 0x3f ; 63 |
18da: 0f 92 push r0 |
18dc: 11 24 eor r1, r1 |
18de: 2f 93 push r18 |
18e0: 3f 93 push r19 |
18e2: 4f 93 push r20 |
18e4: 5f 93 push r21 |
18e6: 6f 93 push r22 |
18e8: 7f 93 push r23 |
18ea: 8f 93 push r24 |
18ec: 9f 93 push r25 |
18ee: af 93 push r26 |
18f0: bf 93 push r27 |
18f2: ef 93 push r30 |
18f4: ff 93 push r31 |
18f6: 80 91 aa 01 lds r24, 0x01AA |
18fa: 81 50 subi r24, 0x01 ; 1 |
18fc: 80 93 aa 01 sts 0x01AA, r24 |
1900: 8f 3f cpi r24, 0xFF ; 255 |
1902: 01 f5 brne .+64 ; 0x1944 <__vector_18+0x70> |
1904: 8a e0 ldi r24, 0x0A ; 10 |
1906: 80 93 aa 01 sts 0x01AA, r24 |
190a: 80 91 03 01 lds r24, 0x0103 |
190e: 8f 5f subi r24, 0xFF ; 255 |
1910: 81 70 andi r24, 0x01 ; 1 |
1912: 80 93 03 01 sts 0x0103, r24 |
1916: 88 23 and r24, r24 |
1918: 19 f4 brne .+6 ; 0x1920 <__vector_18+0x4c> |
191a: 81 e0 ldi r24, 0x01 ; 1 |
191c: 80 93 a5 01 sts 0x01A5, r24 |
1920: 80 91 a3 01 lds r24, 0x01A3 |
1924: 90 91 a4 01 lds r25, 0x01A4 |
1928: 01 96 adiw r24, 0x01 ; 1 |
192a: 90 93 a4 01 sts 0x01A4, r25 |
192e: 80 93 a3 01 sts 0x01A3, r24 |
1932: 80 91 d0 01 lds r24, 0x01D0 |
1936: 88 23 and r24, r24 |
1938: 29 f0 breq .+10 ; 0x1944 <__vector_18+0x70> |
193a: 80 91 d0 01 lds r24, 0x01D0 |
193e: 81 50 subi r24, 0x01 ; 1 |
1940: 80 93 d0 01 sts 0x01D0, r24 |
1944: 80 91 a6 01 lds r24, 0x01A6 |
1948: 90 91 a7 01 lds r25, 0x01A7 |
194c: 02 97 sbiw r24, 0x02 ; 2 |
194e: 58 f0 brcs .+22 ; 0x1966 <__vector_18+0x92> |
1950: 80 91 a6 01 lds r24, 0x01A6 |
1954: 90 91 a7 01 lds r25, 0x01A7 |
1958: 01 97 sbiw r24, 0x01 ; 1 |
195a: 90 93 a7 01 sts 0x01A7, r25 |
195e: 80 93 a6 01 sts 0x01A6, r24 |
1962: 5a 9a sbi 0x0b, 2 ; 11 |
1964: 01 c0 rjmp .+2 ; 0x1968 <__vector_18+0x94> |
1966: 5a 98 cbi 0x0b, 2 ; 11 |
1968: 80 91 dc 04 lds r24, 0x04DC |
196c: 83 ff sbrs r24, 3 |
196e: 02 c0 rjmp .+4 ; 0x1974 <__vector_18+0xa0> |
1970: 0e 94 15 16 call 0x2c2a ; 0x2c2a <timer0_MM3> |
1974: ff 91 pop r31 |
1976: ef 91 pop r30 |
1978: bf 91 pop r27 |
197a: af 91 pop r26 |
197c: 9f 91 pop r25 |
197e: 8f 91 pop r24 |
1980: 7f 91 pop r23 |
1982: 6f 91 pop r22 |
1984: 5f 91 pop r21 |
1986: 4f 91 pop r20 |
1988: 3f 91 pop r19 |
198a: 2f 91 pop r18 |
198c: 0f 90 pop r0 |
198e: 0f be out 0x3f, r0 ; 63 |
1990: 0f 90 pop r0 |
1992: 1f 90 pop r1 |
1994: 18 95 reti |
00001996 <Delay_ms>: |
1996: 20 91 a3 01 lds r18, 0x01A3 |
199a: 30 91 a4 01 lds r19, 0x01A4 |
199e: 2f 5f subi r18, 0xFF ; 255 |
19a0: 3f 4f sbci r19, 0xFF ; 255 |
19a2: 28 0f add r18, r24 |
19a4: 39 1f adc r19, r25 |
19a6: 80 91 a3 01 lds r24, 0x01A3 |
19aa: 90 91 a4 01 lds r25, 0x01A4 |
19ae: a9 01 movw r20, r18 |
19b0: 48 1b sub r20, r24 |
19b2: 59 0b sbc r21, r25 |
19b4: 57 ff sbrs r21, 7 |
19b6: f7 cf rjmp .-18 ; 0x19a6 <Delay_ms+0x10> |
19b8: 08 95 ret |
000019ba <ADC_Init>: |
19ba: 10 92 7c 00 sts 0x007C, r1 |
19be: 8f ec ldi r24, 0xCF ; 207 |
19c0: 80 93 7a 00 sts 0x007A, r24 |
19c4: 08 95 ret |
000019c6 <__vector_24>: |
19c6: 1f 92 push r1 |
19c8: 0f 92 push r0 |
19ca: 0f b6 in r0, 0x3f ; 63 |
19cc: 0f 92 push r0 |
19ce: 11 24 eor r1, r1 |
19d0: ef 92 push r14 |
19d2: ff 92 push r15 |
19d4: 0f 93 push r16 |
19d6: 1f 93 push r17 |
19d8: 2f 93 push r18 |
19da: 3f 93 push r19 |
19dc: 4f 93 push r20 |
19de: 5f 93 push r21 |
19e0: 6f 93 push r22 |
19e2: 7f 93 push r23 |
19e4: 8f 93 push r24 |
19e6: 9f 93 push r25 |
19e8: af 93 push r26 |
19ea: bf 93 push r27 |
19ec: cf 93 push r28 |
19ee: df 93 push r29 |
19f0: ef 93 push r30 |
19f2: ff 93 push r31 |
19f4: 10 92 7a 00 sts 0x007A, r1 |
19f8: 80 91 c1 01 lds r24, 0x01C1 |
19fc: 8f 5f subi r24, 0xFF ; 255 |
19fe: 80 93 c1 01 sts 0x01C1, r24 |
1a02: 81 50 subi r24, 0x01 ; 1 |
1a04: e8 2f mov r30, r24 |
1a06: ff 27 eor r31, r31 |
1a08: e8 30 cpi r30, 0x08 ; 8 |
1a0a: f1 05 cpc r31, r1 |
1a0c: 08 f0 brcs .+2 ; 0x1a10 <__vector_24+0x4a> |
1a0e: cf c2 rjmp .+1438 ; 0x1fae <__vector_24+0x5e8> |
1a10: e4 5b subi r30, 0xB4 ; 180 |
1a12: ff 4f sbci r31, 0xFF ; 255 |
1a14: 0c 94 9d 2e jmp 0x5d3a ; 0x5d3a <__tablejump2__> |
1a18: 20 91 d5 01 lds r18, 0x01D5 |
1a1c: 30 91 d6 01 lds r19, 0x01D6 |
1a20: 80 91 78 00 lds r24, 0x0078 |
1a24: 90 91 79 00 lds r25, 0x0079 |
1a28: 28 1b sub r18, r24 |
1a2a: 39 0b sbc r19, r25 |
1a2c: 80 91 af 01 lds r24, 0x01AF |
1a30: 90 91 b0 01 lds r25, 0x01B0 |
1a34: 82 0f add r24, r18 |
1a36: 93 1f adc r25, r19 |
1a38: 90 93 b0 01 sts 0x01B0, r25 |
1a3c: 80 93 af 01 sts 0x01AF, r24 |
1a40: 80 91 b9 01 lds r24, 0x01B9 |
1a44: 8f 5f subi r24, 0xFF ; 255 |
1a46: 80 93 b9 01 sts 0x01B9, r24 |
1a4a: 80 91 fb 01 lds r24, 0x01FB |
1a4e: 90 91 fc 01 lds r25, 0x01FC |
1a52: a0 91 fd 01 lds r26, 0x01FD |
1a56: b0 91 fe 01 lds r27, 0x01FE |
1a5a: 44 27 eor r20, r20 |
1a5c: 37 fd sbrc r19, 7 |
1a5e: 40 95 com r20 |
1a60: 54 2f mov r21, r20 |
1a62: 82 0f add r24, r18 |
1a64: 93 1f adc r25, r19 |
1a66: a4 1f adc r26, r20 |
1a68: b5 1f adc r27, r21 |
1a6a: 80 93 fb 01 sts 0x01FB, r24 |
1a6e: 90 93 fc 01 sts 0x01FC, r25 |
1a72: a0 93 fd 01 sts 0x01FD, r26 |
1a76: b0 93 fe 01 sts 0x01FE, r27 |
1a7a: 80 91 ff 01 lds r24, 0x01FF |
1a7e: 90 91 00 02 lds r25, 0x0200 |
1a82: a0 91 01 02 lds r26, 0x0201 |
1a86: b0 91 02 02 lds r27, 0x0202 |
1a8a: 82 0f add r24, r18 |
1a8c: 93 1f adc r25, r19 |
1a8e: a4 1f adc r26, r20 |
1a90: b5 1f adc r27, r21 |
1a92: 80 93 ff 01 sts 0x01FF, r24 |
1a96: 90 93 00 02 sts 0x0200, r25 |
1a9a: a0 93 01 02 sts 0x0201, r26 |
1a9e: b0 93 02 02 sts 0x0202, r27 |
1aa2: 81 e0 ldi r24, 0x01 ; 1 |
1aa4: 80 93 c2 01 sts 0x01C2, r24 |
1aa8: 80 91 bf 01 lds r24, 0x01BF |
1aac: 90 91 c0 01 lds r25, 0x01C0 |
1ab0: 01 96 adiw r24, 0x01 ; 1 |
1ab2: 90 93 c0 01 sts 0x01C0, r25 |
1ab6: 80 93 bf 01 sts 0x01BF, r24 |
1aba: 7d c2 rjmp .+1274 ; 0x1fb6 <__vector_24+0x5f0> |
1abc: 60 91 78 00 lds r22, 0x0078 |
1ac0: 70 91 79 00 lds r23, 0x0079 |
1ac4: 80 91 d3 01 lds r24, 0x01D3 |
1ac8: 90 91 d4 01 lds r25, 0x01D4 |
1acc: 68 1b sub r22, r24 |
1ace: 79 0b sbc r23, r25 |
1ad0: 80 91 f3 01 lds r24, 0x01F3 |
1ad4: 90 91 f4 01 lds r25, 0x01F4 |
1ad8: a0 91 f5 01 lds r26, 0x01F5 |
1adc: b0 91 f6 01 lds r27, 0x01F6 |
1ae0: 9b 01 movw r18, r22 |
1ae2: 44 27 eor r20, r20 |
1ae4: 37 fd sbrc r19, 7 |
1ae6: 40 95 com r20 |
1ae8: 54 2f mov r21, r20 |
1aea: 82 0f add r24, r18 |
1aec: 93 1f adc r25, r19 |
1aee: a4 1f adc r26, r20 |
1af0: b5 1f adc r27, r21 |
1af2: 80 93 f3 01 sts 0x01F3, r24 |
1af6: 90 93 f4 01 sts 0x01F4, r25 |
1afa: a0 93 f5 01 sts 0x01F5, r26 |
1afe: b0 93 f6 01 sts 0x01F6, r27 |
1b02: 80 91 f7 01 lds r24, 0x01F7 |
1b06: 90 91 f8 01 lds r25, 0x01F8 |
1b0a: a0 91 f9 01 lds r26, 0x01F9 |
1b0e: b0 91 fa 01 lds r27, 0x01FA |
1b12: 82 0f add r24, r18 |
1b14: 93 1f adc r25, r19 |
1b16: a4 1f adc r26, r20 |
1b18: b5 1f adc r27, r21 |
1b1a: 80 93 f7 01 sts 0x01F7, r24 |
1b1e: 90 93 f8 01 sts 0x01F8, r25 |
1b22: a0 93 f9 01 sts 0x01F9, r26 |
1b26: b0 93 fa 01 sts 0x01FA, r27 |
1b2a: 80 91 78 00 lds r24, 0x0078 |
1b2e: 90 91 79 00 lds r25, 0x0079 |
1b32: 0a 97 sbiw r24, 0x0a ; 10 |
1b34: 10 f4 brcc .+4 ; 0x1b3a <__vector_24+0x174> |
1b36: 64 e4 ldi r22, 0x44 ; 68 |
1b38: 7d ef ldi r23, 0xFD ; 253 |
1b3a: 80 91 78 00 lds r24, 0x0078 |
1b3e: 90 91 79 00 lds r25, 0x0079 |
1b42: 89 5e subi r24, 0xE9 ; 233 |
1b44: 93 40 sbci r25, 0x03 ; 3 |
1b46: 10 f0 brcs .+4 ; 0x1b4c <__vector_24+0x186> |
1b48: 6c eb ldi r22, 0xBC ; 188 |
1b4a: 72 e0 ldi r23, 0x02 ; 2 |
1b4c: 80 91 ad 01 lds r24, 0x01AD |
1b50: 90 91 ae 01 lds r25, 0x01AE |
1b54: 86 0f add r24, r22 |
1b56: 97 1f adc r25, r23 |
1b58: 90 93 ae 01 sts 0x01AE, r25 |
1b5c: 80 93 ad 01 sts 0x01AD, r24 |
1b60: 80 91 b8 01 lds r24, 0x01B8 |
1b64: 8f 5f subi r24, 0xFF ; 255 |
1b66: 80 93 b8 01 sts 0x01B8, r24 |
1b6a: 82 e0 ldi r24, 0x02 ; 2 |
1b6c: 58 c0 rjmp .+176 ; 0x1c1e <__vector_24+0x258> |
1b6e: 60 91 78 00 lds r22, 0x0078 |
1b72: 70 91 79 00 lds r23, 0x0079 |
1b76: 80 91 d1 01 lds r24, 0x01D1 |
1b7a: 90 91 d2 01 lds r25, 0x01D2 |
1b7e: 68 1b sub r22, r24 |
1b80: 79 0b sbc r23, r25 |
1b82: 80 91 eb 01 lds r24, 0x01EB |
1b86: 90 91 ec 01 lds r25, 0x01EC |
1b8a: a0 91 ed 01 lds r26, 0x01ED |
1b8e: b0 91 ee 01 lds r27, 0x01EE |
1b92: 9b 01 movw r18, r22 |
1b94: 44 27 eor r20, r20 |
1b96: 37 fd sbrc r19, 7 |
1b98: 40 95 com r20 |
1b9a: 54 2f mov r21, r20 |
1b9c: 82 0f add r24, r18 |
1b9e: 93 1f adc r25, r19 |
1ba0: a4 1f adc r26, r20 |
1ba2: b5 1f adc r27, r21 |
1ba4: 80 93 eb 01 sts 0x01EB, r24 |
1ba8: 90 93 ec 01 sts 0x01EC, r25 |
1bac: a0 93 ed 01 sts 0x01ED, r26 |
1bb0: b0 93 ee 01 sts 0x01EE, r27 |
1bb4: 80 91 ef 01 lds r24, 0x01EF |
1bb8: 90 91 f0 01 lds r25, 0x01F0 |
1bbc: a0 91 f1 01 lds r26, 0x01F1 |
1bc0: b0 91 f2 01 lds r27, 0x01F2 |
1bc4: 82 0f add r24, r18 |
1bc6: 93 1f adc r25, r19 |
1bc8: a4 1f adc r26, r20 |
1bca: b5 1f adc r27, r21 |
1bcc: 80 93 ef 01 sts 0x01EF, r24 |
1bd0: 90 93 f0 01 sts 0x01F0, r25 |
1bd4: a0 93 f1 01 sts 0x01F1, r26 |
1bd8: b0 93 f2 01 sts 0x01F2, r27 |
1bdc: 80 91 78 00 lds r24, 0x0078 |
1be0: 90 91 79 00 lds r25, 0x0079 |
1be4: 0a 97 sbiw r24, 0x0a ; 10 |
1be6: 10 f4 brcc .+4 ; 0x1bec <__vector_24+0x226> |
1be8: 64 e4 ldi r22, 0x44 ; 68 |
1bea: 7d ef ldi r23, 0xFD ; 253 |
1bec: 80 91 78 00 lds r24, 0x0078 |
1bf0: 90 91 79 00 lds r25, 0x0079 |
1bf4: 89 5e subi r24, 0xE9 ; 233 |
1bf6: 93 40 sbci r25, 0x03 ; 3 |
1bf8: 10 f0 brcs .+4 ; 0x1bfe <__vector_24+0x238> |
1bfa: 6c eb ldi r22, 0xBC ; 188 |
1bfc: 72 e0 ldi r23, 0x02 ; 2 |
1bfe: 80 91 ab 01 lds r24, 0x01AB |
1c02: 90 91 ac 01 lds r25, 0x01AC |
1c06: 86 0f add r24, r22 |
1c08: 97 1f adc r25, r23 |
1c0a: 90 93 ac 01 sts 0x01AC, r25 |
1c0e: 80 93 ab 01 sts 0x01AB, r24 |
1c12: 80 91 b7 01 lds r24, 0x01B7 |
1c16: 8f 5f subi r24, 0xFF ; 255 |
1c18: 80 93 b7 01 sts 0x01B7, r24 |
1c1c: 84 e0 ldi r24, 0x04 ; 4 |
1c1e: 80 93 c2 01 sts 0x01C2, r24 |
1c22: c9 c1 rjmp .+914 ; 0x1fb6 <__vector_24+0x5f0> |
1c24: 40 91 04 01 lds r20, 0x0104 |
1c28: 50 91 05 01 lds r21, 0x0105 |
1c2c: 80 91 78 00 lds r24, 0x0078 |
1c30: 90 91 79 00 lds r25, 0x0079 |
1c34: 9a 01 movw r18, r20 |
1c36: 22 0f add r18, r18 |
1c38: 33 1f adc r19, r19 |
1c3a: 24 0f add r18, r20 |
1c3c: 35 1f adc r19, r21 |
1c3e: 63 e0 ldi r22, 0x03 ; 3 |
1c40: 70 e0 ldi r23, 0x00 ; 0 |
1c42: 0e 94 02 2e call 0x5c04 ; 0x5c04 <__udivmodhi4> |
1c46: 26 0f add r18, r22 |
1c48: 37 1f adc r19, r23 |
1c4a: 36 95 lsr r19 |
1c4c: 27 95 ror r18 |
1c4e: 36 95 lsr r19 |
1c50: 27 95 ror r18 |
1c52: 30 93 05 01 sts 0x0105, r19 |
1c56: 20 93 04 01 sts 0x0104, r18 |
1c5a: 86 e0 ldi r24, 0x06 ; 6 |
1c5c: e0 cf rjmp .-64 ; 0x1c1e <__vector_24+0x258> |
1c5e: 80 91 1b 05 lds r24, 0x051B |
1c62: 90 91 1c 05 lds r25, 0x051C |
1c66: 20 91 78 00 lds r18, 0x0078 |
1c6a: 30 91 79 00 lds r19, 0x0079 |
1c6e: 82 1b sub r24, r18 |
1c70: 93 0b sbc r25, r19 |
1c72: 90 93 7c 04 sts 0x047C, r25 |
1c76: 80 93 7b 04 sts 0x047B, r24 |
1c7a: 80 91 b1 01 lds r24, 0x01B1 |
1c7e: 90 91 b2 01 lds r25, 0x01B2 |
1c82: 20 91 7b 04 lds r18, 0x047B |
1c86: 30 91 7c 04 lds r19, 0x047C |
1c8a: 82 0f add r24, r18 |
1c8c: 93 1f adc r25, r19 |
1c8e: 90 93 b2 01 sts 0x01B2, r25 |
1c92: 80 93 b1 01 sts 0x01B1, r24 |
1c96: 80 91 bb 01 lds r24, 0x01BB |
1c9a: 8f 5f subi r24, 0xFF ; 255 |
1c9c: 80 93 bb 01 sts 0x01BB, r24 |
1ca0: 87 e0 ldi r24, 0x07 ; 7 |
1ca2: bd cf rjmp .-134 ; 0x1c1e <__vector_24+0x258> |
1ca4: 80 91 78 00 lds r24, 0x0078 |
1ca8: 90 91 79 00 lds r25, 0x0079 |
1cac: 20 91 19 05 lds r18, 0x0519 |
1cb0: 30 91 1a 05 lds r19, 0x051A |
1cb4: 82 1b sub r24, r18 |
1cb6: 93 0b sbc r25, r19 |
1cb8: 90 93 87 04 sts 0x0487, r25 |
1cbc: 80 93 86 04 sts 0x0486, r24 |
1cc0: 80 91 b3 01 lds r24, 0x01B3 |
1cc4: 90 91 b4 01 lds r25, 0x01B4 |
1cc8: 20 91 86 04 lds r18, 0x0486 |
1ccc: 30 91 87 04 lds r19, 0x0487 |
1cd0: 82 0f add r24, r18 |
1cd2: 93 1f adc r25, r19 |
1cd4: 90 93 b4 01 sts 0x01B4, r25 |
1cd8: 80 93 b3 01 sts 0x01B3, r24 |
1cdc: 80 91 ba 01 lds r24, 0x01BA |
1ce0: 8f 5f subi r24, 0xFF ; 255 |
1ce2: 80 93 ba 01 sts 0x01BA, r24 |
1ce6: 85 e0 ldi r24, 0x05 ; 5 |
1ce8: 80 93 c2 01 sts 0x01C2, r24 |
1cec: 86 e0 ldi r24, 0x06 ; 6 |
1cee: e4 c0 rjmp .+456 ; 0x1eb8 <__vector_24+0x4f2> |
1cf0: 60 91 78 00 lds r22, 0x0078 |
1cf4: 70 91 79 00 lds r23, 0x0079 |
1cf8: e0 90 1d 05 lds r14, 0x051D |
1cfc: f0 90 1e 05 lds r15, 0x051E |
1d00: 00 91 1f 05 lds r16, 0x051F |
1d04: 10 91 20 05 lds r17, 0x0520 |
1d08: 88 27 eor r24, r24 |
1d0a: 77 fd sbrc r23, 7 |
1d0c: 80 95 com r24 |
1d0e: 98 2f mov r25, r24 |
1d10: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
1d14: a8 01 movw r20, r16 |
1d16: 97 01 movw r18, r14 |
1d18: 0e 94 7b 2c call 0x58f6 ; 0x58f6 <__subsf3> |
1d1c: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
1d20: 70 93 b6 01 sts 0x01B6, r23 |
1d24: 60 93 b5 01 sts 0x01B5, r22 |
1d28: 20 91 b5 01 lds r18, 0x01B5 |
1d2c: 30 91 b6 01 lds r19, 0x01B6 |
1d30: e0 91 7b 04 lds r30, 0x047B |
1d34: f0 91 7c 04 lds r31, 0x047C |
1d38: 80 91 86 04 lds r24, 0x0486 |
1d3c: 90 91 87 04 lds r25, 0x0487 |
1d40: 97 ff sbrs r25, 7 |
1d42: 03 c0 rjmp .+6 ; 0x1d4a <__vector_24+0x384> |
1d44: 90 95 com r25 |
1d46: 81 95 neg r24 |
1d48: 9f 4f sbci r25, 0xFF ; 255 |
1d4a: 64 e0 ldi r22, 0x04 ; 4 |
1d4c: 70 e0 ldi r23, 0x00 ; 0 |
1d4e: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
1d52: eb 01 movw r28, r22 |
1d54: cf 01 movw r24, r30 |
1d56: f7 ff sbrs r31, 7 |
1d58: 03 c0 rjmp .+6 ; 0x1d60 <__vector_24+0x39a> |
1d5a: 90 95 com r25 |
1d5c: 81 95 neg r24 |
1d5e: 9f 4f sbci r25, 0xFF ; 255 |
1d60: 64 e0 ldi r22, 0x04 ; 4 |
1d62: 70 e0 ldi r23, 0x00 ; 0 |
1d64: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
1d68: 26 0f add r18, r22 |
1d6a: 37 1f adc r19, r23 |
1d6c: 2c 0f add r18, r28 |
1d6e: 3d 1f adc r19, r29 |
1d70: 30 93 b6 01 sts 0x01B6, r19 |
1d74: 20 93 b5 01 sts 0x01B5, r18 |
1d78: 80 91 b5 01 lds r24, 0x01B5 |
1d7c: 90 91 b6 01 lds r25, 0x01B6 |
1d80: 02 97 sbiw r24, 0x02 ; 2 |
1d82: 04 f1 brlt .+64 ; 0x1dc4 <__vector_24+0x3fe> |
1d84: 60 91 1d 05 lds r22, 0x051D |
1d88: 70 91 1e 05 lds r23, 0x051E |
1d8c: 80 91 1f 05 lds r24, 0x051F |
1d90: 90 91 20 05 lds r25, 0x0520 |
1d94: 20 e0 ldi r18, 0x00 ; 0 |
1d96: 30 e0 ldi r19, 0x00 ; 0 |
1d98: 48 e4 ldi r20, 0x48 ; 72 |
1d9a: 54 e4 ldi r21, 0x44 ; 68 |
1d9c: 0e 94 2b 2d call 0x5a56 ; 0x5a56 <__eqsf2> |
1da0: 88 23 and r24, r24 |
1da2: 0c f0 brlt .+2 ; 0x1da6 <__vector_24+0x3e0> |
1da4: 3c c0 rjmp .+120 ; 0x1e1e <__vector_24+0x458> |
1da6: 60 91 1d 05 lds r22, 0x051D |
1daa: 70 91 1e 05 lds r23, 0x051E |
1dae: 80 91 1f 05 lds r24, 0x051F |
1db2: 90 91 20 05 lds r25, 0x0520 |
1db6: 2a e0 ldi r18, 0x0A ; 10 |
1db8: 37 ed ldi r19, 0xD7 ; 215 |
1dba: 43 ea ldi r20, 0xA3 ; 163 |
1dbc: 5c e3 ldi r21, 0x3C ; 60 |
1dbe: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
1dc2: 25 c0 rjmp .+74 ; 0x1e0e <__vector_24+0x448> |
1dc4: 80 91 b5 01 lds r24, 0x01B5 |
1dc8: 90 91 b6 01 lds r25, 0x01B6 |
1dcc: 8f 5f subi r24, 0xFF ; 255 |
1dce: 9f 4f sbci r25, 0xFF ; 255 |
1dd0: 34 f5 brge .+76 ; 0x1e1e <__vector_24+0x458> |
1dd2: 60 91 1d 05 lds r22, 0x051D |
1dd6: 70 91 1e 05 lds r23, 0x051E |
1dda: 80 91 1f 05 lds r24, 0x051F |
1dde: 90 91 20 05 lds r25, 0x0520 |
1de2: 20 e0 ldi r18, 0x00 ; 0 |
1de4: 30 e0 ldi r19, 0x00 ; 0 |
1de6: 46 e1 ldi r20, 0x16 ; 22 |
1de8: 54 e4 ldi r21, 0x44 ; 68 |
1dea: 0e 94 2e 2d call 0x5a5c ; 0x5a5c <__gesf2> |
1dee: 18 16 cp r1, r24 |
1df0: b4 f4 brge .+44 ; 0x1e1e <__vector_24+0x458> |
1df2: 60 91 1d 05 lds r22, 0x051D |
1df6: 70 91 1e 05 lds r23, 0x051E |
1dfa: 80 91 1f 05 lds r24, 0x051F |
1dfe: 90 91 20 05 lds r25, 0x0520 |
1e02: 2a e0 ldi r18, 0x0A ; 10 |
1e04: 37 ed ldi r19, 0xD7 ; 215 |
1e06: 43 ea ldi r20, 0xA3 ; 163 |
1e08: 5c e3 ldi r21, 0x3C ; 60 |
1e0a: 0e 94 7b 2c call 0x58f6 ; 0x58f6 <__subsf3> |
1e0e: 60 93 1d 05 sts 0x051D, r22 |
1e12: 70 93 1e 05 sts 0x051E, r23 |
1e16: 80 93 1f 05 sts 0x051F, r24 |
1e1a: 90 93 20 05 sts 0x0520, r25 |
1e1e: 81 e0 ldi r24, 0x01 ; 1 |
1e20: 80 93 bc 01 sts 0x01BC, r24 |
1e24: 80 91 78 00 lds r24, 0x0078 |
1e28: 90 91 79 00 lds r25, 0x0079 |
1e2c: 90 93 7e 04 sts 0x047E, r25 |
1e30: 80 93 7d 04 sts 0x047D, r24 |
1e34: 20 91 03 02 lds r18, 0x0203 |
1e38: 30 91 04 02 lds r19, 0x0204 |
1e3c: 40 91 05 02 lds r20, 0x0205 |
1e40: 50 91 06 02 lds r21, 0x0206 |
1e44: 80 91 b5 01 lds r24, 0x01B5 |
1e48: 90 91 b6 01 lds r25, 0x01B6 |
1e4c: aa 27 eor r26, r26 |
1e4e: 97 fd sbrc r25, 7 |
1e50: a0 95 com r26 |
1e52: ba 2f mov r27, r26 |
1e54: 28 0f add r18, r24 |
1e56: 39 1f adc r19, r25 |
1e58: 4a 1f adc r20, r26 |
1e5a: 5b 1f adc r21, r27 |
1e5c: 20 93 03 02 sts 0x0203, r18 |
1e60: 30 93 04 02 sts 0x0204, r19 |
1e64: 40 93 05 02 sts 0x0205, r20 |
1e68: 50 93 06 02 sts 0x0206, r21 |
1e6c: e0 90 03 02 lds r14, 0x0203 |
1e70: f0 90 04 02 lds r15, 0x0204 |
1e74: 00 91 05 02 lds r16, 0x0205 |
1e78: 10 91 06 02 lds r17, 0x0206 |
1e7c: 60 91 03 02 lds r22, 0x0203 |
1e80: 70 91 04 02 lds r23, 0x0204 |
1e84: 80 91 05 02 lds r24, 0x0205 |
1e88: 90 91 06 02 lds r25, 0x0206 |
1e8c: 20 e0 ldi r18, 0x00 ; 0 |
1e8e: 34 e0 ldi r19, 0x04 ; 4 |
1e90: 40 e0 ldi r20, 0x00 ; 0 |
1e92: 50 e0 ldi r21, 0x00 ; 0 |
1e94: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1e98: e2 1a sub r14, r18 |
1e9a: f3 0a sbc r15, r19 |
1e9c: 04 0b sbc r16, r20 |
1e9e: 15 0b sbc r17, r21 |
1ea0: e0 92 03 02 sts 0x0203, r14 |
1ea4: f0 92 04 02 sts 0x0204, r15 |
1ea8: 00 93 05 02 sts 0x0205, r16 |
1eac: 10 93 06 02 sts 0x0206, r17 |
1eb0: 83 e0 ldi r24, 0x03 ; 3 |
1eb2: 80 93 c2 01 sts 0x01C2, r24 |
1eb6: 87 e0 ldi r24, 0x07 ; 7 |
1eb8: 80 93 c1 01 sts 0x01C1, r24 |
1ebc: 7c c0 rjmp .+248 ; 0x1fb6 <__vector_24+0x5f0> |
1ebe: 80 91 8b 04 lds r24, 0x048B |
1ec2: 90 91 8c 04 lds r25, 0x048C |
1ec6: 20 91 78 00 lds r18, 0x0078 |
1eca: 30 91 79 00 lds r19, 0x0079 |
1ece: 82 0f add r24, r18 |
1ed0: 93 1f adc r25, r19 |
1ed2: 90 93 8c 04 sts 0x048C, r25 |
1ed6: 80 93 8b 04 sts 0x048B, r24 |
1eda: 80 91 83 04 lds r24, 0x0483 |
1ede: 8f 5f subi r24, 0xFF ; 255 |
1ee0: 80 93 83 04 sts 0x0483, r24 |
1ee4: 80 91 83 04 lds r24, 0x0483 |
1ee8: 85 30 cpi r24, 0x05 ; 5 |
1eea: 08 f4 brcc .+2 ; 0x1eee <__vector_24+0x528> |
1eec: 60 c0 rjmp .+192 ; 0x1fae <__vector_24+0x5e8> |
1eee: 80 91 78 00 lds r24, 0x0078 |
1ef2: 90 91 79 00 lds r25, 0x0079 |
1ef6: 90 93 0b 01 sts 0x010B, r25 |
1efa: 80 93 0a 01 sts 0x010A, r24 |
1efe: 10 92 83 04 sts 0x0483, r1 |
1f02: 80 91 7f 04 lds r24, 0x047F |
1f06: 90 91 80 04 lds r25, 0x0480 |
1f0a: 20 91 8b 04 lds r18, 0x048B |
1f0e: 30 91 8c 04 lds r19, 0x048C |
1f12: 82 1b sub r24, r18 |
1f14: 93 0b sbc r25, r19 |
1f16: 20 91 20 02 lds r18, 0x0220 |
1f1a: 30 91 21 02 lds r19, 0x0221 |
1f1e: 82 1b sub r24, r18 |
1f20: 93 0b sbc r25, r19 |
1f22: 90 93 be 01 sts 0x01BE, r25 |
1f26: 80 93 bd 01 sts 0x01BD, r24 |
1f2a: 60 91 8b 04 lds r22, 0x048B |
1f2e: 70 91 8c 04 lds r23, 0x048C |
1f32: e0 90 06 01 lds r14, 0x0106 |
1f36: f0 90 07 01 lds r15, 0x0107 |
1f3a: 00 91 08 01 lds r16, 0x0108 |
1f3e: 10 91 09 01 lds r17, 0x0109 |
1f42: 88 27 eor r24, r24 |
1f44: 77 fd sbrc r23, 7 |
1f46: 80 95 com r24 |
1f48: 98 2f mov r25, r24 |
1f4a: a8 01 movw r20, r16 |
1f4c: 97 01 movw r18, r14 |
1f4e: 22 0f add r18, r18 |
1f50: 33 1f adc r19, r19 |
1f52: 44 1f adc r20, r20 |
1f54: 55 1f adc r21, r21 |
1f56: 2e 0d add r18, r14 |
1f58: 3f 1d adc r19, r15 |
1f5a: 40 1f adc r20, r16 |
1f5c: 51 1f adc r21, r17 |
1f5e: 62 0f add r22, r18 |
1f60: 73 1f adc r23, r19 |
1f62: 84 1f adc r24, r20 |
1f64: 95 1f adc r25, r21 |
1f66: 24 e0 ldi r18, 0x04 ; 4 |
1f68: 30 e0 ldi r19, 0x00 ; 0 |
1f6a: 40 e0 ldi r20, 0x00 ; 0 |
1f6c: 50 e0 ldi r21, 0x00 ; 0 |
1f6e: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
1f72: 20 93 06 01 sts 0x0106, r18 |
1f76: 30 93 07 01 sts 0x0107, r19 |
1f7a: 40 93 08 01 sts 0x0108, r20 |
1f7e: 50 93 09 01 sts 0x0109, r21 |
1f82: 20 91 7f 04 lds r18, 0x047F |
1f86: 30 91 80 04 lds r19, 0x0480 |
1f8a: 80 91 06 01 lds r24, 0x0106 |
1f8e: 90 91 07 01 lds r25, 0x0107 |
1f92: a0 91 08 01 lds r26, 0x0108 |
1f96: b0 91 09 01 lds r27, 0x0109 |
1f9a: 28 1b sub r18, r24 |
1f9c: 39 0b sbc r19, r25 |
1f9e: 30 93 21 02 sts 0x0221, r19 |
1fa2: 20 93 20 02 sts 0x0220, r18 |
1fa6: 10 92 8c 04 sts 0x048C, r1 |
1faa: 10 92 8b 04 sts 0x048B, r1 |
1fae: 10 92 c2 01 sts 0x01C2, r1 |
1fb2: 10 92 c1 01 sts 0x01C1, r1 |
1fb6: 80 91 c2 01 lds r24, 0x01C2 |
1fba: 80 93 7c 00 sts 0x007C, r24 |
1fbe: 8f ec ldi r24, 0xCF ; 207 |
1fc0: 80 93 7a 00 sts 0x007A, r24 |
1fc4: ff 91 pop r31 |
1fc6: ef 91 pop r30 |
1fc8: df 91 pop r29 |
1fca: cf 91 pop r28 |
1fcc: bf 91 pop r27 |
1fce: af 91 pop r26 |
1fd0: 9f 91 pop r25 |
1fd2: 8f 91 pop r24 |
1fd4: 7f 91 pop r23 |
1fd6: 6f 91 pop r22 |
1fd8: 5f 91 pop r21 |
1fda: 4f 91 pop r20 |
1fdc: 3f 91 pop r19 |
1fde: 2f 91 pop r18 |
1fe0: 1f 91 pop r17 |
1fe2: 0f 91 pop r16 |
1fe4: ff 90 pop r15 |
1fe6: ef 90 pop r14 |
1fe8: 0f 90 pop r0 |
1fea: 0f be out 0x3f, r0 ; 63 |
1fec: 0f 90 pop r0 |
1fee: 1f 90 pop r1 |
1ff0: 18 95 reti |
00001ff2 <SucheLuftruckOffset>: |
1ff2: cf 93 push r28 |
1ff4: df 93 push r29 |
1ff6: a3 e0 ldi r26, 0x03 ; 3 |
1ff8: b0 e0 ldi r27, 0x00 ; 0 |
1ffa: 0e 94 a3 2e call 0x5d46 ; 0x5d46 <__eeprom_read_byte_1F2021> |
1ffe: 80 2d mov r24, r0 |
2000: c8 2f mov r28, r24 |
2002: dd 27 eor r29, r29 |
2004: c5 31 cpi r28, 0x15 ; 21 |
2006: d1 05 cpc r29, r1 |
2008: 08 f0 brcs .+2 ; 0x200c <SucheLuftruckOffset+0x1a> |
200a: 2a 97 sbiw r28, 0x0a ; 10 |
200c: c7 bd out 0x27, r28 ; 39 |
200e: 84 e6 ldi r24, 0x64 ; 100 |
2010: 90 e0 ldi r25, 0x00 ; 0 |
2012: 0e 94 cb 0c call 0x1996 ; 0x1996 <Delay_ms> |
2016: 80 91 0a 01 lds r24, 0x010A |
201a: 90 91 0b 01 lds r25, 0x010B |
201e: 82 55 subi r24, 0x52 ; 82 |
2020: 93 40 sbci r25, 0x03 ; 3 |
2022: d0 f4 brcc .+52 ; 0x2058 <SucheLuftruckOffset+0x66> |
2024: c0 e0 ldi r28, 0x00 ; 0 |
2026: d0 e0 ldi r29, 0x00 ; 0 |
2028: 17 c0 rjmp .+46 ; 0x2058 <SucheLuftruckOffset+0x66> |
202a: c7 bd out 0x27, r28 ; 39 |
202c: 82 e3 ldi r24, 0x32 ; 50 |
202e: 90 e0 ldi r25, 0x00 ; 0 |
2030: 0e 94 cb 0c call 0x1996 ; 0x1996 <Delay_ms> |
2034: 8b eb ldi r24, 0xBB ; 187 |
2036: 91 e0 ldi r25, 0x01 ; 1 |
2038: 9f 93 push r25 |
203a: 8f 93 push r24 |
203c: 1f 92 push r1 |
203e: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2042: 80 91 0a 01 lds r24, 0x010A |
2046: 90 91 0b 01 lds r25, 0x010B |
204a: 0f 90 pop r0 |
204c: 0f 90 pop r0 |
204e: 0f 90 pop r0 |
2050: 84 58 subi r24, 0x84 ; 132 |
2052: 93 40 sbci r25, 0x03 ; 3 |
2054: 20 f0 brcs .+8 ; 0x205e <SucheLuftruckOffset+0x6c> |
2056: 21 96 adiw r28, 0x01 ; 1 |
2058: ca 3f cpi r28, 0xFA ; 250 |
205a: d1 05 cpc r29, r1 |
205c: 30 f3 brcs .-52 ; 0x202a <SucheLuftruckOffset+0x38> |
205e: a3 e0 ldi r26, 0x03 ; 3 |
2060: b0 e0 ldi r27, 0x00 ; 0 |
2062: 0c 2e mov r0, r28 |
2064: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
2068: c0 93 88 04 sts 0x0488, r28 |
206c: 88 ec ldi r24, 0xC8 ; 200 |
206e: 90 e0 ldi r25, 0x00 ; 0 |
2070: 0e 94 cb 0c call 0x1996 ; 0x1996 <Delay_ms> |
2074: df 91 pop r29 |
2076: cf 91 pop r28 |
2078: 08 95 ret |
0000207a <LcdClear>: |
207a: e6 e1 ldi r30, 0x16 ; 22 |
207c: f1 e0 ldi r31, 0x01 ; 1 |
207e: 80 e2 ldi r24, 0x20 ; 32 |
2080: 81 93 st Z+, r24 |
2082: 91 e0 ldi r25, 0x01 ; 1 |
2084: e6 36 cpi r30, 0x66 ; 102 |
2086: f9 07 cpc r31, r25 |
2088: d9 f7 brne .-10 ; 0x2080 <LcdClear+0x6> |
208a: 08 95 ret |
0000208c <Menu>: |
208c: ff 92 push r15 |
208e: 0f 93 push r16 |
2090: 1f 93 push r17 |
2092: 80 91 c6 01 lds r24, 0x01C6 |
2096: 28 2f mov r18, r24 |
2098: 33 27 eor r19, r19 |
209a: c9 01 movw r24, r18 |
209c: 81 70 andi r24, 0x01 ; 1 |
209e: 90 70 andi r25, 0x00 ; 0 |
20a0: 68 2f mov r22, r24 |
20a2: 88 23 and r24, r24 |
20a4: 91 f0 breq .+36 ; 0x20ca <Menu+0x3e> |
20a6: 80 91 c7 01 lds r24, 0x01C7 |
20aa: 88 23 and r24, r24 |
20ac: 11 f0 breq .+4 ; 0x20b2 <Menu+0x26> |
20ae: 81 50 subi r24, 0x01 ; 1 |
20b0: 02 c0 rjmp .+4 ; 0x20b6 <Menu+0x2a> |
20b2: 80 91 66 01 lds r24, 0x0166 |
20b6: 80 93 c7 01 sts 0x01C7, r24 |
20ba: e6 e1 ldi r30, 0x16 ; 22 |
20bc: f1 e0 ldi r31, 0x01 ; 1 |
20be: 80 e2 ldi r24, 0x20 ; 32 |
20c0: 81 93 st Z+, r24 |
20c2: 91 e0 ldi r25, 0x01 ; 1 |
20c4: e6 36 cpi r30, 0x66 ; 102 |
20c6: f9 07 cpc r31, r25 |
20c8: d9 f7 brne .-10 ; 0x20c0 <Menu+0x34> |
20ca: a9 01 movw r20, r18 |
20cc: 42 70 andi r20, 0x02 ; 2 |
20ce: 50 70 andi r21, 0x00 ; 0 |
20d0: 21 ff sbrs r18, 1 |
20d2: 0d c0 rjmp .+26 ; 0x20ee <Menu+0x62> |
20d4: 80 91 c7 01 lds r24, 0x01C7 |
20d8: 8f 5f subi r24, 0xFF ; 255 |
20da: 80 93 c7 01 sts 0x01C7, r24 |
20de: e6 e1 ldi r30, 0x16 ; 22 |
20e0: f1 e0 ldi r31, 0x01 ; 1 |
20e2: 80 e2 ldi r24, 0x20 ; 32 |
20e4: 81 93 st Z+, r24 |
20e6: 91 e0 ldi r25, 0x01 ; 1 |
20e8: e6 36 cpi r30, 0x66 ; 102 |
20ea: f9 07 cpc r31, r25 |
20ec: d9 f7 brne .-10 ; 0x20e4 <Menu+0x58> |
20ee: 66 23 and r22, r22 |
20f0: 21 f0 breq .+8 ; 0x20fa <Menu+0x6e> |
20f2: 45 2b or r20, r21 |
20f4: 11 f0 breq .+4 ; 0x20fa <Menu+0x6e> |
20f6: 10 92 c7 01 sts 0x01C7, r1 |
20fa: 81 e1 ldi r24, 0x11 ; 17 |
20fc: 80 93 c5 01 sts 0x01C5, r24 |
2100: 80 91 c7 01 lds r24, 0x01C7 |
2104: 99 27 eor r25, r25 |
2106: 9f 93 push r25 |
2108: 8f 93 push r24 |
210a: 85 e9 ldi r24, 0x95 ; 149 |
210c: 94 e0 ldi r25, 0x04 ; 4 |
210e: 9f 93 push r25 |
2110: 8f 93 push r24 |
2112: 81 e0 ldi r24, 0x01 ; 1 |
2114: 8f 93 push r24 |
2116: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
211a: 80 91 c7 01 lds r24, 0x01C7 |
211e: 0f 90 pop r0 |
2120: 0f 90 pop r0 |
2122: 0f 90 pop r0 |
2124: 0f 90 pop r0 |
2126: 0f 90 pop r0 |
2128: e8 2f mov r30, r24 |
212a: ff 27 eor r31, r31 |
212c: ed 30 cpi r30, 0x0D ; 13 |
212e: f1 05 cpc r31, r1 |
2130: 08 f0 brcs .+2 ; 0x2134 <Menu+0xa8> |
2132: bc c3 rjmp .+1912 ; 0x28ac <Menu+0x820> |
2134: ec 5a subi r30, 0xAC ; 172 |
2136: ff 4f sbci r31, 0xFF ; 255 |
2138: 0c 94 9d 2e jmp 0x5d3a ; 0x5d3a <__tablejump2__> |
213c: 10 92 c5 01 sts 0x01C5, r1 |
2140: 83 e8 ldi r24, 0x83 ; 131 |
2142: 94 e0 ldi r25, 0x04 ; 4 |
2144: 9f 93 push r25 |
2146: 8f 93 push r24 |
2148: 11 e0 ldi r17, 0x01 ; 1 |
214a: 1f 93 push r17 |
214c: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2150: 84 e1 ldi r24, 0x14 ; 20 |
2152: 80 93 c5 01 sts 0x01C5, r24 |
2156: 8c e3 ldi r24, 0x3C ; 60 |
2158: 90 e0 ldi r25, 0x00 ; 0 |
215a: 9f 93 push r25 |
215c: 8f 93 push r24 |
215e: 1f 92 push r1 |
2160: 1f 92 push r1 |
2162: 8c e7 ldi r24, 0x7C ; 124 |
2164: 94 e0 ldi r25, 0x04 ; 4 |
2166: 9f 93 push r25 |
2168: 8f 93 push r24 |
216a: 1f 93 push r17 |
216c: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2170: 88 e2 ldi r24, 0x28 ; 40 |
2172: 80 93 c5 01 sts 0x01C5, r24 |
2176: 0e 94 a9 03 call 0x752 ; 0x752 <GetActiveParamSetNumber> |
217a: 99 27 eor r25, r25 |
217c: 9f 93 push r25 |
217e: 8f 93 push r24 |
2180: 8f e6 ldi r24, 0x6F ; 111 |
2182: 94 e0 ldi r25, 0x04 ; 4 |
2184: 9f 93 push r25 |
2186: 8f 93 push r24 |
2188: 1f 93 push r17 |
218a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
218e: 8c e3 ldi r24, 0x3C ; 60 |
2190: 80 93 c5 01 sts 0x01C5, r24 |
2194: 8f e5 ldi r24, 0x5F ; 95 |
2196: 94 e0 ldi r25, 0x04 ; 4 |
2198: 9f 93 push r25 |
219a: 8f 93 push r24 |
219c: 1f 93 push r17 |
219e: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
21a2: 80 c3 rjmp .+1792 ; 0x28a4 <Menu+0x818> |
21a4: 80 91 dc 04 lds r24, 0x04DC |
21a8: 80 ff sbrs r24, 0 |
21aa: 44 c0 rjmp .+136 ; 0x2234 <Menu+0x1a8> |
21ac: 10 92 c5 01 sts 0x01C5, r1 |
21b0: 80 91 20 02 lds r24, 0x0220 |
21b4: 90 91 21 02 lds r25, 0x0221 |
21b8: 9f 93 push r25 |
21ba: 8f 93 push r24 |
21bc: 80 e5 ldi r24, 0x50 ; 80 |
21be: 94 e0 ldi r25, 0x04 ; 4 |
21c0: 9f 93 push r25 |
21c2: 8f 93 push r24 |
21c4: 11 e0 ldi r17, 0x01 ; 1 |
21c6: 1f 93 push r17 |
21c8: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
21cc: 84 e1 ldi r24, 0x14 ; 20 |
21ce: 80 93 c5 01 sts 0x01C5, r24 |
21d2: 80 91 22 02 lds r24, 0x0222 |
21d6: 90 91 23 02 lds r25, 0x0223 |
21da: 9f 93 push r25 |
21dc: 8f 93 push r24 |
21de: 81 e4 ldi r24, 0x41 ; 65 |
21e0: 94 e0 ldi r25, 0x04 ; 4 |
21e2: 9f 93 push r25 |
21e4: 8f 93 push r24 |
21e6: 1f 93 push r17 |
21e8: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
21ec: 88 e2 ldi r24, 0x28 ; 40 |
21ee: 80 93 c5 01 sts 0x01C5, r24 |
21f2: 80 91 0a 01 lds r24, 0x010A |
21f6: 90 91 0b 01 lds r25, 0x010B |
21fa: 9f 93 push r25 |
21fc: 8f 93 push r24 |
21fe: 82 e3 ldi r24, 0x32 ; 50 |
2200: 94 e0 ldi r25, 0x04 ; 4 |
2202: 9f 93 push r25 |
2204: 8f 93 push r24 |
2206: 1f 93 push r17 |
2208: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
220c: 8c e3 ldi r24, 0x3C ; 60 |
220e: 80 93 c5 01 sts 0x01C5, r24 |
2212: 80 91 88 04 lds r24, 0x0488 |
2216: 99 27 eor r25, r25 |
2218: 9f 93 push r25 |
221a: 8f 93 push r24 |
221c: 83 e2 ldi r24, 0x23 ; 35 |
221e: 94 e0 ldi r25, 0x04 ; 4 |
2220: 9f 93 push r25 |
2222: 8f 93 push r24 |
2224: 1f 93 push r17 |
2226: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
222a: 8d b7 in r24, 0x3d ; 61 |
222c: 9e b7 in r25, 0x3e ; 62 |
222e: 44 96 adiw r24, 0x14 ; 20 |
2230: 8d bf out 0x3d, r24 ; 61 |
2232: 41 c3 rjmp .+1666 ; 0x28b6 <Menu+0x82a> |
2234: 84 e1 ldi r24, 0x14 ; 20 |
2236: 80 93 c5 01 sts 0x01C5, r24 |
223a: 8c e1 ldi r24, 0x1C ; 28 |
223c: 94 e0 ldi r25, 0x04 ; 4 |
223e: 9f 93 push r25 |
2240: 8f 93 push r24 |
2242: 11 e0 ldi r17, 0x01 ; 1 |
2244: 1f 93 push r17 |
2246: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
224a: 88 e2 ldi r24, 0x28 ; 40 |
224c: 80 93 c5 01 sts 0x01C5, r24 |
2250: 8e e0 ldi r24, 0x0E ; 14 |
2252: 94 e0 ldi r25, 0x04 ; 4 |
2254: 9f 93 push r25 |
2256: 8f 93 push r24 |
2258: 1f 93 push r17 |
225a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
225e: 8d b7 in r24, 0x3d ; 61 |
2260: 9e b7 in r25, 0x3e ; 62 |
2262: 06 96 adiw r24, 0x06 ; 6 |
2264: e5 cf rjmp .-54 ; 0x2230 <Menu+0x1a4> |
2266: 10 92 c5 01 sts 0x01C5, r1 |
226a: 84 e0 ldi r24, 0x04 ; 4 |
226c: 94 e0 ldi r25, 0x04 ; 4 |
226e: 9f 93 push r25 |
2270: 8f 93 push r24 |
2272: 11 e0 ldi r17, 0x01 ; 1 |
2274: 1f 93 push r17 |
2276: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
227a: 84 e1 ldi r24, 0x14 ; 20 |
227c: 80 93 c5 01 sts 0x01C5, r24 |
2280: 60 91 d7 01 lds r22, 0x01D7 |
2284: 70 91 d8 01 lds r23, 0x01D8 |
2288: 80 91 d9 01 lds r24, 0x01D9 |
228c: 90 91 da 01 lds r25, 0x01DA |
2290: 20 e0 ldi r18, 0x00 ; 0 |
2292: 34 e0 ldi r19, 0x04 ; 4 |
2294: 40 e0 ldi r20, 0x00 ; 0 |
2296: 50 e0 ldi r21, 0x00 ; 0 |
2298: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
229c: 5f 93 push r21 |
229e: 4f 93 push r20 |
22a0: 3f 93 push r19 |
22a2: 2f 93 push r18 |
22a4: 85 ef ldi r24, 0xF5 ; 245 |
22a6: 93 e0 ldi r25, 0x03 ; 3 |
22a8: 9f 93 push r25 |
22aa: 8f 93 push r24 |
22ac: 1f 93 push r17 |
22ae: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
22b2: 88 e2 ldi r24, 0x28 ; 40 |
22b4: 80 93 c5 01 sts 0x01C5, r24 |
22b8: 60 91 df 01 lds r22, 0x01DF |
22bc: 70 91 e0 01 lds r23, 0x01E0 |
22c0: 80 91 e1 01 lds r24, 0x01E1 |
22c4: 90 91 e2 01 lds r25, 0x01E2 |
22c8: 20 e0 ldi r18, 0x00 ; 0 |
22ca: 34 e0 ldi r19, 0x04 ; 4 |
22cc: 40 e0 ldi r20, 0x00 ; 0 |
22ce: 50 e0 ldi r21, 0x00 ; 0 |
22d0: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
22d4: 5f 93 push r21 |
22d6: 4f 93 push r20 |
22d8: 3f 93 push r19 |
22da: 2f 93 push r18 |
22dc: 86 ee ldi r24, 0xE6 ; 230 |
22de: 93 e0 ldi r25, 0x03 ; 3 |
22e0: 9f 93 push r25 |
22e2: 8f 93 push r24 |
22e4: 1f 93 push r17 |
22e6: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
22ea: 8c e3 ldi r24, 0x3C ; 60 |
22ec: 80 93 c5 01 sts 0x01C5, r24 |
22f0: 80 91 07 02 lds r24, 0x0207 |
22f4: 90 91 08 02 lds r25, 0x0208 |
22f8: 9f 93 push r25 |
22fa: 8f 93 push r24 |
22fc: 87 ed ldi r24, 0xD7 ; 215 |
22fe: 93 e0 ldi r25, 0x03 ; 3 |
2300: 9f 93 push r25 |
2302: 8f 93 push r24 |
2304: 1f 93 push r17 |
2306: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
230a: 8d b7 in r24, 0x3d ; 61 |
230c: 9e b7 in r25, 0x3e ; 62 |
230e: 46 96 adiw r24, 0x16 ; 22 |
2310: 8f cf rjmp .-226 ; 0x2230 <Menu+0x1a4> |
2312: 10 92 c5 01 sts 0x01C5, r1 |
2316: 80 91 ac 04 lds r24, 0x04AC |
231a: 90 91 ad 04 lds r25, 0x04AD |
231e: 20 91 aa 04 lds r18, 0x04AA |
2322: 30 91 ab 04 lds r19, 0x04AB |
2326: 9f 93 push r25 |
2328: 8f 93 push r24 |
232a: 3f 93 push r19 |
232c: 2f 93 push r18 |
232e: 87 ec ldi r24, 0xC7 ; 199 |
2330: 93 e0 ldi r25, 0x03 ; 3 |
2332: 9f 93 push r25 |
2334: 8f 93 push r24 |
2336: 11 e0 ldi r17, 0x01 ; 1 |
2338: 1f 93 push r17 |
233a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
233e: 84 e1 ldi r24, 0x14 ; 20 |
2340: 80 93 c5 01 sts 0x01C5, r24 |
2344: 80 91 b0 04 lds r24, 0x04B0 |
2348: 90 91 b1 04 lds r25, 0x04B1 |
234c: 20 91 ae 04 lds r18, 0x04AE |
2350: 30 91 af 04 lds r19, 0x04AF |
2354: 9f 93 push r25 |
2356: 8f 93 push r24 |
2358: 3f 93 push r19 |
235a: 2f 93 push r18 |
235c: 87 eb ldi r24, 0xB7 ; 183 |
235e: 93 e0 ldi r25, 0x03 ; 3 |
2360: 9f 93 push r25 |
2362: 8f 93 push r24 |
2364: 1f 93 push r17 |
2366: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
236a: 88 e2 ldi r24, 0x28 ; 40 |
236c: 80 93 c5 01 sts 0x01C5, r24 |
2370: 80 91 b4 04 lds r24, 0x04B4 |
2374: 90 91 b5 04 lds r25, 0x04B5 |
2378: 20 91 b2 04 lds r18, 0x04B2 |
237c: 30 91 b3 04 lds r19, 0x04B3 |
2380: 9f 93 push r25 |
2382: 8f 93 push r24 |
2384: 3f 93 push r19 |
2386: 2f 93 push r18 |
2388: 87 ea ldi r24, 0xA7 ; 167 |
238a: 93 e0 ldi r25, 0x03 ; 3 |
238c: 9f 93 push r25 |
238e: 8f 93 push r24 |
2390: 1f 93 push r17 |
2392: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2396: 8c e3 ldi r24, 0x3C ; 60 |
2398: 80 93 c5 01 sts 0x01C5, r24 |
239c: 80 91 b6 04 lds r24, 0x04B6 |
23a0: 90 91 b7 04 lds r25, 0x04B7 |
23a4: 9f 93 push r25 |
23a6: 8f 93 push r24 |
23a8: 87 e9 ldi r24, 0x97 ; 151 |
23aa: 93 e0 ldi r25, 0x03 ; 3 |
23ac: 70 c0 rjmp .+224 ; 0x248e <Menu+0x402> |
23ae: 10 92 c5 01 sts 0x01C5, r1 |
23b2: e0 91 d5 04 lds r30, 0x04D5 |
23b6: ff 27 eor r31, r31 |
23b8: ee 0f add r30, r30 |
23ba: ff 1f adc r31, r31 |
23bc: e8 55 subi r30, 0x58 ; 88 |
23be: fb 4f sbci r31, 0xFB ; 251 |
23c0: 20 81 ld r18, Z |
23c2: 31 81 ldd r19, Z+1 ; 0x01 |
23c4: e0 91 d4 04 lds r30, 0x04D4 |
23c8: ff 27 eor r31, r31 |
23ca: ee 0f add r30, r30 |
23cc: ff 1f adc r31, r31 |
23ce: e8 55 subi r30, 0x58 ; 88 |
23d0: fb 4f sbci r31, 0xFB ; 251 |
23d2: 80 81 ld r24, Z |
23d4: 91 81 ldd r25, Z+1 ; 0x01 |
23d6: 3f 93 push r19 |
23d8: 2f 93 push r18 |
23da: 9f 93 push r25 |
23dc: 8f 93 push r24 |
23de: 87 e8 ldi r24, 0x87 ; 135 |
23e0: 93 e0 ldi r25, 0x03 ; 3 |
23e2: 9f 93 push r25 |
23e4: 8f 93 push r24 |
23e6: 11 e0 ldi r17, 0x01 ; 1 |
23e8: 1f 93 push r17 |
23ea: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
23ee: 84 e1 ldi r24, 0x14 ; 20 |
23f0: 80 93 c5 01 sts 0x01C5, r24 |
23f4: e0 91 d7 04 lds r30, 0x04D7 |
23f8: ff 27 eor r31, r31 |
23fa: ee 0f add r30, r30 |
23fc: ff 1f adc r31, r31 |
23fe: e8 55 subi r30, 0x58 ; 88 |
2400: fb 4f sbci r31, 0xFB ; 251 |
2402: 20 81 ld r18, Z |
2404: 31 81 ldd r19, Z+1 ; 0x01 |
2406: e0 91 d6 04 lds r30, 0x04D6 |
240a: ff 27 eor r31, r31 |
240c: ee 0f add r30, r30 |
240e: ff 1f adc r31, r31 |
2410: e8 55 subi r30, 0x58 ; 88 |
2412: fb 4f sbci r31, 0xFB ; 251 |
2414: 80 81 ld r24, Z |
2416: 91 81 ldd r25, Z+1 ; 0x01 |
2418: 3f 93 push r19 |
241a: 2f 93 push r18 |
241c: 9f 93 push r25 |
241e: 8f 93 push r24 |
2420: 87 e7 ldi r24, 0x77 ; 119 |
2422: 93 e0 ldi r25, 0x03 ; 3 |
2424: 9f 93 push r25 |
2426: 8f 93 push r24 |
2428: 1f 93 push r17 |
242a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
242e: 88 e2 ldi r24, 0x28 ; 40 |
2430: 80 93 c5 01 sts 0x01C5, r24 |
2434: e0 91 d9 04 lds r30, 0x04D9 |
2438: ff 27 eor r31, r31 |
243a: ee 0f add r30, r30 |
243c: ff 1f adc r31, r31 |
243e: e8 55 subi r30, 0x58 ; 88 |
2440: fb 4f sbci r31, 0xFB ; 251 |
2442: 20 81 ld r18, Z |
2444: 31 81 ldd r19, Z+1 ; 0x01 |
2446: e0 91 d8 04 lds r30, 0x04D8 |
244a: ff 27 eor r31, r31 |
244c: ee 0f add r30, r30 |
244e: ff 1f adc r31, r31 |
2450: e8 55 subi r30, 0x58 ; 88 |
2452: fb 4f sbci r31, 0xFB ; 251 |
2454: 80 81 ld r24, Z |
2456: 91 81 ldd r25, Z+1 ; 0x01 |
2458: 3f 93 push r19 |
245a: 2f 93 push r18 |
245c: 9f 93 push r25 |
245e: 8f 93 push r24 |
2460: 87 e6 ldi r24, 0x67 ; 103 |
2462: 93 e0 ldi r25, 0x03 ; 3 |
2464: 9f 93 push r25 |
2466: 8f 93 push r24 |
2468: 1f 93 push r17 |
246a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
246e: 8c e3 ldi r24, 0x3C ; 60 |
2470: 80 93 c5 01 sts 0x01C5, r24 |
2474: e0 91 da 04 lds r30, 0x04DA |
2478: ff 27 eor r31, r31 |
247a: ee 0f add r30, r30 |
247c: ff 1f adc r31, r31 |
247e: e8 55 subi r30, 0x58 ; 88 |
2480: fb 4f sbci r31, 0xFB ; 251 |
2482: 80 81 ld r24, Z |
2484: 91 81 ldd r25, Z+1 ; 0x01 |
2486: 9f 93 push r25 |
2488: 8f 93 push r24 |
248a: 87 e5 ldi r24, 0x57 ; 87 |
248c: 93 e0 ldi r25, 0x03 ; 3 |
248e: 9f 93 push r25 |
2490: 8f 93 push r24 |
2492: 1f 93 push r17 |
2494: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2498: 8d b7 in r24, 0x3d ; 61 |
249a: 9e b7 in r25, 0x3e ; 62 |
249c: 4a 96 adiw r24, 0x1a ; 26 |
249e: c8 ce rjmp .-624 ; 0x2230 <Menu+0x1a4> |
24a0: 10 92 c5 01 sts 0x01C5, r1 |
24a4: 89 e4 ldi r24, 0x49 ; 73 |
24a6: 93 e0 ldi r25, 0x03 ; 3 |
24a8: 9f 93 push r25 |
24aa: 8f 93 push r24 |
24ac: 11 e0 ldi r17, 0x01 ; 1 |
24ae: 1f 93 push r17 |
24b0: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
24b4: 84 e1 ldi r24, 0x14 ; 20 |
24b6: 80 93 c5 01 sts 0x01C5, r24 |
24ba: 20 91 d1 01 lds r18, 0x01D1 |
24be: 30 91 d2 01 lds r19, 0x01D2 |
24c2: 80 91 ab 01 lds r24, 0x01AB |
24c6: 90 91 ac 01 lds r25, 0x01AC |
24ca: 60 91 b7 01 lds r22, 0x01B7 |
24ce: 3f 93 push r19 |
24d0: 2f 93 push r18 |
24d2: 77 27 eor r23, r23 |
24d4: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
24d8: 7f 93 push r23 |
24da: 6f 93 push r22 |
24dc: 8a e3 ldi r24, 0x3A ; 58 |
24de: 93 e0 ldi r25, 0x03 ; 3 |
24e0: 9f 93 push r25 |
24e2: 8f 93 push r24 |
24e4: 1f 93 push r17 |
24e6: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
24ea: 88 e2 ldi r24, 0x28 ; 40 |
24ec: 80 93 c5 01 sts 0x01C5, r24 |
24f0: 20 91 d3 01 lds r18, 0x01D3 |
24f4: 30 91 d4 01 lds r19, 0x01D4 |
24f8: 80 91 ad 01 lds r24, 0x01AD |
24fc: 90 91 ae 01 lds r25, 0x01AE |
2500: 60 91 b8 01 lds r22, 0x01B8 |
2504: 3f 93 push r19 |
2506: 2f 93 push r18 |
2508: 77 27 eor r23, r23 |
250a: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
250e: 7f 93 push r23 |
2510: 6f 93 push r22 |
2512: 8b e2 ldi r24, 0x2B ; 43 |
2514: 93 e0 ldi r25, 0x03 ; 3 |
2516: 9f 93 push r25 |
2518: 8f 93 push r24 |
251a: 1f 93 push r17 |
251c: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2520: 8c e3 ldi r24, 0x3C ; 60 |
2522: 80 93 c5 01 sts 0x01C5, r24 |
2526: 20 91 d5 01 lds r18, 0x01D5 |
252a: 30 91 d6 01 lds r19, 0x01D6 |
252e: 80 91 af 01 lds r24, 0x01AF |
2532: 90 91 b0 01 lds r25, 0x01B0 |
2536: 60 91 b9 01 lds r22, 0x01B9 |
253a: 3f 93 push r19 |
253c: 2f 93 push r18 |
253e: 77 27 eor r23, r23 |
2540: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
2544: 7f 93 push r23 |
2546: 6f 93 push r22 |
2548: 8c e1 ldi r24, 0x1C ; 28 |
254a: 93 e0 ldi r25, 0x03 ; 3 |
254c: 9f 93 push r25 |
254e: 8f 93 push r24 |
2550: 1f 93 push r17 |
2552: 5b c0 rjmp .+182 ; 0x260a <Menu+0x57e> |
2554: 10 92 c5 01 sts 0x01C5, r1 |
2558: 8f e0 ldi r24, 0x0F ; 15 |
255a: 93 e0 ldi r25, 0x03 ; 3 |
255c: 9f 93 push r25 |
255e: 8f 93 push r24 |
2560: 81 e0 ldi r24, 0x01 ; 1 |
2562: f8 2e mov r15, r24 |
2564: ff 92 push r15 |
2566: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
256a: 84 e1 ldi r24, 0x14 ; 20 |
256c: 80 93 c5 01 sts 0x01C5, r24 |
2570: 20 91 19 05 lds r18, 0x0519 |
2574: 30 91 1a 05 lds r19, 0x051A |
2578: 80 91 b3 01 lds r24, 0x01B3 |
257c: 90 91 b4 01 lds r25, 0x01B4 |
2580: 60 91 ba 01 lds r22, 0x01BA |
2584: 3f 93 push r19 |
2586: 2f 93 push r18 |
2588: 77 27 eor r23, r23 |
258a: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
258e: 7f 93 push r23 |
2590: 6f 93 push r22 |
2592: 80 e0 ldi r24, 0x00 ; 0 |
2594: 93 e0 ldi r25, 0x03 ; 3 |
2596: 9f 93 push r25 |
2598: 8f 93 push r24 |
259a: ff 92 push r15 |
259c: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
25a0: 88 e2 ldi r24, 0x28 ; 40 |
25a2: 80 93 c5 01 sts 0x01C5, r24 |
25a6: 20 91 1b 05 lds r18, 0x051B |
25aa: 30 91 1c 05 lds r19, 0x051C |
25ae: 80 91 b1 01 lds r24, 0x01B1 |
25b2: 90 91 b2 01 lds r25, 0x01B2 |
25b6: 60 91 bb 01 lds r22, 0x01BB |
25ba: 3f 93 push r19 |
25bc: 2f 93 push r18 |
25be: 77 27 eor r23, r23 |
25c0: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
25c4: 7f 93 push r23 |
25c6: 6f 93 push r22 |
25c8: 81 ef ldi r24, 0xF1 ; 241 |
25ca: 92 e0 ldi r25, 0x02 ; 2 |
25cc: 9f 93 push r25 |
25ce: 8f 93 push r24 |
25d0: ff 92 push r15 |
25d2: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
25d6: 8c e3 ldi r24, 0x3C ; 60 |
25d8: 80 93 c5 01 sts 0x01C5, r24 |
25dc: 60 91 1d 05 lds r22, 0x051D |
25e0: 70 91 1e 05 lds r23, 0x051E |
25e4: 80 91 1f 05 lds r24, 0x051F |
25e8: 90 91 20 05 lds r25, 0x0520 |
25ec: 00 91 7d 04 lds r16, 0x047D |
25f0: 10 91 7e 04 lds r17, 0x047E |
25f4: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
25f8: 7f 93 push r23 |
25fa: 6f 93 push r22 |
25fc: 1f 93 push r17 |
25fe: 0f 93 push r16 |
2600: 82 ee ldi r24, 0xE2 ; 226 |
2602: 92 e0 ldi r25, 0x02 ; 2 |
2604: 9f 93 push r25 |
2606: 8f 93 push r24 |
2608: ff 92 push r15 |
260a: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
260e: 8d b7 in r24, 0x3d ; 61 |
2610: 9e b7 in r25, 0x3e ; 62 |
2612: 48 96 adiw r24, 0x18 ; 24 |
2614: 0d ce rjmp .-998 ; 0x2230 <Menu+0x1a4> |
2616: 84 e1 ldi r24, 0x14 ; 20 |
2618: 80 93 c5 01 sts 0x01C5, r24 |
261c: 80 91 04 01 lds r24, 0x0104 |
2620: 90 91 05 01 lds r25, 0x0105 |
2624: 9f 93 push r25 |
2626: 8f 93 push r24 |
2628: 83 ed ldi r24, 0xD3 ; 211 |
262a: 92 e0 ldi r25, 0x02 ; 2 |
262c: 9f 93 push r25 |
262e: 8f 93 push r24 |
2630: 11 e0 ldi r17, 0x01 ; 1 |
2632: 1f 93 push r17 |
2634: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2638: 88 e2 ldi r24, 0x28 ; 40 |
263a: 80 93 c5 01 sts 0x01C5, r24 |
263e: 80 91 18 02 lds r24, 0x0218 |
2642: 99 27 eor r25, r25 |
2644: 9f 93 push r25 |
2646: 8f 93 push r24 |
2648: 84 ec ldi r24, 0xC4 ; 196 |
264a: 92 e0 ldi r25, 0x02 ; 2 |
264c: 9f 93 push r25 |
264e: 8f 93 push r24 |
2650: 1f 93 push r17 |
2652: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2656: 8d b7 in r24, 0x3d ; 61 |
2658: 9e b7 in r25, 0x3e ; 62 |
265a: 0a 96 adiw r24, 0x0a ; 10 |
265c: e9 cd rjmp .-1070 ; 0x2230 <Menu+0x1a4> |
265e: 10 92 c5 01 sts 0x01C5, r1 |
2662: 85 eb ldi r24, 0xB5 ; 181 |
2664: 92 e0 ldi r25, 0x02 ; 2 |
2666: 9f 93 push r25 |
2668: 8f 93 push r24 |
266a: 11 e0 ldi r17, 0x01 ; 1 |
266c: 1f 93 push r17 |
266e: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2672: 84 e1 ldi r24, 0x14 ; 20 |
2674: 80 93 c5 01 sts 0x01C5, r24 |
2678: 80 91 0b 02 lds r24, 0x020B |
267c: 90 91 0c 02 lds r25, 0x020C |
2680: 9f 93 push r25 |
2682: 8f 93 push r24 |
2684: 86 ea ldi r24, 0xA6 ; 166 |
2686: 92 e0 ldi r25, 0x02 ; 2 |
2688: 9f 93 push r25 |
268a: 8f 93 push r24 |
268c: 1f 93 push r17 |
268e: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2692: 88 e2 ldi r24, 0x28 ; 40 |
2694: 80 93 c5 01 sts 0x01C5, r24 |
2698: 80 91 07 02 lds r24, 0x0207 |
269c: 90 91 08 02 lds r25, 0x0208 |
26a0: 9f 93 push r25 |
26a2: 8f 93 push r24 |
26a4: 87 e9 ldi r24, 0x97 ; 151 |
26a6: 92 e0 ldi r25, 0x02 ; 2 |
26a8: 9f 93 push r25 |
26aa: 8f 93 push r24 |
26ac: 1f 93 push r17 |
26ae: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
26b2: 8c e3 ldi r24, 0x3C ; 60 |
26b4: 80 93 c5 01 sts 0x01C5, r24 |
26b8: 80 91 09 02 lds r24, 0x0209 |
26bc: 90 91 0a 02 lds r25, 0x020A |
26c0: 9f 93 push r25 |
26c2: 8f 93 push r24 |
26c4: 88 e8 ldi r24, 0x88 ; 136 |
26c6: 92 e0 ldi r25, 0x02 ; 2 |
26c8: e8 c0 rjmp .+464 ; 0x289a <Menu+0x80e> |
26ca: 10 92 c5 01 sts 0x01C5, r1 |
26ce: 80 91 10 02 lds r24, 0x0210 |
26d2: 90 91 11 02 lds r25, 0x0211 |
26d6: 9f 93 push r25 |
26d8: 8f 93 push r24 |
26da: 8c e7 ldi r24, 0x7C ; 124 |
26dc: 92 e0 ldi r25, 0x02 ; 2 |
26de: 9f 93 push r25 |
26e0: 8f 93 push r24 |
26e2: 11 e0 ldi r17, 0x01 ; 1 |
26e4: 1f 93 push r17 |
26e6: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
26ea: 84 e1 ldi r24, 0x14 ; 20 |
26ec: 80 93 c5 01 sts 0x01C5, r24 |
26f0: 80 91 12 02 lds r24, 0x0212 |
26f4: 90 91 13 02 lds r25, 0x0213 |
26f8: 9f 93 push r25 |
26fa: 8f 93 push r24 |
26fc: 80 e7 ldi r24, 0x70 ; 112 |
26fe: 92 e0 ldi r25, 0x02 ; 2 |
2700: 9f 93 push r25 |
2702: 8f 93 push r24 |
2704: 1f 93 push r17 |
2706: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
270a: 88 e2 ldi r24, 0x28 ; 40 |
270c: 80 93 c5 01 sts 0x01C5, r24 |
2710: 80 91 14 02 lds r24, 0x0214 |
2714: 90 91 15 02 lds r25, 0x0215 |
2718: 9f 93 push r25 |
271a: 8f 93 push r24 |
271c: 84 e6 ldi r24, 0x64 ; 100 |
271e: 92 e0 ldi r25, 0x02 ; 2 |
2720: 9f 93 push r25 |
2722: 8f 93 push r24 |
2724: 1f 93 push r17 |
2726: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
272a: 8c e3 ldi r24, 0x3C ; 60 |
272c: 80 93 c5 01 sts 0x01C5, r24 |
2730: 80 91 16 02 lds r24, 0x0216 |
2734: 90 91 17 02 lds r25, 0x0217 |
2738: 9f 93 push r25 |
273a: 8f 93 push r24 |
273c: 88 e5 ldi r24, 0x58 ; 88 |
273e: 92 e0 ldi r25, 0x02 ; 2 |
2740: 6f cd rjmp .-1314 ; 0x2220 <Menu+0x194> |
2742: 10 92 c5 01 sts 0x01C5, r1 |
2746: 80 e5 ldi r24, 0x50 ; 80 |
2748: 92 e0 ldi r25, 0x02 ; 2 |
274a: 9f 93 push r25 |
274c: 8f 93 push r24 |
274e: 11 e0 ldi r17, 0x01 ; 1 |
2750: 1f 93 push r17 |
2752: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2756: 84 e1 ldi r24, 0x14 ; 20 |
2758: 80 93 c5 01 sts 0x01C5, r24 |
275c: 80 91 89 01 lds r24, 0x0189 |
2760: 99 27 eor r25, r25 |
2762: 9f 93 push r25 |
2764: 8f 93 push r24 |
2766: 82 e4 ldi r24, 0x42 ; 66 |
2768: 92 e0 ldi r25, 0x02 ; 2 |
276a: 9f 93 push r25 |
276c: 8f 93 push r24 |
276e: 1f 93 push r17 |
2770: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2774: 88 e2 ldi r24, 0x28 ; 40 |
2776: 80 93 c5 01 sts 0x01C5, r24 |
277a: 80 91 a8 01 lds r24, 0x01A8 |
277e: 90 91 a9 01 lds r25, 0x01A9 |
2782: 9f 93 push r25 |
2784: 8f 93 push r24 |
2786: 84 e3 ldi r24, 0x34 ; 52 |
2788: 92 e0 ldi r25, 0x02 ; 2 |
278a: 9f 93 push r25 |
278c: 8f 93 push r24 |
278e: 1f 93 push r17 |
2790: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2794: 8c e3 ldi r24, 0x3C ; 60 |
2796: 80 93 c5 01 sts 0x01C5, r24 |
279a: 80 91 f8 04 lds r24, 0x04F8 |
279e: 99 27 eor r25, r25 |
27a0: 9f 93 push r25 |
27a2: 8f 93 push r24 |
27a4: 80 91 f7 04 lds r24, 0x04F7 |
27a8: 99 27 eor r25, r25 |
27aa: 9f 93 push r25 |
27ac: 8f 93 push r24 |
27ae: 86 e2 ldi r24, 0x26 ; 38 |
27b0: 92 e0 ldi r25, 0x02 ; 2 |
27b2: 9f 93 push r25 |
27b4: 8f 93 push r24 |
27b6: 1f 93 push r17 |
27b8: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
27bc: 36 cd rjmp .-1428 ; 0x222a <Menu+0x19e> |
27be: 10 92 c5 01 sts 0x01C5, r1 |
27c2: 8e e1 ldi r24, 0x1E ; 30 |
27c4: 92 e0 ldi r25, 0x02 ; 2 |
27c6: 9f 93 push r25 |
27c8: 8f 93 push r24 |
27ca: 11 e0 ldi r17, 0x01 ; 1 |
27cc: 1f 93 push r17 |
27ce: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
27d2: 84 e1 ldi r24, 0x14 ; 20 |
27d4: 80 93 c5 01 sts 0x01C5, r24 |
27d8: 80 91 8d 04 lds r24, 0x048D |
27dc: 99 27 eor r25, r25 |
27de: 87 fd sbrc r24, 7 |
27e0: 90 95 com r25 |
27e2: 9f 93 push r25 |
27e4: 8f 93 push r24 |
27e6: 8f e0 ldi r24, 0x0F ; 15 |
27e8: 92 e0 ldi r25, 0x02 ; 2 |
27ea: 9f 93 push r25 |
27ec: 8f 93 push r24 |
27ee: 1f 93 push r17 |
27f0: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
27f4: 88 e2 ldi r24, 0x28 ; 40 |
27f6: 80 93 c5 01 sts 0x01C5, r24 |
27fa: 80 91 8e 04 lds r24, 0x048E |
27fe: 99 27 eor r25, r25 |
2800: 87 fd sbrc r24, 7 |
2802: 90 95 com r25 |
2804: 9f 93 push r25 |
2806: 8f 93 push r24 |
2808: 80 e0 ldi r24, 0x00 ; 0 |
280a: 92 e0 ldi r25, 0x02 ; 2 |
280c: 9f 93 push r25 |
280e: 8f 93 push r24 |
2810: 1f 93 push r17 |
2812: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2816: 8c e3 ldi r24, 0x3C ; 60 |
2818: 80 93 c5 01 sts 0x01C5, r24 |
281c: 80 91 8f 04 lds r24, 0x048F |
2820: 99 27 eor r25, r25 |
2822: 87 fd sbrc r24, 7 |
2824: 90 95 com r25 |
2826: 9f 93 push r25 |
2828: 8f 93 push r24 |
282a: 81 ef ldi r24, 0xF1 ; 241 |
282c: 91 e0 ldi r25, 0x01 ; 1 |
282e: 35 c0 rjmp .+106 ; 0x289a <Menu+0x80e> |
2830: 10 92 c5 01 sts 0x01C5, r1 |
2834: 87 ee ldi r24, 0xE7 ; 231 |
2836: 91 e0 ldi r25, 0x01 ; 1 |
2838: 9f 93 push r25 |
283a: 8f 93 push r24 |
283c: 11 e0 ldi r17, 0x01 ; 1 |
283e: 1f 93 push r17 |
2840: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2844: 84 e1 ldi r24, 0x14 ; 20 |
2846: 80 93 c5 01 sts 0x01C5, r24 |
284a: 80 91 90 04 lds r24, 0x0490 |
284e: 90 91 91 04 lds r25, 0x0491 |
2852: 9f 93 push r25 |
2854: 8f 93 push r24 |
2856: 89 ed ldi r24, 0xD9 ; 217 |
2858: 91 e0 ldi r25, 0x01 ; 1 |
285a: 9f 93 push r25 |
285c: 8f 93 push r24 |
285e: 1f 93 push r17 |
2860: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2864: 88 e2 ldi r24, 0x28 ; 40 |
2866: 80 93 c5 01 sts 0x01C5, r24 |
286a: 80 91 92 04 lds r24, 0x0492 |
286e: 90 91 93 04 lds r25, 0x0493 |
2872: 9f 93 push r25 |
2874: 8f 93 push r24 |
2876: 8b ec ldi r24, 0xCB ; 203 |
2878: 91 e0 ldi r25, 0x01 ; 1 |
287a: 9f 93 push r25 |
287c: 8f 93 push r24 |
287e: 1f 93 push r17 |
2880: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
2884: 8c e3 ldi r24, 0x3C ; 60 |
2886: 80 93 c5 01 sts 0x01C5, r24 |
288a: 80 91 94 04 lds r24, 0x0494 |
288e: 90 91 95 04 lds r25, 0x0495 |
2892: 9f 93 push r25 |
2894: 8f 93 push r24 |
2896: 8d eb ldi r24, 0xBD ; 189 |
2898: 91 e0 ldi r25, 0x01 ; 1 |
289a: 9f 93 push r25 |
289c: 8f 93 push r24 |
289e: 1f 93 push r17 |
28a0: 0e 94 1c 09 call 0x1238 ; 0x1238 <_printf_P> |
28a4: 8d b7 in r24, 0x3d ; 61 |
28a6: 9e b7 in r25, 0x3e ; 62 |
28a8: 42 96 adiw r24, 0x12 ; 18 |
28aa: c2 cc rjmp .-1660 ; 0x2230 <Menu+0x1a4> |
28ac: 81 50 subi r24, 0x01 ; 1 |
28ae: 80 93 66 01 sts 0x0166, r24 |
28b2: 10 92 c7 01 sts 0x01C7, r1 |
28b6: 10 92 c6 01 sts 0x01C6, r1 |
28ba: 1f 91 pop r17 |
28bc: 0f 91 pop r16 |
28be: ff 90 pop r15 |
28c0: 08 95 ret |
000028c2 <__vector_19>: |
28c2: 1f 92 push r1 |
28c4: 0f 92 push r0 |
28c6: 0f b6 in r0, 0x3f ; 63 |
28c8: 0f 92 push r0 |
28ca: 11 24 eor r1, r1 |
28cc: 2f 93 push r18 |
28ce: 3f 93 push r19 |
28d0: 4f 93 push r20 |
28d2: 8f 93 push r24 |
28d4: 9f 93 push r25 |
28d6: 80 91 96 04 lds r24, 0x0496 |
28da: 83 30 cpi r24, 0x03 ; 3 |
28dc: 19 f0 breq .+6 ; 0x28e4 <__vector_19+0x22> |
28de: 84 30 cpi r24, 0x04 ; 4 |
28e0: a1 f5 brne .+104 ; 0x294a <__vector_19+0x88> |
28e2: 08 c0 rjmp .+16 ; 0x28f4 <__vector_19+0x32> |
28e4: 8e b5 in r24, 0x2e ; 46 |
28e6: 80 93 c8 01 sts 0x01C8, r24 |
28ea: 1e bc out 0x2e, r1 ; 46 |
28ec: 84 e0 ldi r24, 0x04 ; 4 |
28ee: 80 93 96 04 sts 0x0496, r24 |
28f2: 2b c0 rjmp .+86 ; 0x294a <__vector_19+0x88> |
28f4: 80 91 c8 01 lds r24, 0x01C8 |
28f8: 99 27 eor r25, r25 |
28fa: 38 2f mov r19, r24 |
28fc: 22 27 eor r18, r18 |
28fe: 8e b5 in r24, 0x2e ; 46 |
2900: 99 27 eor r25, r25 |
2902: 28 2b or r18, r24 |
2904: 39 2b or r19, r25 |
2906: c9 01 movw r24, r18 |
2908: 8d 50 subi r24, 0x0D ; 13 |
290a: 9e 4f sbci r25, 0xFE ; 254 |
290c: 87 5e subi r24, 0xE7 ; 231 |
290e: 93 40 sbci r25, 0x03 ; 3 |
2910: d0 f4 brcc .+52 ; 0x2946 <__vector_19+0x84> |
2912: 80 91 99 04 lds r24, 0x0499 |
2916: 85 30 cpi r24, 0x05 ; 5 |
2918: 19 f0 breq .+6 ; 0x2920 <__vector_19+0x5e> |
291a: 86 30 cpi r24, 0x06 ; 6 |
291c: 69 f4 brne .+26 ; 0x2938 <__vector_19+0x76> |
291e: 06 c0 rjmp .+12 ; 0x292c <__vector_19+0x6a> |
2920: 30 93 9b 04 sts 0x049B, r19 |
2924: 20 93 9a 04 sts 0x049A, r18 |
2928: 86 e0 ldi r24, 0x06 ; 6 |
292a: 0b c0 rjmp .+22 ; 0x2942 <__vector_19+0x80> |
292c: 30 93 9d 04 sts 0x049D, r19 |
2930: 20 93 9c 04 sts 0x049C, r18 |
2934: 87 e0 ldi r24, 0x07 ; 7 |
2936: 05 c0 rjmp .+10 ; 0x2942 <__vector_19+0x80> |
2938: 30 93 9f 04 sts 0x049F, r19 |
293c: 20 93 9e 04 sts 0x049E, r18 |
2940: 85 e0 ldi r24, 0x05 ; 5 |
2942: 80 93 99 04 sts 0x0499, r24 |
2946: 10 92 96 04 sts 0x0496, r1 |
294a: 9f 91 pop r25 |
294c: 8f 91 pop r24 |
294e: 4f 91 pop r20 |
2950: 3f 91 pop r19 |
2952: 2f 91 pop r18 |
2954: 0f 90 pop r0 |
2956: 0f be out 0x3f, r0 ; 63 |
2958: 0f 90 pop r0 |
295a: 1f 90 pop r1 |
295c: 18 95 reti |
0000295e <heading_MM3>: |
295e: a0 e1 ldi r26, 0x10 ; 16 |
2960: b0 e0 ldi r27, 0x00 ; 0 |
2962: e5 eb ldi r30, 0xB5 ; 181 |
2964: f4 e1 ldi r31, 0x14 ; 20 |
2966: 0c 94 66 2e jmp 0x5ccc ; 0x5ccc <__prologue_saves__> |
296a: e0 90 f1 04 lds r14, 0x04F1 |
296e: ff 24 eor r15, r15 |
2970: 33 e0 ldi r19, 0x03 ; 3 |
2972: ee 0c add r14, r14 |
2974: ff 1c adc r15, r15 |
2976: 3a 95 dec r19 |
2978: e1 f7 brne .-8 ; 0x2972 <heading_MM3+0x14> |
297a: 00 27 eor r16, r16 |
297c: 11 27 eor r17, r17 |
297e: 60 91 d7 01 lds r22, 0x01D7 |
2982: 70 91 d8 01 lds r23, 0x01D8 |
2986: 80 91 d9 01 lds r24, 0x01D9 |
298a: 90 91 da 01 lds r25, 0x01DA |
298e: a8 01 movw r20, r16 |
2990: 97 01 movw r18, r14 |
2992: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2996: 59 01 movw r10, r18 |
2998: 6a 01 movw r12, r20 |
299a: c9 01 movw r24, r18 |
299c: 0e 94 c9 17 call 0x2f92 ; 0x2f92 <sin_f> |
29a0: 6d 87 std Y+13, r22 ; 0x0d |
29a2: 7e 87 std Y+14, r23 ; 0x0e |
29a4: 8f 87 std Y+15, r24 ; 0x0f |
29a6: 98 8b std Y+16, r25 ; 0x10 |
29a8: c5 01 movw r24, r10 |
29aa: 0e 94 29 18 call 0x3052 ; 0x3052 <cos_f> |
29ae: 69 87 std Y+9, r22 ; 0x09 |
29b0: 7a 87 std Y+10, r23 ; 0x0a |
29b2: 8b 87 std Y+11, r24 ; 0x0b |
29b4: 9c 87 std Y+12, r25 ; 0x0c |
29b6: 60 91 df 01 lds r22, 0x01DF |
29ba: 70 91 e0 01 lds r23, 0x01E0 |
29be: 80 91 e1 01 lds r24, 0x01E1 |
29c2: 90 91 e2 01 lds r25, 0x01E2 |
29c6: a8 01 movw r20, r16 |
29c8: 97 01 movw r18, r14 |
29ca: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
29ce: 79 01 movw r14, r18 |
29d0: 8a 01 movw r16, r20 |
29d2: c9 01 movw r24, r18 |
29d4: 0e 94 c9 17 call 0x2f92 ; 0x2f92 <sin_f> |
29d8: 6d 83 std Y+5, r22 ; 0x05 |
29da: 7e 83 std Y+6, r23 ; 0x06 |
29dc: 8f 83 std Y+7, r24 ; 0x07 |
29de: 98 87 std Y+8, r25 ; 0x08 |
29e0: c7 01 movw r24, r14 |
29e2: 0e 94 29 18 call 0x3052 ; 0x3052 <cos_f> |
29e6: 69 83 std Y+1, r22 ; 0x01 |
29e8: 7a 83 std Y+2, r23 ; 0x02 |
29ea: 8b 83 std Y+3, r24 ; 0x03 |
29ec: 9c 83 std Y+4, r25 ; 0x04 |
29ee: a0 90 9a 04 lds r10, 0x049A |
29f2: b0 90 9b 04 lds r11, 0x049B |
29f6: 80 91 8d 04 lds r24, 0x048D |
29fa: 99 27 eor r25, r25 |
29fc: 87 fd sbrc r24, 7 |
29fe: 90 95 com r25 |
2a00: a8 1a sub r10, r24 |
2a02: b9 0a sbc r11, r25 |
2a04: 80 90 9c 04 lds r8, 0x049C |
2a08: 90 90 9d 04 lds r9, 0x049D |
2a0c: 80 91 8e 04 lds r24, 0x048E |
2a10: 99 27 eor r25, r25 |
2a12: 87 fd sbrc r24, 7 |
2a14: 90 95 com r25 |
2a16: 88 1a sub r8, r24 |
2a18: 99 0a sbc r9, r25 |
2a1a: 40 90 9e 04 lds r4, 0x049E |
2a1e: 50 90 9f 04 lds r5, 0x049F |
2a22: 80 91 8f 04 lds r24, 0x048F |
2a26: 99 27 eor r25, r25 |
2a28: 87 fd sbrc r24, 7 |
2a2a: 90 95 com r25 |
2a2c: 48 1a sub r4, r24 |
2a2e: 59 0a sbc r5, r25 |
2a30: 20 90 90 04 lds r2, 0x0490 |
2a34: 30 90 91 04 lds r3, 0x0491 |
2a38: c0 90 92 04 lds r12, 0x0492 |
2a3c: d0 90 93 04 lds r13, 0x0493 |
2a40: c2 14 cp r12, r2 |
2a42: d3 04 cpc r13, r3 |
2a44: d0 f4 brcc .+52 ; 0x2a7a <heading_MM3+0x11c> |
2a46: 60 90 94 04 lds r6, 0x0494 |
2a4a: 70 90 95 04 lds r7, 0x0495 |
2a4e: 62 14 cp r6, r2 |
2a50: 73 04 cpc r7, r3 |
2a52: 98 f4 brcc .+38 ; 0x2a7a <heading_MM3+0x11c> |
2a54: 71 01 movw r14, r2 |
2a56: 00 27 eor r16, r16 |
2a58: 11 27 eor r17, r17 |
2a5a: b4 01 movw r22, r8 |
2a5c: 88 27 eor r24, r24 |
2a5e: 77 fd sbrc r23, 7 |
2a60: 80 95 com r24 |
2a62: 98 2f mov r25, r24 |
2a64: a8 01 movw r20, r16 |
2a66: 97 01 movw r18, r14 |
2a68: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2a6c: 96 01 movw r18, r12 |
2a6e: 44 27 eor r20, r20 |
2a70: 55 27 eor r21, r21 |
2a72: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2a76: 49 01 movw r8, r18 |
2a78: 1c c0 rjmp .+56 ; 0x2ab2 <heading_MM3+0x154> |
2a7a: 2c 14 cp r2, r12 |
2a7c: 3d 04 cpc r3, r13 |
2a7e: 48 f5 brcc .+82 ; 0x2ad2 <heading_MM3+0x174> |
2a80: 60 90 94 04 lds r6, 0x0494 |
2a84: 70 90 95 04 lds r7, 0x0495 |
2a88: 6c 14 cp r6, r12 |
2a8a: 7d 04 cpc r7, r13 |
2a8c: 10 f5 brcc .+68 ; 0x2ad2 <heading_MM3+0x174> |
2a8e: 76 01 movw r14, r12 |
2a90: 00 27 eor r16, r16 |
2a92: 11 27 eor r17, r17 |
2a94: b5 01 movw r22, r10 |
2a96: 88 27 eor r24, r24 |
2a98: 77 fd sbrc r23, 7 |
2a9a: 80 95 com r24 |
2a9c: 98 2f mov r25, r24 |
2a9e: a8 01 movw r20, r16 |
2aa0: 97 01 movw r18, r14 |
2aa2: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2aa6: 91 01 movw r18, r2 |
2aa8: 44 27 eor r20, r20 |
2aaa: 55 27 eor r21, r21 |
2aac: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2ab0: 59 01 movw r10, r18 |
2ab2: b2 01 movw r22, r4 |
2ab4: 88 27 eor r24, r24 |
2ab6: 77 fd sbrc r23, 7 |
2ab8: 80 95 com r24 |
2aba: 98 2f mov r25, r24 |
2abc: a8 01 movw r20, r16 |
2abe: 97 01 movw r18, r14 |
2ac0: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2ac4: 93 01 movw r18, r6 |
2ac6: 44 27 eor r20, r20 |
2ac8: 55 27 eor r21, r21 |
2aca: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2ace: 29 01 movw r4, r18 |
2ad0: 24 c0 rjmp .+72 ; 0x2b1a <heading_MM3+0x1bc> |
2ad2: e0 90 94 04 lds r14, 0x0494 |
2ad6: f0 90 95 04 lds r15, 0x0495 |
2ada: 00 27 eor r16, r16 |
2adc: 11 27 eor r17, r17 |
2ade: b5 01 movw r22, r10 |
2ae0: 88 27 eor r24, r24 |
2ae2: 77 fd sbrc r23, 7 |
2ae4: 80 95 com r24 |
2ae6: 98 2f mov r25, r24 |
2ae8: a8 01 movw r20, r16 |
2aea: 97 01 movw r18, r14 |
2aec: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2af0: 91 01 movw r18, r2 |
2af2: 44 27 eor r20, r20 |
2af4: 55 27 eor r21, r21 |
2af6: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2afa: 59 01 movw r10, r18 |
2afc: b4 01 movw r22, r8 |
2afe: 88 27 eor r24, r24 |
2b00: 77 fd sbrc r23, 7 |
2b02: 80 95 com r24 |
2b04: 98 2f mov r25, r24 |
2b06: a8 01 movw r20, r16 |
2b08: 97 01 movw r18, r14 |
2b0a: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2b0e: 96 01 movw r18, r12 |
2b10: 44 27 eor r20, r20 |
2b12: 55 27 eor r21, r21 |
2b14: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2b18: 49 01 movw r8, r18 |
2b1a: b0 92 6d 04 sts 0x046D, r11 |
2b1e: a0 92 6c 04 sts 0x046C, r10 |
2b22: 90 92 6f 04 sts 0x046F, r9 |
2b26: 80 92 6e 04 sts 0x046E, r8 |
2b2a: 50 92 71 04 sts 0x0471, r5 |
2b2e: 40 92 70 04 sts 0x0470, r4 |
2b32: b5 01 movw r22, r10 |
2b34: 88 27 eor r24, r24 |
2b36: 77 fd sbrc r23, 7 |
2b38: 80 95 com r24 |
2b3a: 98 2f mov r25, r24 |
2b3c: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
2b40: 29 85 ldd r18, Y+9 ; 0x09 |
2b42: 3a 85 ldd r19, Y+10 ; 0x0a |
2b44: 4b 85 ldd r20, Y+11 ; 0x0b |
2b46: 5c 85 ldd r21, Y+12 ; 0x0c |
2b48: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2b4c: 5b 01 movw r10, r22 |
2b4e: 6c 01 movw r12, r24 |
2b50: b4 01 movw r22, r8 |
2b52: 88 27 eor r24, r24 |
2b54: 77 fd sbrc r23, 7 |
2b56: 80 95 com r24 |
2b58: 98 2f mov r25, r24 |
2b5a: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
2b5e: 7b 01 movw r14, r22 |
2b60: 8c 01 movw r16, r24 |
2b62: 2d 81 ldd r18, Y+5 ; 0x05 |
2b64: 3e 81 ldd r19, Y+6 ; 0x06 |
2b66: 4f 81 ldd r20, Y+7 ; 0x07 |
2b68: 58 85 ldd r21, Y+8 ; 0x08 |
2b6a: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2b6e: 2d 85 ldd r18, Y+13 ; 0x0d |
2b70: 3e 85 ldd r19, Y+14 ; 0x0e |
2b72: 4f 85 ldd r20, Y+15 ; 0x0f |
2b74: 58 89 ldd r21, Y+16 ; 0x10 |
2b76: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2b7a: 9b 01 movw r18, r22 |
2b7c: ac 01 movw r20, r24 |
2b7e: c6 01 movw r24, r12 |
2b80: b5 01 movw r22, r10 |
2b82: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
2b86: 3b 01 movw r6, r22 |
2b88: 4c 01 movw r8, r24 |
2b8a: b2 01 movw r22, r4 |
2b8c: 88 27 eor r24, r24 |
2b8e: 77 fd sbrc r23, 7 |
2b90: 80 95 com r24 |
2b92: 98 2f mov r25, r24 |
2b94: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
2b98: 5b 01 movw r10, r22 |
2b9a: 6c 01 movw r12, r24 |
2b9c: 29 81 ldd r18, Y+1 ; 0x01 |
2b9e: 3a 81 ldd r19, Y+2 ; 0x02 |
2ba0: 4b 81 ldd r20, Y+3 ; 0x03 |
2ba2: 5c 81 ldd r21, Y+4 ; 0x04 |
2ba4: c8 01 movw r24, r16 |
2ba6: b7 01 movw r22, r14 |
2ba8: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2bac: 7b 01 movw r14, r22 |
2bae: 8c 01 movw r16, r24 |
2bb0: 2d 81 ldd r18, Y+5 ; 0x05 |
2bb2: 3e 81 ldd r19, Y+6 ; 0x06 |
2bb4: 4f 81 ldd r20, Y+7 ; 0x07 |
2bb6: 58 85 ldd r21, Y+8 ; 0x08 |
2bb8: c6 01 movw r24, r12 |
2bba: b5 01 movw r22, r10 |
2bbc: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2bc0: 9b 01 movw r18, r22 |
2bc2: ac 01 movw r20, r24 |
2bc4: c8 01 movw r24, r16 |
2bc6: b7 01 movw r22, r14 |
2bc8: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
2bcc: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
2bd0: 7b 01 movw r14, r22 |
2bd2: 8c 01 movw r16, r24 |
2bd4: 29 81 ldd r18, Y+1 ; 0x01 |
2bd6: 3a 81 ldd r19, Y+2 ; 0x02 |
2bd8: 4b 81 ldd r20, Y+3 ; 0x03 |
2bda: 5c 81 ldd r21, Y+4 ; 0x04 |
2bdc: c6 01 movw r24, r12 |
2bde: b5 01 movw r22, r10 |
2be0: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2be4: 2d 85 ldd r18, Y+13 ; 0x0d |
2be6: 3e 85 ldd r19, Y+14 ; 0x0e |
2be8: 4f 85 ldd r20, Y+15 ; 0x0f |
2bea: 58 89 ldd r21, Y+16 ; 0x10 |
2bec: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
2bf0: 9b 01 movw r18, r22 |
2bf2: ac 01 movw r20, r24 |
2bf4: c4 01 movw r24, r8 |
2bf6: b3 01 movw r22, r6 |
2bf8: 0e 94 7b 2c call 0x58f6 ; 0x58f6 <__subsf3> |
2bfc: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
2c00: dc 01 movw r26, r24 |
2c02: cb 01 movw r24, r22 |
2c04: b7 01 movw r22, r14 |
2c06: 0e 94 21 17 call 0x2e42 ; 0x2e42 <atan2_i> |
2c0a: 9c 01 movw r18, r24 |
2c0c: 97 ff sbrs r25, 7 |
2c0e: 05 c0 rjmp .+10 ; 0x2c1a <heading_MM3+0x2bc> |
2c10: 88 27 eor r24, r24 |
2c12: 99 27 eor r25, r25 |
2c14: 82 1b sub r24, r18 |
2c16: 93 0b sbc r25, r19 |
2c18: 04 c0 rjmp .+8 ; 0x2c22 <heading_MM3+0x2c4> |
2c1a: 88 e6 ldi r24, 0x68 ; 104 |
2c1c: 91 e0 ldi r25, 0x01 ; 1 |
2c1e: 82 1b sub r24, r18 |
2c20: 93 0b sbc r25, r19 |
2c22: e2 e1 ldi r30, 0x12 ; 18 |
2c24: c0 5f subi r28, 0xF0 ; 240 |
2c26: 0c 94 82 2e jmp 0x5d04 ; 0x5d04 <__epilogue_restores__> |
00002c2a <timer0_MM3>: |
2c2a: 80 91 96 04 lds r24, 0x0496 |
2c2e: 81 30 cpi r24, 0x01 ; 1 |
2c30: 41 f0 breq .+16 ; 0x2c42 <timer0_MM3+0x18> |
2c32: 81 30 cpi r24, 0x01 ; 1 |
2c34: 18 f0 brcs .+6 ; 0x2c3c <timer0_MM3+0x12> |
2c36: 82 30 cpi r24, 0x02 ; 2 |
2c38: 49 f5 brne .+82 ; 0x2c8c <timer0_MM3+0x62> |
2c3a: 1c c0 rjmp .+56 ; 0x2c74 <timer0_MM3+0x4a> |
2c3c: 2a 9a sbi 0x05, 2 ; 5 |
2c3e: 81 e0 ldi r24, 0x01 ; 1 |
2c40: 16 c0 rjmp .+44 ; 0x2c6e <timer0_MM3+0x44> |
2c42: 2a 98 cbi 0x05, 2 ; 5 |
2c44: 80 91 99 04 lds r24, 0x0499 |
2c48: 85 30 cpi r24, 0x05 ; 5 |
2c4a: 11 f4 brne .+4 ; 0x2c50 <timer0_MM3+0x26> |
2c4c: 81 e3 ldi r24, 0x31 ; 49 |
2c4e: 05 c0 rjmp .+10 ; 0x2c5a <timer0_MM3+0x30> |
2c50: 86 30 cpi r24, 0x06 ; 6 |
2c52: 11 f4 brne .+4 ; 0x2c58 <timer0_MM3+0x2e> |
2c54: 82 e3 ldi r24, 0x32 ; 50 |
2c56: 01 c0 rjmp .+2 ; 0x2c5a <timer0_MM3+0x30> |
2c58: 83 e3 ldi r24, 0x33 ; 51 |
2c5a: 8e bd out 0x2e, r24 ; 46 |
2c5c: 88 e0 ldi r24, 0x08 ; 8 |
2c5e: 90 e0 ldi r25, 0x00 ; 0 |
2c60: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
2c64: 90 93 98 04 sts 0x0498, r25 |
2c68: 80 93 97 04 sts 0x0497, r24 |
2c6c: 82 e0 ldi r24, 0x02 ; 2 |
2c6e: 80 93 96 04 sts 0x0496, r24 |
2c72: 08 95 ret |
2c74: 80 91 97 04 lds r24, 0x0497 |
2c78: 90 91 98 04 lds r25, 0x0498 |
2c7c: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
2c80: 88 23 and r24, r24 |
2c82: 21 f0 breq .+8 ; 0x2c8c <timer0_MM3+0x62> |
2c84: 1e bc out 0x2e, r1 ; 46 |
2c86: 83 e0 ldi r24, 0x03 ; 3 |
2c88: 80 93 96 04 sts 0x0496, r24 |
2c8c: 08 95 ret |
00002c8e <calib_MM3>: |
2c8e: a0 e0 ldi r26, 0x00 ; 0 |
2c90: b0 e0 ldi r27, 0x00 ; 0 |
2c92: ed e4 ldi r30, 0x4D ; 77 |
2c94: f6 e1 ldi r31, 0x16 ; 22 |
2c96: 0c 94 68 2e jmp 0x5cd0 ; 0x5cd0 <__prologue_saves__+0x4> |
2c9a: 29 9a sbi 0x05, 1 ; 5 |
2c9c: 28 98 cbi 0x05, 0 ; 5 |
2c9e: ee 24 eor r14, r14 |
2ca0: ff 24 eor r15, r15 |
2ca2: 00 e0 ldi r16, 0x00 ; 0 |
2ca4: 10 e0 ldi r17, 0x00 ; 0 |
2ca6: aa 24 eor r10, r10 |
2ca8: bb 24 eor r11, r11 |
2caa: cc 24 eor r12, r12 |
2cac: dd 24 eor r13, r13 |
2cae: 66 24 eor r6, r6 |
2cb0: 77 24 eor r7, r7 |
2cb2: 88 24 eor r8, r8 |
2cb4: 99 24 eor r9, r9 |
2cb6: 62 e3 ldi r22, 0x32 ; 50 |
2cb8: 46 2e mov r4, r22 |
2cba: 55 24 eor r5, r5 |
2cbc: 80 91 9a 04 lds r24, 0x049A |
2cc0: 90 91 9b 04 lds r25, 0x049B |
2cc4: 08 17 cp r16, r24 |
2cc6: 19 07 cpc r17, r25 |
2cc8: 2c f4 brge .+10 ; 0x2cd4 <calib_MM3+0x46> |
2cca: 00 91 9a 04 lds r16, 0x049A |
2cce: 10 91 9b 04 lds r17, 0x049B |
2cd2: 0b c0 rjmp .+22 ; 0x2cea <calib_MM3+0x5c> |
2cd4: 80 91 9a 04 lds r24, 0x049A |
2cd8: 90 91 9b 04 lds r25, 0x049B |
2cdc: 8e 15 cp r24, r14 |
2cde: 9f 05 cpc r25, r15 |
2ce0: 24 f4 brge .+8 ; 0x2cea <calib_MM3+0x5c> |
2ce2: e0 90 9a 04 lds r14, 0x049A |
2ce6: f0 90 9b 04 lds r15, 0x049B |
2cea: 80 91 9c 04 lds r24, 0x049C |
2cee: 90 91 9d 04 lds r25, 0x049D |
2cf2: c8 16 cp r12, r24 |
2cf4: d9 06 cpc r13, r25 |
2cf6: 2c f4 brge .+10 ; 0x2d02 <calib_MM3+0x74> |
2cf8: c0 90 9c 04 lds r12, 0x049C |
2cfc: d0 90 9d 04 lds r13, 0x049D |
2d00: 0b c0 rjmp .+22 ; 0x2d18 <calib_MM3+0x8a> |
2d02: 80 91 9c 04 lds r24, 0x049C |
2d06: 90 91 9d 04 lds r25, 0x049D |
2d0a: 8a 15 cp r24, r10 |
2d0c: 9b 05 cpc r25, r11 |
2d0e: 24 f4 brge .+8 ; 0x2d18 <calib_MM3+0x8a> |
2d10: a0 90 9c 04 lds r10, 0x049C |
2d14: b0 90 9d 04 lds r11, 0x049D |
2d18: 80 91 9e 04 lds r24, 0x049E |
2d1c: 90 91 9f 04 lds r25, 0x049F |
2d20: 88 16 cp r8, r24 |
2d22: 99 06 cpc r9, r25 |
2d24: 2c f4 brge .+10 ; 0x2d30 <calib_MM3+0xa2> |
2d26: 80 90 9e 04 lds r8, 0x049E |
2d2a: 90 90 9f 04 lds r9, 0x049F |
2d2e: 0b c0 rjmp .+22 ; 0x2d46 <calib_MM3+0xb8> |
2d30: 80 91 9e 04 lds r24, 0x049E |
2d34: 90 91 9f 04 lds r25, 0x049F |
2d38: 86 15 cp r24, r6 |
2d3a: 97 05 cpc r25, r7 |
2d3c: 24 f4 brge .+8 ; 0x2d46 <calib_MM3+0xb8> |
2d3e: 60 90 9e 04 lds r6, 0x049E |
2d42: 70 90 9f 04 lds r7, 0x049F |
2d46: 55 20 and r5, r5 |
2d48: 81 f4 brne .+32 ; 0x2d6a <calib_MM3+0xdc> |
2d4a: 85 b1 in r24, 0x05 ; 5 |
2d4c: 91 e0 ldi r25, 0x01 ; 1 |
2d4e: 89 27 eor r24, r25 |
2d50: 85 b9 out 0x05, r24 ; 5 |
2d52: 85 b1 in r24, 0x05 ; 5 |
2d54: 92 e0 ldi r25, 0x02 ; 2 |
2d56: 89 27 eor r24, r25 |
2d58: 85 b9 out 0x05, r24 ; 5 |
2d5a: 82 e3 ldi r24, 0x32 ; 50 |
2d5c: 90 e0 ldi r25, 0x00 ; 0 |
2d5e: 90 93 a7 01 sts 0x01A7, r25 |
2d62: 80 93 a6 01 sts 0x01A6, r24 |
2d66: 52 e3 ldi r21, 0x32 ; 50 |
2d68: 55 2e mov r5, r21 |
2d6a: 8a e0 ldi r24, 0x0A ; 10 |
2d6c: 90 e0 ldi r25, 0x00 ; 0 |
2d6e: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
2d72: ec 01 movw r28, r24 |
2d74: ce 01 movw r24, r28 |
2d76: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
2d7a: 88 23 and r24, r24 |
2d7c: d9 f3 breq .-10 ; 0x2d74 <calib_MM3+0xe6> |
2d7e: e0 91 d6 04 lds r30, 0x04D6 |
2d82: ff 27 eor r31, r31 |
2d84: ee 0f add r30, r30 |
2d86: ff 1f adc r31, r31 |
2d88: e8 55 subi r30, 0x58 ; 88 |
2d8a: fb 4f sbci r31, 0xFB ; 251 |
2d8c: 80 81 ld r24, Z |
2d8e: 91 81 ldd r25, Z+1 ; 0x01 |
2d90: 84 36 cpi r24, 0x64 ; 100 |
2d92: 91 05 cpc r25, r1 |
2d94: 0c f4 brge .+2 ; 0x2d98 <calib_MM3+0x10a> |
2d96: 4a 94 dec r4 |
2d98: 44 20 and r4, r4 |
2d9a: 11 f0 breq .+4 ; 0x2da0 <calib_MM3+0x112> |
2d9c: 5a 94 dec r5 |
2d9e: 8e cf rjmp .-228 ; 0x2cbc <calib_MM3+0x2e> |
2da0: c8 01 movw r24, r16 |
2da2: 8e 19 sub r24, r14 |
2da4: 9f 09 sbc r25, r15 |
2da6: 90 93 91 04 sts 0x0491, r25 |
2daa: 80 93 90 04 sts 0x0490, r24 |
2dae: c6 01 movw r24, r12 |
2db0: 8a 19 sub r24, r10 |
2db2: 9b 09 sbc r25, r11 |
2db4: 90 93 93 04 sts 0x0493, r25 |
2db8: 80 93 92 04 sts 0x0492, r24 |
2dbc: c4 01 movw r24, r8 |
2dbe: 86 19 sub r24, r6 |
2dc0: 97 09 sbc r25, r7 |
2dc2: 90 93 95 04 sts 0x0495, r25 |
2dc6: 80 93 94 04 sts 0x0494, r24 |
2dca: ed e8 ldi r30, 0x8D ; 141 |
2dcc: f4 e0 ldi r31, 0x04 ; 4 |
2dce: c8 01 movw r24, r16 |
2dd0: 8e 0d add r24, r14 |
2dd2: 9f 1d adc r25, r15 |
2dd4: 62 e0 ldi r22, 0x02 ; 2 |
2dd6: 70 e0 ldi r23, 0x00 ; 0 |
2dd8: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
2ddc: 60 93 8d 04 sts 0x048D, r22 |
2de0: c6 01 movw r24, r12 |
2de2: 8a 0d add r24, r10 |
2de4: 9b 1d adc r25, r11 |
2de6: 62 e0 ldi r22, 0x02 ; 2 |
2de8: 70 e0 ldi r23, 0x00 ; 0 |
2dea: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
2dee: 60 93 8e 04 sts 0x048E, r22 |
2df2: c4 01 movw r24, r8 |
2df4: 86 0d add r24, r6 |
2df6: 97 1d adc r25, r7 |
2df8: 62 e0 ldi r22, 0x02 ; 2 |
2dfa: 70 e0 ldi r23, 0x00 ; 0 |
2dfc: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
2e00: 60 93 8f 04 sts 0x048F, r22 |
2e04: 89 e0 ldi r24, 0x09 ; 9 |
2e06: ac e2 ldi r26, 0x2C ; 44 |
2e08: b1 e0 ldi r27, 0x01 ; 1 |
2e0a: 18 2e mov r1, r24 |
2e0c: 0e 94 bc 2e call 0x5d78 ; 0x5d78 <__eeprom_write_block_1F2021> |
2e10: e0 e1 ldi r30, 0x10 ; 16 |
2e12: cd b7 in r28, 0x3d ; 61 |
2e14: de b7 in r29, 0x3e ; 62 |
2e16: 0c 94 84 2e jmp 0x5d08 ; 0x5d08 <__epilogue_restores__+0x4> |
00002e1a <init_MM3>: |
2e1a: 83 ed ldi r24, 0xD3 ; 211 |
2e1c: 8c bd out 0x2c, r24 ; 44 |
2e1e: 84 b1 in r24, 0x04 ; 4 |
2e20: 84 6a ori r24, 0xA4 ; 164 |
2e22: 84 b9 out 0x04, r24 ; 4 |
2e24: 5b 98 cbi 0x0b, 3 ; 11 |
2e26: 85 e0 ldi r24, 0x05 ; 5 |
2e28: 80 93 99 04 sts 0x0499, r24 |
2e2c: 10 92 96 04 sts 0x0496, r1 |
2e30: 89 e0 ldi r24, 0x09 ; 9 |
2e32: ed e8 ldi r30, 0x8D ; 141 |
2e34: f4 e0 ldi r31, 0x04 ; 4 |
2e36: ac e2 ldi r26, 0x2C ; 44 |
2e38: b1 e0 ldi r27, 0x01 ; 1 |
2e3a: 18 2e mov r1, r24 |
2e3c: 0e 94 ab 2e call 0x5d56 ; 0x5d56 <__eeprom_read_block_1F2021> |
2e40: 08 95 ret |
00002e42 <atan2_i>: |
2e42: 1f 93 push r17 |
2e44: cf 93 push r28 |
2e46: df 93 push r29 |
2e48: ec 01 movw r28, r24 |
2e4a: 89 2b or r24, r25 |
2e4c: 31 f4 brne .+12 ; 0x2e5a <atan2_i+0x18> |
2e4e: 61 15 cp r22, r1 |
2e50: 71 05 cpc r23, r1 |
2e52: 19 f4 brne .+6 ; 0x2e5a <atan2_i+0x18> |
2e54: 80 e0 ldi r24, 0x00 ; 0 |
2e56: 90 e0 ldi r25, 0x00 ; 0 |
2e58: 8e c0 rjmp .+284 ; 0x2f76 <atan2_i+0x134> |
2e5a: 77 fd sbrc r23, 7 |
2e5c: 02 c0 rjmp .+4 ; 0x2e62 <atan2_i+0x20> |
2e5e: 11 e0 ldi r17, 0x01 ; 1 |
2e60: 01 c0 rjmp .+2 ; 0x2e64 <atan2_i+0x22> |
2e62: 1f ef ldi r17, 0xFF ; 255 |
2e64: 20 97 sbiw r28, 0x00 ; 0 |
2e66: 29 f4 brne .+10 ; 0x2e72 <atan2_i+0x30> |
2e68: 8a e5 ldi r24, 0x5A ; 90 |
2e6a: 18 02 muls r17, r24 |
2e6c: c0 01 movw r24, r0 |
2e6e: 11 24 eor r1, r1 |
2e70: 82 c0 rjmp .+260 ; 0x2f76 <atan2_i+0x134> |
2e72: 88 27 eor r24, r24 |
2e74: 77 fd sbrc r23, 7 |
2e76: 80 95 com r24 |
2e78: 98 2f mov r25, r24 |
2e7a: 22 e3 ldi r18, 0x32 ; 50 |
2e7c: 30 e0 ldi r19, 0x00 ; 0 |
2e7e: 40 e0 ldi r20, 0x00 ; 0 |
2e80: 50 e0 ldi r21, 0x00 ; 0 |
2e82: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
2e86: 9e 01 movw r18, r28 |
2e88: 44 27 eor r20, r20 |
2e8a: 37 fd sbrc r19, 7 |
2e8c: 40 95 com r20 |
2e8e: 54 2f mov r21, r20 |
2e90: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
2e94: f9 01 movw r30, r18 |
2e96: 37 ff sbrs r19, 7 |
2e98: 03 c0 rjmp .+6 ; 0x2ea0 <atan2_i+0x5e> |
2e9a: f0 95 com r31 |
2e9c: e1 95 neg r30 |
2e9e: ff 4f sbci r31, 0xFF ; 255 |
2ea0: 41 e0 ldi r20, 0x01 ; 1 |
2ea2: ee 30 cpi r30, 0x0E ; 14 |
2ea4: f4 07 cpc r31, r20 |
2ea6: 34 f4 brge .+12 ; 0x2eb4 <atan2_i+0x72> |
2ea8: e6 56 subi r30, 0x66 ; 102 |
2eaa: fb 4f sbci r31, 0xFB ; 251 |
2eac: 84 91 lpm r24, Z |
2eae: 28 2f mov r18, r24 |
2eb0: 33 27 eor r19, r19 |
2eb2: 47 c0 rjmp .+142 ; 0x2f42 <atan2_i+0x100> |
2eb4: 56 e1 ldi r21, 0x16 ; 22 |
2eb6: e7 37 cpi r30, 0x77 ; 119 |
2eb8: f5 07 cpc r31, r21 |
2eba: 1c f0 brlt .+6 ; 0x2ec2 <atan2_i+0x80> |
2ebc: 2a e5 ldi r18, 0x5A ; 90 |
2ebe: 30 e0 ldi r19, 0x00 ; 0 |
2ec0: 40 c0 rjmp .+128 ; 0x2f42 <atan2_i+0x100> |
2ec2: 87 e0 ldi r24, 0x07 ; 7 |
2ec4: e6 37 cpi r30, 0x76 ; 118 |
2ec6: f8 07 cpc r31, r24 |
2ec8: 1c f0 brlt .+6 ; 0x2ed0 <atan2_i+0x8e> |
2eca: 29 e5 ldi r18, 0x59 ; 89 |
2ecc: 30 e0 ldi r19, 0x00 ; 0 |
2ece: 39 c0 rjmp .+114 ; 0x2f42 <atan2_i+0x100> |
2ed0: 44 e0 ldi r20, 0x04 ; 4 |
2ed2: ee 37 cpi r30, 0x7E ; 126 |
2ed4: f4 07 cpc r31, r20 |
2ed6: 1c f0 brlt .+6 ; 0x2ede <atan2_i+0x9c> |
2ed8: 28 e5 ldi r18, 0x58 ; 88 |
2eda: 30 e0 ldi r19, 0x00 ; 0 |
2edc: 32 c0 rjmp .+100 ; 0x2f42 <atan2_i+0x100> |
2ede: 53 e0 ldi r21, 0x03 ; 3 |
2ee0: e4 33 cpi r30, 0x34 ; 52 |
2ee2: f5 07 cpc r31, r21 |
2ee4: 1c f0 brlt .+6 ; 0x2eec <atan2_i+0xaa> |
2ee6: 27 e5 ldi r18, 0x57 ; 87 |
2ee8: 30 e0 ldi r19, 0x00 ; 0 |
2eea: 2b c0 rjmp .+86 ; 0x2f42 <atan2_i+0x100> |
2eec: 82 e0 ldi r24, 0x02 ; 2 |
2eee: e0 38 cpi r30, 0x80 ; 128 |
2ef0: f8 07 cpc r31, r24 |
2ef2: 1c f0 brlt .+6 ; 0x2efa <atan2_i+0xb8> |
2ef4: 26 e5 ldi r18, 0x56 ; 86 |
2ef6: 30 e0 ldi r19, 0x00 ; 0 |
2ef8: 24 c0 rjmp .+72 ; 0x2f42 <atan2_i+0x100> |
2efa: 42 e0 ldi r20, 0x02 ; 2 |
2efc: e8 30 cpi r30, 0x08 ; 8 |
2efe: f4 07 cpc r31, r20 |
2f00: 1c f0 brlt .+6 ; 0x2f08 <atan2_i+0xc6> |
2f02: 25 e5 ldi r18, 0x55 ; 85 |
2f04: 30 e0 ldi r19, 0x00 ; 0 |
2f06: 1d c0 rjmp .+58 ; 0x2f42 <atan2_i+0x100> |
2f08: 51 e0 ldi r21, 0x01 ; 1 |
2f0a: e8 3b cpi r30, 0xB8 ; 184 |
2f0c: f5 07 cpc r31, r21 |
2f0e: 1c f0 brlt .+6 ; 0x2f16 <atan2_i+0xd4> |
2f10: 24 e5 ldi r18, 0x54 ; 84 |
2f12: 30 e0 ldi r19, 0x00 ; 0 |
2f14: 16 c0 rjmp .+44 ; 0x2f42 <atan2_i+0x100> |
2f16: 81 e0 ldi r24, 0x01 ; 1 |
2f18: ec 37 cpi r30, 0x7C ; 124 |
2f1a: f8 07 cpc r31, r24 |
2f1c: 1c f0 brlt .+6 ; 0x2f24 <atan2_i+0xe2> |
2f1e: 23 e5 ldi r18, 0x53 ; 83 |
2f20: 30 e0 ldi r19, 0x00 ; 0 |
2f22: 0f c0 rjmp .+30 ; 0x2f42 <atan2_i+0x100> |
2f24: 41 e0 ldi r20, 0x01 ; 1 |
2f26: ef 34 cpi r30, 0x4F ; 79 |
2f28: f4 07 cpc r31, r20 |
2f2a: 1c f0 brlt .+6 ; 0x2f32 <atan2_i+0xf0> |
2f2c: 22 e5 ldi r18, 0x52 ; 82 |
2f2e: 30 e0 ldi r19, 0x00 ; 0 |
2f30: 08 c0 rjmp .+16 ; 0x2f42 <atan2_i+0x100> |
2f32: eb 52 subi r30, 0x2B ; 43 |
2f34: f1 40 sbci r31, 0x01 ; 1 |
2f36: 1c f0 brlt .+6 ; 0x2f3e <atan2_i+0xfc> |
2f38: 21 e5 ldi r18, 0x51 ; 81 |
2f3a: 30 e0 ldi r19, 0x00 ; 0 |
2f3c: 02 c0 rjmp .+4 ; 0x2f42 <atan2_i+0x100> |
2f3e: 20 e5 ldi r18, 0x50 ; 80 |
2f40: 30 e0 ldi r19, 0x00 ; 0 |
2f42: 1c 16 cp r1, r28 |
2f44: 1d 06 cpc r1, r29 |
2f46: 6c f4 brge .+26 ; 0x2f62 <atan2_i+0x120> |
2f48: 81 2f mov r24, r17 |
2f4a: 99 27 eor r25, r25 |
2f4c: 87 fd sbrc r24, 7 |
2f4e: 90 95 com r25 |
2f50: ac 01 movw r20, r24 |
2f52: 24 9f mul r18, r20 |
2f54: c0 01 movw r24, r0 |
2f56: 25 9f mul r18, r21 |
2f58: 90 0d add r25, r0 |
2f5a: 34 9f mul r19, r20 |
2f5c: 90 0d add r25, r0 |
2f5e: 11 24 eor r1, r1 |
2f60: 0a c0 rjmp .+20 ; 0x2f76 <atan2_i+0x134> |
2f62: 11 16 cp r1, r17 |
2f64: 2c f4 brge .+10 ; 0x2f70 <atan2_i+0x12e> |
2f66: 84 eb ldi r24, 0xB4 ; 180 |
2f68: 90 e0 ldi r25, 0x00 ; 0 |
2f6a: 82 1b sub r24, r18 |
2f6c: 93 0b sbc r25, r19 |
2f6e: 03 c0 rjmp .+6 ; 0x2f76 <atan2_i+0x134> |
2f70: c9 01 movw r24, r18 |
2f72: 84 5b subi r24, 0xB4 ; 180 |
2f74: 90 40 sbci r25, 0x00 ; 0 |
2f76: df 91 pop r29 |
2f78: cf 91 pop r28 |
2f7a: 1f 91 pop r17 |
2f7c: 08 95 ret |
00002f7e <pgm_read_float>: |
2f7e: fc 01 movw r30, r24 |
2f80: 25 91 lpm r18, Z+ |
2f82: 34 91 lpm r19, Z |
2f84: fc 01 movw r30, r24 |
2f86: 32 96 adiw r30, 0x02 ; 2 |
2f88: 45 91 lpm r20, Z+ |
2f8a: 54 91 lpm r21, Z |
2f8c: ca 01 movw r24, r20 |
2f8e: b9 01 movw r22, r18 |
2f90: 08 95 ret |
00002f92 <sin_f>: |
2f92: a0 e0 ldi r26, 0x00 ; 0 |
2f94: b0 e0 ldi r27, 0x00 ; 0 |
2f96: ef ec ldi r30, 0xCF ; 207 |
2f98: f7 e1 ldi r31, 0x17 ; 23 |
2f9a: 0c 94 70 2e jmp 0x5ce0 ; 0x5ce0 <__prologue_saves__+0x14> |
2f9e: 9c 01 movw r18, r24 |
2fa0: 97 fd sbrc r25, 7 |
2fa2: 04 c0 rjmp .+8 ; 0x2fac <sin_f+0x1a> |
2fa4: 41 e0 ldi r20, 0x01 ; 1 |
2fa6: c4 2e mov r12, r20 |
2fa8: d1 2c mov r13, r1 |
2faa: 06 c0 rjmp .+12 ; 0x2fb8 <sin_f+0x26> |
2fac: 30 95 com r19 |
2fae: 21 95 neg r18 |
2fb0: 3f 4f sbci r19, 0xFF ; 255 |
2fb2: 9f ef ldi r25, 0xFF ; 255 |
2fb4: c9 2e mov r12, r25 |
2fb6: d9 2e mov r13, r25 |
2fb8: 2b 35 cpi r18, 0x5B ; 91 |
2fba: 31 05 cpc r19, r1 |
2fbc: 5c f0 brlt .+22 ; 0x2fd4 <sin_f+0x42> |
2fbe: c9 01 movw r24, r18 |
2fc0: 8b 55 subi r24, 0x5B ; 91 |
2fc2: 90 40 sbci r25, 0x00 ; 0 |
2fc4: 8a 35 cpi r24, 0x5A ; 90 |
2fc6: 91 05 cpc r25, r1 |
2fc8: 40 f4 brcc .+16 ; 0x2fda <sin_f+0x48> |
2fca: 84 eb ldi r24, 0xB4 ; 180 |
2fcc: 90 e0 ldi r25, 0x00 ; 0 |
2fce: 82 1b sub r24, r18 |
2fd0: 93 0b sbc r25, r19 |
2fd2: 9c 01 movw r18, r24 |
2fd4: c1 e0 ldi r28, 0x01 ; 1 |
2fd6: d0 e0 ldi r29, 0x00 ; 0 |
2fd8: 10 c0 rjmp .+32 ; 0x2ffa <sin_f+0x68> |
2fda: c9 01 movw r24, r18 |
2fdc: 85 5b subi r24, 0xB5 ; 181 |
2fde: 90 40 sbci r25, 0x00 ; 0 |
2fe0: 8a 35 cpi r24, 0x5A ; 90 |
2fe2: 91 05 cpc r25, r1 |
2fe4: 18 f4 brcc .+6 ; 0x2fec <sin_f+0x5a> |
2fe6: 24 5b subi r18, 0xB4 ; 180 |
2fe8: 30 40 sbci r19, 0x00 ; 0 |
2fea: 05 c0 rjmp .+10 ; 0x2ff6 <sin_f+0x64> |
2fec: 88 e6 ldi r24, 0x68 ; 104 |
2fee: 91 e0 ldi r25, 0x01 ; 1 |
2ff0: 82 1b sub r24, r18 |
2ff2: 93 0b sbc r25, r19 |
2ff4: 9c 01 movw r18, r24 |
2ff6: cf ef ldi r28, 0xFF ; 255 |
2ff8: df ef ldi r29, 0xFF ; 255 |
2ffa: 22 0f add r18, r18 |
2ffc: 33 1f adc r19, r19 |
2ffe: 22 0f add r18, r18 |
3000: 33 1f adc r19, r19 |
3002: c9 01 movw r24, r18 |
3004: 88 55 subi r24, 0x58 ; 88 |
3006: 9a 4f sbci r25, 0xFA ; 250 |
3008: 0e 94 bf 17 call 0x2f7e ; 0x2f7e <pgm_read_float> |
300c: 7b 01 movw r14, r22 |
300e: 8c 01 movw r16, r24 |
3010: b6 01 movw r22, r12 |
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 21 2d call 0x5a42 ; 0x5a42 <__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 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
302a: 7b 01 movw r14, r22 |
302c: 8c 01 movw r16, r24 |
302e: be 01 movw r22, r28 |
3030: 88 27 eor r24, r24 |
3032: 77 fd sbrc r23, 7 |
3034: 80 95 com r24 |
3036: 98 2f mov r25, r24 |
3038: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
303c: 9b 01 movw r18, r22 |
303e: ac 01 movw r20, r24 |
3040: c8 01 movw r24, r16 |
3042: b7 01 movw r22, r14 |
3044: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
3048: e8 e0 ldi r30, 0x08 ; 8 |
304a: cd b7 in r28, 0x3d ; 61 |
304c: de b7 in r29, 0x3e ; 62 |
304e: 0c 94 8c 2e jmp 0x5d18 ; 0x5d18 <__epilogue_restores__+0x14> |
00003052 <cos_f>: |
3052: 2a e5 ldi r18, 0x5A ; 90 |
3054: 30 e0 ldi r19, 0x00 ; 0 |
3056: 28 1b sub r18, r24 |
3058: 39 0b sbc r19, r25 |
305a: c9 01 movw r24, r18 |
305c: 0e 94 c9 17 call 0x2f92 ; 0x2f92 <sin_f> |
3060: 08 95 ret |
00003062 <i2c_init>: |
3062: 10 92 b9 00 sts 0x00B9, r1 |
3066: 8a e2 ldi r24, 0x2A ; 42 |
3068: 80 93 b8 00 sts 0x00B8, r24 |
306c: 08 95 ret |
0000306e <i2c_start>: |
306e: 85 ea ldi r24, 0xA5 ; 165 |
3070: 80 93 bc 00 sts 0x00BC, r24 |
3074: 08 95 ret |
00003076 <i2c_stop>: |
3076: 84 e9 ldi r24, 0x94 ; 148 |
3078: 80 93 bc 00 sts 0x00BC, r24 |
307c: 08 95 ret |
0000307e <i2c_write_byte>: |
307e: 80 93 bb 00 sts 0x00BB, r24 |
3082: 85 e8 ldi r24, 0x85 ; 133 |
3084: 80 93 bc 00 sts 0x00BC, r24 |
3088: 08 95 ret |
0000308a <i2c_receive_byte>: |
308a: 85 ec ldi r24, 0xC5 ; 197 |
308c: 80 93 bc 00 sts 0x00BC, r24 |
3090: 08 95 ret |
00003092 <i2c_receive_last_byte>: |
3092: 85 e8 ldi r24, 0x85 ; 133 |
3094: 80 93 bc 00 sts 0x00BC, r24 |
3098: 08 95 ret |
0000309a <__vector_26>: |
309a: 1f 92 push r1 |
309c: 0f 92 push r0 |
309e: 0f b6 in r0, 0x3f ; 63 |
30a0: 0f 92 push r0 |
30a2: 11 24 eor r1, r1 |
30a4: 8f 93 push r24 |
30a6: 9f 93 push r25 |
30a8: ef 93 push r30 |
30aa: ff 93 push r31 |
30ac: 80 91 c9 01 lds r24, 0x01C9 |
30b0: 8f 5f subi r24, 0xFF ; 255 |
30b2: 80 93 c9 01 sts 0x01C9, r24 |
30b6: 81 50 subi r24, 0x01 ; 1 |
30b8: 83 30 cpi r24, 0x03 ; 3 |
30ba: e9 f1 breq .+122 ; 0x3136 <__vector_26+0x9c> |
30bc: 84 30 cpi r24, 0x04 ; 4 |
30be: 28 f4 brcc .+10 ; 0x30ca <__vector_26+0x30> |
30c0: 81 30 cpi r24, 0x01 ; 1 |
30c2: 81 f0 breq .+32 ; 0x30e4 <__vector_26+0x4a> |
30c4: 82 30 cpi r24, 0x02 ; 2 |
30c6: 78 f5 brcc .+94 ; 0x3126 <__vector_26+0x8c> |
30c8: 08 c0 rjmp .+16 ; 0x30da <__vector_26+0x40> |
30ca: 85 30 cpi r24, 0x05 ; 5 |
30cc: d9 f1 breq .+118 ; 0x3144 <__vector_26+0xaa> |
30ce: 85 30 cpi r24, 0x05 ; 5 |
30d0: b8 f1 brcs .+110 ; 0x3140 <__vector_26+0xa6> |
30d2: 86 30 cpi r24, 0x06 ; 6 |
30d4: 09 f0 breq .+2 ; 0x30d8 <__vector_26+0x3e> |
30d6: 4f c0 rjmp .+158 ; 0x3176 <__vector_26+0xdc> |
30d8: 3e c0 rjmp .+124 ; 0x3156 <__vector_26+0xbc> |
30da: 80 91 ca 01 lds r24, 0x01CA |
30de: 88 0f add r24, r24 |
30e0: 8e 5a subi r24, 0xAE ; 174 |
30e2: 12 c0 rjmp .+36 ; 0x3108 <__vector_26+0x6e> |
30e4: 80 91 ca 01 lds r24, 0x01CA |
30e8: 8f 5f subi r24, 0xFF ; 255 |
30ea: 80 93 ca 01 sts 0x01CA, r24 |
30ee: 81 50 subi r24, 0x01 ; 1 |
30f0: 81 30 cpi r24, 0x01 ; 1 |
30f2: 81 f0 breq .+32 ; 0x3114 <__vector_26+0x7a> |
30f4: 81 30 cpi r24, 0x01 ; 1 |
30f6: 30 f0 brcs .+12 ; 0x3104 <__vector_26+0x6a> |
30f8: 82 30 cpi r24, 0x02 ; 2 |
30fa: 79 f0 breq .+30 ; 0x311a <__vector_26+0x80> |
30fc: 83 30 cpi r24, 0x03 ; 3 |
30fe: 09 f0 breq .+2 ; 0x3102 <__vector_26+0x68> |
3100: 41 c0 rjmp .+130 ; 0x3184 <__vector_26+0xea> |
3102: 0e c0 rjmp .+28 ; 0x3120 <__vector_26+0x86> |
3104: 80 91 60 02 lds r24, 0x0260 |
3108: 80 93 bb 00 sts 0x00BB, r24 |
310c: 85 e8 ldi r24, 0x85 ; 133 |
310e: 80 93 bc 00 sts 0x00BC, r24 |
3112: 38 c0 rjmp .+112 ; 0x3184 <__vector_26+0xea> |
3114: 80 91 61 02 lds r24, 0x0261 |
3118: f7 cf rjmp .-18 ; 0x3108 <__vector_26+0x6e> |
311a: 80 91 64 02 lds r24, 0x0264 |
311e: f4 cf rjmp .-24 ; 0x3108 <__vector_26+0x6e> |
3120: 80 91 65 02 lds r24, 0x0265 |
3124: f1 cf rjmp .-30 ; 0x3108 <__vector_26+0x6e> |
3126: 80 91 ca 01 lds r24, 0x01CA |
312a: 84 30 cpi r24, 0x04 ; 4 |
312c: 10 f4 brcc .+4 ; 0x3132 <__vector_26+0x98> |
312e: 10 92 c9 01 sts 0x01C9, r1 |
3132: 85 ea ldi r24, 0xA5 ; 165 |
3134: ec cf rjmp .-40 ; 0x310e <__vector_26+0x74> |
3136: 80 91 cb 01 lds r24, 0x01CB |
313a: 88 0f add r24, r24 |
313c: 8d 5a subi r24, 0xAD ; 173 |
313e: e4 cf rjmp .-56 ; 0x3108 <__vector_26+0x6e> |
3140: 85 ec ldi r24, 0xC5 ; 197 |
3142: e5 cf rjmp .-54 ; 0x310e <__vector_26+0x74> |
3144: e0 91 cb 01 lds r30, 0x01CB |
3148: ff 27 eor r31, r31 |
314a: 80 91 bb 00 lds r24, 0x00BB |
314e: e0 56 subi r30, 0x60 ; 96 |
3150: fb 4f sbci r31, 0xFB ; 251 |
3152: 80 83 st Z, r24 |
3154: db cf rjmp .-74 ; 0x310c <__vector_26+0x72> |
3156: 80 91 cb 01 lds r24, 0x01CB |
315a: e8 2f mov r30, r24 |
315c: ff 27 eor r31, r31 |
315e: 90 91 bb 00 lds r25, 0x00BB |
3162: ec 55 subi r30, 0x5C ; 92 |
3164: fb 4f sbci r31, 0xFB ; 251 |
3166: 90 83 st Z, r25 |
3168: 8f 5f subi r24, 0xFF ; 255 |
316a: 80 93 cb 01 sts 0x01CB, r24 |
316e: 84 30 cpi r24, 0x04 ; 4 |
3170: 10 f0 brcs .+4 ; 0x3176 <__vector_26+0xdc> |
3172: 10 92 cb 01 sts 0x01CB, r1 |
3176: 84 e9 ldi r24, 0x94 ; 148 |
3178: 80 93 bc 00 sts 0x00BC, r24 |
317c: 10 92 c9 01 sts 0x01C9, r1 |
3180: 10 92 ca 01 sts 0x01CA, r1 |
3184: ff 91 pop r31 |
3186: ef 91 pop r30 |
3188: 9f 91 pop r25 |
318a: 8f 91 pop r24 |
318c: 0f 90 pop r0 |
318e: 0f be out 0x3f, r0 ; 63 |
3190: 0f 90 pop r0 |
3192: 1f 90 pop r1 |
3194: 18 95 reti |
00003196 <rc_sum_init>: |
3196: 83 ec ldi r24, 0xC3 ; 195 |
3198: 80 93 81 00 sts 0x0081, r24 |
319c: ef e6 ldi r30, 0x6F ; 111 |
319e: f0 e0 ldi r31, 0x00 ; 0 |
31a0: 80 81 ld r24, Z |
31a2: 80 62 ori r24, 0x20 ; 32 |
31a4: 80 83 st Z, r24 |
31a6: 10 92 d6 01 sts 0x01D6, r1 |
31aa: 10 92 d5 01 sts 0x01D5, r1 |
31ae: 10 92 d4 01 sts 0x01D4, r1 |
31b2: 10 92 d3 01 sts 0x01D3, r1 |
31b6: 10 92 d2 01 sts 0x01D2, r1 |
31ba: 10 92 d1 01 sts 0x01D1, r1 |
31be: 08 95 ret |
000031c0 <__vector_12>: |
31c0: 1f 92 push r1 |
31c2: 0f 92 push r0 |
31c4: 0f b6 in r0, 0x3f ; 63 |
31c6: 0f 92 push r0 |
31c8: 11 24 eor r1, r1 |
31ca: 0f 93 push r16 |
31cc: 1f 93 push r17 |
31ce: 2f 93 push r18 |
31d0: 3f 93 push r19 |
31d2: 4f 93 push r20 |
31d4: 5f 93 push r21 |
31d6: 6f 93 push r22 |
31d8: 7f 93 push r23 |
31da: 8f 93 push r24 |
31dc: 9f 93 push r25 |
31de: af 93 push r26 |
31e0: bf 93 push r27 |
31e2: cf 93 push r28 |
31e4: df 93 push r29 |
31e6: ef 93 push r30 |
31e8: ff 93 push r31 |
31ea: 20 91 86 00 lds r18, 0x0086 |
31ee: 30 91 87 00 lds r19, 0x0087 |
31f2: 80 91 ce 01 lds r24, 0x01CE |
31f6: 90 91 cf 01 lds r25, 0x01CF |
31fa: 28 1b sub r18, r24 |
31fc: 39 0b sbc r19, r25 |
31fe: 80 91 86 00 lds r24, 0x0086 |
3202: 90 91 87 00 lds r25, 0x0087 |
3206: 90 93 cf 01 sts 0x01CF, r25 |
320a: 80 93 ce 01 sts 0x01CE, r24 |
320e: c9 01 movw r24, r18 |
3210: 8d 5d subi r24, 0xDD ; 221 |
3212: 95 40 sbci r25, 0x05 ; 5 |
3214: 83 56 subi r24, 0x63 ; 99 |
3216: 99 41 sbci r25, 0x19 ; 25 |
3218: 48 f4 brcc .+18 ; 0x322c <__vector_12+0x6c> |
321a: 81 e0 ldi r24, 0x01 ; 1 |
321c: 90 e0 ldi r25, 0x00 ; 0 |
321e: 90 93 cd 01 sts 0x01CD, r25 |
3222: 80 93 cc 01 sts 0x01CC, r24 |
3226: 10 92 67 01 sts 0x0167, r1 |
322a: 54 c0 rjmp .+168 ; 0x32d4 <__vector_12+0x114> |
322c: c0 91 cc 01 lds r28, 0x01CC |
3230: d0 91 cd 01 lds r29, 0x01CD |
3234: ca 30 cpi r28, 0x0A ; 10 |
3236: d1 05 cpc r29, r1 |
3238: 0c f0 brlt .+2 ; 0x323c <__vector_12+0x7c> |
323a: 4c c0 rjmp .+152 ; 0x32d4 <__vector_12+0x114> |
323c: c9 01 movw r24, r18 |
323e: 8b 5f subi r24, 0xFB ; 251 |
3240: 90 40 sbci r25, 0x00 ; 0 |
3242: 84 5b subi r24, 0xB4 ; 180 |
3244: 91 40 sbci r25, 0x01 ; 1 |
3246: 08 f0 brcs .+2 ; 0x324a <__vector_12+0x8a> |
3248: 40 c0 rjmp .+128 ; 0x32ca <__vector_12+0x10a> |
324a: a9 01 movw r20, r18 |
324c: 42 5d subi r20, 0xD2 ; 210 |
324e: 51 40 sbci r21, 0x01 ; 1 |
3250: fe 01 movw r30, r28 |
3252: ee 0f add r30, r30 |
3254: ff 1f adc r31, r31 |
3256: e8 55 subi r30, 0x58 ; 88 |
3258: fb 4f sbci r31, 0xFB ; 251 |
325a: 80 81 ld r24, Z |
325c: 91 81 ldd r25, Z+1 ; 0x01 |
325e: fa 01 movw r30, r20 |
3260: e8 1b sub r30, r24 |
3262: f9 0b sbc r31, r25 |
3264: cf 01 movw r24, r30 |
3266: f7 ff sbrs r31, 7 |
3268: 03 c0 rjmp .+6 ; 0x3270 <__vector_12+0xb0> |
326a: 90 95 com r25 |
326c: 81 95 neg r24 |
326e: 9f 4f sbci r25, 0xFF ; 255 |
3270: 06 97 sbiw r24, 0x06 ; 6 |
3272: 4c f4 brge .+18 ; 0x3286 <__vector_12+0xc6> |
3274: 80 91 18 02 lds r24, 0x0218 |
3278: 88 3c cpi r24, 0xC8 ; 200 |
327a: 28 f4 brcc .+10 ; 0x3286 <__vector_12+0xc6> |
327c: 80 91 18 02 lds r24, 0x0218 |
3280: 86 5f subi r24, 0xF6 ; 246 |
3282: 80 93 18 02 sts 0x0218, r24 |
3286: fe 01 movw r30, r28 |
3288: ee 0f add r30, r30 |
328a: ff 1f adc r31, r31 |
328c: 8f 01 movw r16, r30 |
328e: 08 55 subi r16, 0x58 ; 88 |
3290: 1b 4f sbci r17, 0xFB ; 251 |
3292: d8 01 movw r26, r16 |
3294: 2d 91 ld r18, X+ |
3296: 3c 91 ld r19, X |
3298: c9 01 movw r24, r18 |
329a: 88 0f add r24, r24 |
329c: 99 1f adc r25, r25 |
329e: 82 0f add r24, r18 |
32a0: 93 1f adc r25, r19 |
32a2: 84 0f add r24, r20 |
32a4: 95 1f adc r25, r21 |
32a6: 64 e0 ldi r22, 0x04 ; 4 |
32a8: 70 e0 ldi r23, 0x00 ; 0 |
32aa: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
32ae: d8 01 movw r26, r16 |
32b0: 8d 91 ld r24, X+ |
32b2: 9c 91 ld r25, X |
32b4: 11 97 sbiw r26, 0x01 ; 1 |
32b6: 9b 01 movw r18, r22 |
32b8: 28 1b sub r18, r24 |
32ba: 39 0b sbc r19, r25 |
32bc: e2 54 subi r30, 0x42 ; 66 |
32be: fb 4f sbci r31, 0xFB ; 251 |
32c0: 31 83 std Z+1, r19 ; 0x01 |
32c2: 20 83 st Z, r18 |
32c4: 11 96 adiw r26, 0x01 ; 1 |
32c6: 7c 93 st X, r23 |
32c8: 6e 93 st -X, r22 |
32ca: 21 96 adiw r28, 0x01 ; 1 |
32cc: d0 93 cd 01 sts 0x01CD, r29 |
32d0: c0 93 cc 01 sts 0x01CC, r28 |
32d4: ff 91 pop r31 |
32d6: ef 91 pop r30 |
32d8: df 91 pop r29 |
32da: cf 91 pop r28 |
32dc: bf 91 pop r27 |
32de: af 91 pop r26 |
32e0: 9f 91 pop r25 |
32e2: 8f 91 pop r24 |
32e4: 7f 91 pop r23 |
32e6: 6f 91 pop r22 |
32e8: 5f 91 pop r21 |
32ea: 4f 91 pop r20 |
32ec: 3f 91 pop r19 |
32ee: 2f 91 pop r18 |
32f0: 1f 91 pop r17 |
32f2: 0f 91 pop r16 |
32f4: 0f 90 pop r0 |
32f6: 0f be out 0x3f, r0 ; 63 |
32f8: 0f 90 pop r0 |
32fa: 1f 90 pop r1 |
32fc: 18 95 reti |
000032fe <Mittelwert>: |
32fe: af 92 push r10 |
3300: bf 92 push r11 |
3302: cf 92 push r12 |
3304: df 92 push r13 |
3306: ef 92 push r14 |
3308: ff 92 push r15 |
330a: 0f 93 push r16 |
330c: 1f 93 push r17 |
330e: 10 92 7a 00 sts 0x007A, r1 |
3312: 80 91 b7 01 lds r24, 0x01B7 |
3316: 88 23 and r24, r24 |
3318: 69 f0 breq .+26 ; 0x3334 <Mittelwert+0x36> |
331a: 80 91 ab 01 lds r24, 0x01AB |
331e: 90 91 ac 01 lds r25, 0x01AC |
3322: 60 91 b7 01 lds r22, 0x01B7 |
3326: 77 27 eor r23, r23 |
3328: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
332c: 70 93 11 05 sts 0x0511, r23 |
3330: 60 93 10 05 sts 0x0510, r22 |
3334: 80 91 b8 01 lds r24, 0x01B8 |
3338: 88 23 and r24, r24 |
333a: 69 f0 breq .+26 ; 0x3356 <Mittelwert+0x58> |
333c: 80 91 ad 01 lds r24, 0x01AD |
3340: 90 91 ae 01 lds r25, 0x01AE |
3344: 60 91 b8 01 lds r22, 0x01B8 |
3348: 77 27 eor r23, r23 |
334a: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
334e: 70 93 0f 05 sts 0x050F, r23 |
3352: 60 93 0e 05 sts 0x050E, r22 |
3356: 80 91 b9 01 lds r24, 0x01B9 |
335a: 88 23 and r24, r24 |
335c: 69 f0 breq .+26 ; 0x3378 <Mittelwert+0x7a> |
335e: 80 91 af 01 lds r24, 0x01AF |
3362: 90 91 b0 01 lds r25, 0x01B0 |
3366: 60 91 b9 01 lds r22, 0x01B9 |
336a: 77 27 eor r23, r23 |
336c: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
3370: 70 93 25 05 sts 0x0525, r23 |
3374: 60 93 24 05 sts 0x0524, r22 |
3378: 80 91 ba 01 lds r24, 0x01BA |
337c: 88 23 and r24, r24 |
337e: d9 f1 breq .+118 ; 0x33f6 <Mittelwert+0xf8> |
3380: 60 91 b3 01 lds r22, 0x01B3 |
3384: 70 91 b4 01 lds r23, 0x01B4 |
3388: 20 91 ba 01 lds r18, 0x01BA |
338c: e0 90 21 05 lds r14, 0x0521 |
3390: f0 90 22 05 lds r15, 0x0522 |
3394: 00 27 eor r16, r16 |
3396: f7 fc sbrc r15, 7 |
3398: 00 95 com r16 |
339a: 10 2f mov r17, r16 |
339c: 57 01 movw r10, r14 |
339e: 68 01 movw r12, r16 |
33a0: 83 e0 ldi r24, 0x03 ; 3 |
33a2: aa 0c add r10, r10 |
33a4: bb 1c adc r11, r11 |
33a6: cc 1c adc r12, r12 |
33a8: dd 1c adc r13, r13 |
33aa: 8a 95 dec r24 |
33ac: d1 f7 brne .-12 ; 0x33a2 <Mittelwert+0xa4> |
33ae: ae 18 sub r10, r14 |
33b0: bf 08 sbc r11, r15 |
33b2: c0 0a sbc r12, r16 |
33b4: d1 0a sbc r13, r17 |
33b6: 88 27 eor r24, r24 |
33b8: 77 fd sbrc r23, 7 |
33ba: 80 95 com r24 |
33bc: 98 2f mov r25, r24 |
33be: b4 e0 ldi r27, 0x04 ; 4 |
33c0: 66 0f add r22, r22 |
33c2: 77 1f adc r23, r23 |
33c4: 88 1f adc r24, r24 |
33c6: 99 1f adc r25, r25 |
33c8: ba 95 dec r27 |
33ca: d1 f7 brne .-12 ; 0x33c0 <Mittelwert+0xc2> |
33cc: 33 27 eor r19, r19 |
33ce: 44 27 eor r20, r20 |
33d0: 55 27 eor r21, r21 |
33d2: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
33d6: a2 0e add r10, r18 |
33d8: b3 1e adc r11, r19 |
33da: c4 1e adc r12, r20 |
33dc: d5 1e adc r13, r21 |
33de: c6 01 movw r24, r12 |
33e0: b5 01 movw r22, r10 |
33e2: 28 e0 ldi r18, 0x08 ; 8 |
33e4: 30 e0 ldi r19, 0x00 ; 0 |
33e6: 40 e0 ldi r20, 0x00 ; 0 |
33e8: 50 e0 ldi r21, 0x00 ; 0 |
33ea: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
33ee: 30 93 22 05 sts 0x0522, r19 |
33f2: 20 93 21 05 sts 0x0521, r18 |
33f6: 80 91 bb 01 lds r24, 0x01BB |
33fa: 88 23 and r24, r24 |
33fc: d9 f1 breq .+118 ; 0x3474 <Mittelwert+0x176> |
33fe: 60 91 b1 01 lds r22, 0x01B1 |
3402: 70 91 b2 01 lds r23, 0x01B2 |
3406: 20 91 bb 01 lds r18, 0x01BB |
340a: e0 90 2a 05 lds r14, 0x052A |
340e: f0 90 2b 05 lds r15, 0x052B |
3412: 00 27 eor r16, r16 |
3414: f7 fc sbrc r15, 7 |
3416: 00 95 com r16 |
3418: 10 2f mov r17, r16 |
341a: 57 01 movw r10, r14 |
341c: 68 01 movw r12, r16 |
341e: a3 e0 ldi r26, 0x03 ; 3 |
3420: aa 0c add r10, r10 |
3422: bb 1c adc r11, r11 |
3424: cc 1c adc r12, r12 |
3426: dd 1c adc r13, r13 |
3428: aa 95 dec r26 |
342a: d1 f7 brne .-12 ; 0x3420 <Mittelwert+0x122> |
342c: ae 18 sub r10, r14 |
342e: bf 08 sbc r11, r15 |
3430: c0 0a sbc r12, r16 |
3432: d1 0a sbc r13, r17 |
3434: 88 27 eor r24, r24 |
3436: 77 fd sbrc r23, 7 |
3438: 80 95 com r24 |
343a: 98 2f mov r25, r24 |
343c: f4 e0 ldi r31, 0x04 ; 4 |
343e: 66 0f add r22, r22 |
3440: 77 1f adc r23, r23 |
3442: 88 1f adc r24, r24 |
3444: 99 1f adc r25, r25 |
3446: fa 95 dec r31 |
3448: d1 f7 brne .-12 ; 0x343e <Mittelwert+0x140> |
344a: 33 27 eor r19, r19 |
344c: 44 27 eor r20, r20 |
344e: 55 27 eor r21, r21 |
3450: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
3454: a2 0e add r10, r18 |
3456: b3 1e adc r11, r19 |
3458: c4 1e adc r12, r20 |
345a: d5 1e adc r13, r21 |
345c: c6 01 movw r24, r12 |
345e: b5 01 movw r22, r10 |
3460: 28 e0 ldi r18, 0x08 ; 8 |
3462: 30 e0 ldi r19, 0x00 ; 0 |
3464: 40 e0 ldi r20, 0x00 ; 0 |
3466: 50 e0 ldi r21, 0x00 ; 0 |
3468: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
346c: 30 93 2b 05 sts 0x052B, r19 |
3470: 20 93 2a 05 sts 0x052A, r18 |
3474: 80 91 bc 01 lds r24, 0x01BC |
3478: 88 23 and r24, r24 |
347a: a1 f1 breq .+104 ; 0x34e4 <Mittelwert+0x1e6> |
347c: 60 91 b5 01 lds r22, 0x01B5 |
3480: 70 91 b6 01 lds r23, 0x01B6 |
3484: 20 91 bc 01 lds r18, 0x01BC |
3488: e0 90 13 05 lds r14, 0x0513 |
348c: f0 90 14 05 lds r15, 0x0514 |
3490: 00 27 eor r16, r16 |
3492: f7 fc sbrc r15, 7 |
3494: 00 95 com r16 |
3496: 10 2f mov r17, r16 |
3498: 57 01 movw r10, r14 |
349a: 68 01 movw r12, r16 |
349c: e3 e0 ldi r30, 0x03 ; 3 |
349e: aa 0c add r10, r10 |
34a0: bb 1c adc r11, r11 |
34a2: cc 1c adc r12, r12 |
34a4: dd 1c adc r13, r13 |
34a6: ea 95 dec r30 |
34a8: d1 f7 brne .-12 ; 0x349e <Mittelwert+0x1a0> |
34aa: ae 18 sub r10, r14 |
34ac: bf 08 sbc r11, r15 |
34ae: c0 0a sbc r12, r16 |
34b0: d1 0a sbc r13, r17 |
34b2: 88 27 eor r24, r24 |
34b4: 77 fd sbrc r23, 7 |
34b6: 80 95 com r24 |
34b8: 98 2f mov r25, r24 |
34ba: 33 27 eor r19, r19 |
34bc: 44 27 eor r20, r20 |
34be: 55 27 eor r21, r21 |
34c0: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
34c4: a2 0e add r10, r18 |
34c6: b3 1e adc r11, r19 |
34c8: c4 1e adc r12, r20 |
34ca: d5 1e adc r13, r21 |
34cc: c6 01 movw r24, r12 |
34ce: b5 01 movw r22, r10 |
34d0: 28 e0 ldi r18, 0x08 ; 8 |
34d2: 30 e0 ldi r19, 0x00 ; 0 |
34d4: 40 e0 ldi r20, 0x00 ; 0 |
34d6: 50 e0 ldi r21, 0x00 ; 0 |
34d8: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
34dc: 30 93 14 05 sts 0x0514, r19 |
34e0: 20 93 13 05 sts 0x0513, r18 |
34e4: 10 92 ac 01 sts 0x01AC, r1 |
34e8: 10 92 ab 01 sts 0x01AB, r1 |
34ec: 10 92 b7 01 sts 0x01B7, r1 |
34f0: 10 92 ae 01 sts 0x01AE, r1 |
34f4: 10 92 ad 01 sts 0x01AD, r1 |
34f8: 10 92 b8 01 sts 0x01B8, r1 |
34fc: 10 92 b0 01 sts 0x01B0, r1 |
3500: 10 92 af 01 sts 0x01AF, r1 |
3504: 10 92 b9 01 sts 0x01B9, r1 |
3508: 10 92 b2 01 sts 0x01B2, r1 |
350c: 10 92 b1 01 sts 0x01B1, r1 |
3510: 10 92 bb 01 sts 0x01BB, r1 |
3514: 10 92 b4 01 sts 0x01B4, r1 |
3518: 10 92 b3 01 sts 0x01B3, r1 |
351c: 10 92 ba 01 sts 0x01BA, r1 |
3520: 10 92 b6 01 sts 0x01B6, r1 |
3524: 10 92 b5 01 sts 0x01B5, r1 |
3528: 10 92 bc 01 sts 0x01BC, r1 |
352c: 80 91 fb 01 lds r24, 0x01FB |
3530: 90 91 fc 01 lds r25, 0x01FC |
3534: a0 91 fd 01 lds r26, 0x01FD |
3538: b0 91 fe 01 lds r27, 0x01FE |
353c: 80 93 e7 01 sts 0x01E7, r24 |
3540: 90 93 e8 01 sts 0x01E8, r25 |
3544: a0 93 e9 01 sts 0x01E9, r26 |
3548: b0 93 ea 01 sts 0x01EA, r27 |
354c: 80 91 eb 01 lds r24, 0x01EB |
3550: 90 91 ec 01 lds r25, 0x01EC |
3554: a0 91 ed 01 lds r26, 0x01ED |
3558: b0 91 ee 01 lds r27, 0x01EE |
355c: 80 93 d7 01 sts 0x01D7, r24 |
3560: 90 93 d8 01 sts 0x01D8, r25 |
3564: a0 93 d9 01 sts 0x01D9, r26 |
3568: b0 93 da 01 sts 0x01DA, r27 |
356c: 80 91 f3 01 lds r24, 0x01F3 |
3570: 90 91 f4 01 lds r25, 0x01F4 |
3574: a0 91 f5 01 lds r26, 0x01F5 |
3578: b0 91 f6 01 lds r27, 0x01F6 |
357c: 80 93 df 01 sts 0x01DF, r24 |
3580: 90 93 e0 01 sts 0x01E0, r25 |
3584: a0 93 e1 01 sts 0x01E1, r26 |
3588: b0 93 e2 01 sts 0x01E2, r27 |
358c: 80 91 ef 01 lds r24, 0x01EF |
3590: 90 91 f0 01 lds r25, 0x01F0 |
3594: a0 91 f1 01 lds r26, 0x01F1 |
3598: b0 91 f2 01 lds r27, 0x01F2 |
359c: 80 93 db 01 sts 0x01DB, r24 |
35a0: 90 93 dc 01 sts 0x01DC, r25 |
35a4: a0 93 dd 01 sts 0x01DD, r26 |
35a8: b0 93 de 01 sts 0x01DE, r27 |
35ac: 80 91 f7 01 lds r24, 0x01F7 |
35b0: 90 91 f8 01 lds r25, 0x01F8 |
35b4: a0 91 f9 01 lds r26, 0x01F9 |
35b8: b0 91 fa 01 lds r27, 0x01FA |
35bc: 80 93 e3 01 sts 0x01E3, r24 |
35c0: 90 93 e4 01 sts 0x01E4, r25 |
35c4: a0 93 e5 01 sts 0x01E5, r26 |
35c8: b0 93 e6 01 sts 0x01E6, r27 |
35cc: 8f ec ldi r24, 0xCF ; 207 |
35ce: 80 93 7a 00 sts 0x007A, r24 |
35d2: 20 91 10 02 lds r18, 0x0210 |
35d6: 30 91 11 02 lds r19, 0x0211 |
35da: 80 91 d8 04 lds r24, 0x04D8 |
35de: e8 2f mov r30, r24 |
35e0: ff 27 eor r31, r31 |
35e2: ee 0f add r30, r30 |
35e4: ff 1f adc r31, r31 |
35e6: e8 55 subi r30, 0x58 ; 88 |
35e8: fb 4f sbci r31, 0xFB ; 251 |
35ea: 80 81 ld r24, Z |
35ec: 91 81 ldd r25, Z+1 ; 0x01 |
35ee: 82 59 subi r24, 0x92 ; 146 |
35f0: 9f 4f sbci r25, 0xFF ; 255 |
35f2: 28 17 cp r18, r24 |
35f4: 39 07 cpc r19, r25 |
35f6: 1c f4 brge .+6 ; 0x35fe <Mittelwert+0x300> |
35f8: 2f 5f subi r18, 0xFF ; 255 |
35fa: 3f 4f sbci r19, 0xFF ; 255 |
35fc: 0c c0 rjmp .+24 ; 0x3616 <Mittelwert+0x318> |
35fe: 80 81 ld r24, Z |
3600: 91 81 ldd r25, Z+1 ; 0x01 |
3602: 82 59 subi r24, 0x92 ; 146 |
3604: 9f 4f sbci r25, 0xFF ; 255 |
3606: 82 17 cp r24, r18 |
3608: 93 07 cpc r25, r19 |
360a: 4c f4 brge .+18 ; 0x361e <Mittelwert+0x320> |
360c: 21 15 cp r18, r1 |
360e: 31 05 cpc r19, r1 |
3610: 31 f0 breq .+12 ; 0x361e <Mittelwert+0x320> |
3612: 21 50 subi r18, 0x01 ; 1 |
3614: 30 40 sbci r19, 0x00 ; 0 |
3616: 30 93 11 02 sts 0x0211, r19 |
361a: 20 93 10 02 sts 0x0210, r18 |
361e: 20 91 12 02 lds r18, 0x0212 |
3622: 30 91 13 02 lds r19, 0x0213 |
3626: 80 91 d9 04 lds r24, 0x04D9 |
362a: e8 2f mov r30, r24 |
362c: ff 27 eor r31, r31 |
362e: ee 0f add r30, r30 |
3630: ff 1f adc r31, r31 |
3632: e8 55 subi r30, 0x58 ; 88 |
3634: fb 4f sbci r31, 0xFB ; 251 |
3636: 80 81 ld r24, Z |
3638: 91 81 ldd r25, Z+1 ; 0x01 |
363a: 82 59 subi r24, 0x92 ; 146 |
363c: 9f 4f sbci r25, 0xFF ; 255 |
363e: 28 17 cp r18, r24 |
3640: 39 07 cpc r19, r25 |
3642: 1c f4 brge .+6 ; 0x364a <Mittelwert+0x34c> |
3644: 2f 5f subi r18, 0xFF ; 255 |
3646: 3f 4f sbci r19, 0xFF ; 255 |
3648: 0c c0 rjmp .+24 ; 0x3662 <Mittelwert+0x364> |
364a: 80 81 ld r24, Z |
364c: 91 81 ldd r25, Z+1 ; 0x01 |
364e: 82 59 subi r24, 0x92 ; 146 |
3650: 9f 4f sbci r25, 0xFF ; 255 |
3652: 82 17 cp r24, r18 |
3654: 93 07 cpc r25, r19 |
3656: 4c f4 brge .+18 ; 0x366a <Mittelwert+0x36c> |
3658: 21 15 cp r18, r1 |
365a: 31 05 cpc r19, r1 |
365c: 31 f0 breq .+12 ; 0x366a <Mittelwert+0x36c> |
365e: 21 50 subi r18, 0x01 ; 1 |
3660: 30 40 sbci r19, 0x00 ; 0 |
3662: 30 93 13 02 sts 0x0213, r19 |
3666: 20 93 12 02 sts 0x0212, r18 |
366a: 20 91 14 02 lds r18, 0x0214 |
366e: 30 91 15 02 lds r19, 0x0215 |
3672: 80 91 da 04 lds r24, 0x04DA |
3676: e8 2f mov r30, r24 |
3678: ff 27 eor r31, r31 |
367a: ee 0f add r30, r30 |
367c: ff 1f adc r31, r31 |
367e: e8 55 subi r30, 0x58 ; 88 |
3680: fb 4f sbci r31, 0xFB ; 251 |
3682: 80 81 ld r24, Z |
3684: 91 81 ldd r25, Z+1 ; 0x01 |
3686: 82 59 subi r24, 0x92 ; 146 |
3688: 9f 4f sbci r25, 0xFF ; 255 |
368a: 28 17 cp r18, r24 |
368c: 39 07 cpc r19, r25 |
368e: 1c f4 brge .+6 ; 0x3696 <Mittelwert+0x398> |
3690: 2f 5f subi r18, 0xFF ; 255 |
3692: 3f 4f sbci r19, 0xFF ; 255 |
3694: 0c c0 rjmp .+24 ; 0x36ae <Mittelwert+0x3b0> |
3696: 80 81 ld r24, Z |
3698: 91 81 ldd r25, Z+1 ; 0x01 |
369a: 82 59 subi r24, 0x92 ; 146 |
369c: 9f 4f sbci r25, 0xFF ; 255 |
369e: 82 17 cp r24, r18 |
36a0: 93 07 cpc r25, r19 |
36a2: 4c f4 brge .+18 ; 0x36b6 <Mittelwert+0x3b8> |
36a4: 21 15 cp r18, r1 |
36a6: 31 05 cpc r19, r1 |
36a8: 31 f0 breq .+12 ; 0x36b6 <Mittelwert+0x3b8> |
36aa: 21 50 subi r18, 0x01 ; 1 |
36ac: 30 40 sbci r19, 0x00 ; 0 |
36ae: 30 93 15 02 sts 0x0215, r19 |
36b2: 20 93 14 02 sts 0x0214, r18 |
36b6: 20 91 16 02 lds r18, 0x0216 |
36ba: 30 91 17 02 lds r19, 0x0217 |
36be: 80 91 db 04 lds r24, 0x04DB |
36c2: e8 2f mov r30, r24 |
36c4: ff 27 eor r31, r31 |
36c6: ee 0f add r30, r30 |
36c8: ff 1f adc r31, r31 |
36ca: e8 55 subi r30, 0x58 ; 88 |
36cc: fb 4f sbci r31, 0xFB ; 251 |
36ce: 80 81 ld r24, Z |
36d0: 91 81 ldd r25, Z+1 ; 0x01 |
36d2: 82 59 subi r24, 0x92 ; 146 |
36d4: 9f 4f sbci r25, 0xFF ; 255 |
36d6: 28 17 cp r18, r24 |
36d8: 39 07 cpc r19, r25 |
36da: 1c f4 brge .+6 ; 0x36e2 <Mittelwert+0x3e4> |
36dc: 2f 5f subi r18, 0xFF ; 255 |
36de: 3f 4f sbci r19, 0xFF ; 255 |
36e0: 0c c0 rjmp .+24 ; 0x36fa <Mittelwert+0x3fc> |
36e2: 80 81 ld r24, Z |
36e4: 91 81 ldd r25, Z+1 ; 0x01 |
36e6: 82 59 subi r24, 0x92 ; 146 |
36e8: 9f 4f sbci r25, 0xFF ; 255 |
36ea: 82 17 cp r24, r18 |
36ec: 93 07 cpc r25, r19 |
36ee: 4c f4 brge .+18 ; 0x3702 <Mittelwert+0x404> |
36f0: 21 15 cp r18, r1 |
36f2: 31 05 cpc r19, r1 |
36f4: 31 f0 breq .+12 ; 0x3702 <Mittelwert+0x404> |
36f6: 21 50 subi r18, 0x01 ; 1 |
36f8: 30 40 sbci r19, 0x00 ; 0 |
36fa: 30 93 17 02 sts 0x0217, r19 |
36fe: 20 93 16 02 sts 0x0216, r18 |
3702: 80 91 10 02 lds r24, 0x0210 |
3706: 90 91 11 02 lds r25, 0x0211 |
370a: 97 ff sbrs r25, 7 |
370c: 05 c0 rjmp .+10 ; 0x3718 <Mittelwert+0x41a> |
370e: 10 92 11 02 sts 0x0211, r1 |
3712: 10 92 10 02 sts 0x0210, r1 |
3716: 0a c0 rjmp .+20 ; 0x372c <Mittelwert+0x42e> |
3718: 8f 3f cpi r24, 0xFF ; 255 |
371a: 91 05 cpc r25, r1 |
371c: 39 f0 breq .+14 ; 0x372c <Mittelwert+0x42e> |
371e: 34 f0 brlt .+12 ; 0x372c <Mittelwert+0x42e> |
3720: 8f ef ldi r24, 0xFF ; 255 |
3722: 90 e0 ldi r25, 0x00 ; 0 |
3724: 90 93 11 02 sts 0x0211, r25 |
3728: 80 93 10 02 sts 0x0210, r24 |
372c: 80 91 12 02 lds r24, 0x0212 |
3730: 90 91 13 02 lds r25, 0x0213 |
3734: 97 ff sbrs r25, 7 |
3736: 05 c0 rjmp .+10 ; 0x3742 <Mittelwert+0x444> |
3738: 10 92 13 02 sts 0x0213, r1 |
373c: 10 92 12 02 sts 0x0212, r1 |
3740: 0a c0 rjmp .+20 ; 0x3756 <Mittelwert+0x458> |
3742: 8f 3f cpi r24, 0xFF ; 255 |
3744: 91 05 cpc r25, r1 |
3746: 39 f0 breq .+14 ; 0x3756 <Mittelwert+0x458> |
3748: 34 f0 brlt .+12 ; 0x3756 <Mittelwert+0x458> |
374a: 8f ef ldi r24, 0xFF ; 255 |
374c: 90 e0 ldi r25, 0x00 ; 0 |
374e: 90 93 13 02 sts 0x0213, r25 |
3752: 80 93 12 02 sts 0x0212, r24 |
3756: 80 91 14 02 lds r24, 0x0214 |
375a: 90 91 15 02 lds r25, 0x0215 |
375e: 97 ff sbrs r25, 7 |
3760: 05 c0 rjmp .+10 ; 0x376c <Mittelwert+0x46e> |
3762: 10 92 15 02 sts 0x0215, r1 |
3766: 10 92 14 02 sts 0x0214, r1 |
376a: 0a c0 rjmp .+20 ; 0x3780 <Mittelwert+0x482> |
376c: 8f 3f cpi r24, 0xFF ; 255 |
376e: 91 05 cpc r25, r1 |
3770: 39 f0 breq .+14 ; 0x3780 <Mittelwert+0x482> |
3772: 34 f0 brlt .+12 ; 0x3780 <Mittelwert+0x482> |
3774: 8f ef ldi r24, 0xFF ; 255 |
3776: 90 e0 ldi r25, 0x00 ; 0 |
3778: 90 93 15 02 sts 0x0215, r25 |
377c: 80 93 14 02 sts 0x0214, r24 |
3780: 80 91 16 02 lds r24, 0x0216 |
3784: 90 91 17 02 lds r25, 0x0217 |
3788: 97 ff sbrs r25, 7 |
378a: 05 c0 rjmp .+10 ; 0x3796 <Mittelwert+0x498> |
378c: 10 92 17 02 sts 0x0217, r1 |
3790: 10 92 16 02 sts 0x0216, r1 |
3794: 0a c0 rjmp .+20 ; 0x37aa <Mittelwert+0x4ac> |
3796: 8f 3f cpi r24, 0xFF ; 255 |
3798: 91 05 cpc r25, r1 |
379a: 39 f0 breq .+14 ; 0x37aa <Mittelwert+0x4ac> |
379c: 34 f0 brlt .+12 ; 0x37aa <Mittelwert+0x4ac> |
379e: 8f ef ldi r24, 0xFF ; 255 |
37a0: 90 e0 ldi r25, 0x00 ; 0 |
37a2: 90 93 17 02 sts 0x0217, r25 |
37a6: 80 93 16 02 sts 0x0216, r24 |
37aa: 1f 91 pop r17 |
37ac: 0f 91 pop r16 |
37ae: ff 90 pop r15 |
37b0: ef 90 pop r14 |
37b2: df 90 pop r13 |
37b4: cf 90 pop r12 |
37b6: bf 90 pop r11 |
37b8: af 90 pop r10 |
37ba: 08 95 ret |
000037bc <CalibrierMittelwert>: |
37bc: 10 92 7a 00 sts 0x007A, r1 |
37c0: 80 91 b7 01 lds r24, 0x01B7 |
37c4: 88 23 and r24, r24 |
37c6: 69 f0 breq .+26 ; 0x37e2 <CalibrierMittelwert+0x26> |
37c8: 80 91 ab 01 lds r24, 0x01AB |
37cc: 90 91 ac 01 lds r25, 0x01AC |
37d0: 60 91 b7 01 lds r22, 0x01B7 |
37d4: 77 27 eor r23, r23 |
37d6: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
37da: 70 93 11 05 sts 0x0511, r23 |
37de: 60 93 10 05 sts 0x0510, r22 |
37e2: 80 91 b8 01 lds r24, 0x01B8 |
37e6: 88 23 and r24, r24 |
37e8: 69 f0 breq .+26 ; 0x3804 <CalibrierMittelwert+0x48> |
37ea: 80 91 ad 01 lds r24, 0x01AD |
37ee: 90 91 ae 01 lds r25, 0x01AE |
37f2: 60 91 b8 01 lds r22, 0x01B8 |
37f6: 77 27 eor r23, r23 |
37f8: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
37fc: 70 93 0f 05 sts 0x050F, r23 |
3800: 60 93 0e 05 sts 0x050E, r22 |
3804: 80 91 b9 01 lds r24, 0x01B9 |
3808: 88 23 and r24, r24 |
380a: 69 f0 breq .+26 ; 0x3826 <CalibrierMittelwert+0x6a> |
380c: 80 91 af 01 lds r24, 0x01AF |
3810: 90 91 b0 01 lds r25, 0x01B0 |
3814: 60 91 b9 01 lds r22, 0x01B9 |
3818: 77 27 eor r23, r23 |
381a: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
381e: 70 93 25 05 sts 0x0525, r23 |
3822: 60 93 24 05 sts 0x0524, r22 |
3826: 80 91 ba 01 lds r24, 0x01BA |
382a: 88 23 and r24, r24 |
382c: d1 f0 breq .+52 ; 0x3862 <CalibrierMittelwert+0xa6> |
382e: 60 91 b3 01 lds r22, 0x01B3 |
3832: 70 91 b4 01 lds r23, 0x01B4 |
3836: 20 91 ba 01 lds r18, 0x01BA |
383a: 88 27 eor r24, r24 |
383c: 77 fd sbrc r23, 7 |
383e: 80 95 com r24 |
3840: 98 2f mov r25, r24 |
3842: f4 e0 ldi r31, 0x04 ; 4 |
3844: 66 0f add r22, r22 |
3846: 77 1f adc r23, r23 |
3848: 88 1f adc r24, r24 |
384a: 99 1f adc r25, r25 |
384c: fa 95 dec r31 |
384e: d1 f7 brne .-12 ; 0x3844 <CalibrierMittelwert+0x88> |
3850: 33 27 eor r19, r19 |
3852: 44 27 eor r20, r20 |
3854: 55 27 eor r21, r21 |
3856: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
385a: 30 93 22 05 sts 0x0522, r19 |
385e: 20 93 21 05 sts 0x0521, r18 |
3862: 80 91 bb 01 lds r24, 0x01BB |
3866: 88 23 and r24, r24 |
3868: d1 f0 breq .+52 ; 0x389e <CalibrierMittelwert+0xe2> |
386a: 60 91 b1 01 lds r22, 0x01B1 |
386e: 70 91 b2 01 lds r23, 0x01B2 |
3872: 20 91 bb 01 lds r18, 0x01BB |
3876: 88 27 eor r24, r24 |
3878: 77 fd sbrc r23, 7 |
387a: 80 95 com r24 |
387c: 98 2f mov r25, r24 |
387e: e4 e0 ldi r30, 0x04 ; 4 |
3880: 66 0f add r22, r22 |
3882: 77 1f adc r23, r23 |
3884: 88 1f adc r24, r24 |
3886: 99 1f adc r25, r25 |
3888: ea 95 dec r30 |
388a: d1 f7 brne .-12 ; 0x3880 <CalibrierMittelwert+0xc4> |
388c: 33 27 eor r19, r19 |
388e: 44 27 eor r20, r20 |
3890: 55 27 eor r21, r21 |
3892: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
3896: 30 93 2b 05 sts 0x052B, r19 |
389a: 20 93 2a 05 sts 0x052A, r18 |
389e: 80 91 bc 01 lds r24, 0x01BC |
38a2: 88 23 and r24, r24 |
38a4: 99 f0 breq .+38 ; 0x38cc <CalibrierMittelwert+0x110> |
38a6: 60 91 b5 01 lds r22, 0x01B5 |
38aa: 70 91 b6 01 lds r23, 0x01B6 |
38ae: 20 91 bc 01 lds r18, 0x01BC |
38b2: 88 27 eor r24, r24 |
38b4: 77 fd sbrc r23, 7 |
38b6: 80 95 com r24 |
38b8: 98 2f mov r25, r24 |
38ba: 33 27 eor r19, r19 |
38bc: 44 27 eor r20, r20 |
38be: 55 27 eor r21, r21 |
38c0: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
38c4: 30 93 14 05 sts 0x0514, r19 |
38c8: 20 93 13 05 sts 0x0513, r18 |
38cc: 10 92 ac 01 sts 0x01AC, r1 |
38d0: 10 92 ab 01 sts 0x01AB, r1 |
38d4: 10 92 b7 01 sts 0x01B7, r1 |
38d8: 10 92 ae 01 sts 0x01AE, r1 |
38dc: 10 92 ad 01 sts 0x01AD, r1 |
38e0: 10 92 b8 01 sts 0x01B8, r1 |
38e4: 10 92 b0 01 sts 0x01B0, r1 |
38e8: 10 92 af 01 sts 0x01AF, r1 |
38ec: 10 92 b9 01 sts 0x01B9, r1 |
38f0: 10 92 b2 01 sts 0x01B2, r1 |
38f4: 10 92 b1 01 sts 0x01B1, r1 |
38f8: 10 92 bb 01 sts 0x01BB, r1 |
38fc: 10 92 b4 01 sts 0x01B4, r1 |
3900: 10 92 b3 01 sts 0x01B3, r1 |
3904: 10 92 ba 01 sts 0x01BA, r1 |
3908: 10 92 b6 01 sts 0x01B6, r1 |
390c: 10 92 b5 01 sts 0x01B5, r1 |
3910: 10 92 bc 01 sts 0x01BC, r1 |
3914: 8f ec ldi r24, 0xCF ; 207 |
3916: 80 93 7a 00 sts 0x007A, r24 |
391a: 20 91 10 02 lds r18, 0x0210 |
391e: 30 91 11 02 lds r19, 0x0211 |
3922: 80 91 d8 04 lds r24, 0x04D8 |
3926: e8 2f mov r30, r24 |
3928: ff 27 eor r31, r31 |
392a: ee 0f add r30, r30 |
392c: ff 1f adc r31, r31 |
392e: e8 55 subi r30, 0x58 ; 88 |
3930: fb 4f sbci r31, 0xFB ; 251 |
3932: 80 81 ld r24, Z |
3934: 91 81 ldd r25, Z+1 ; 0x01 |
3936: 82 59 subi r24, 0x92 ; 146 |
3938: 9f 4f sbci r25, 0xFF ; 255 |
393a: 28 17 cp r18, r24 |
393c: 39 07 cpc r19, r25 |
393e: 1c f4 brge .+6 ; 0x3946 <CalibrierMittelwert+0x18a> |
3940: 2f 5f subi r18, 0xFF ; 255 |
3942: 3f 4f sbci r19, 0xFF ; 255 |
3944: 0c c0 rjmp .+24 ; 0x395e <CalibrierMittelwert+0x1a2> |
3946: 80 81 ld r24, Z |
3948: 91 81 ldd r25, Z+1 ; 0x01 |
394a: 82 59 subi r24, 0x92 ; 146 |
394c: 9f 4f sbci r25, 0xFF ; 255 |
394e: 82 17 cp r24, r18 |
3950: 93 07 cpc r25, r19 |
3952: 4c f4 brge .+18 ; 0x3966 <CalibrierMittelwert+0x1aa> |
3954: 21 15 cp r18, r1 |
3956: 31 05 cpc r19, r1 |
3958: 31 f0 breq .+12 ; 0x3966 <CalibrierMittelwert+0x1aa> |
395a: 21 50 subi r18, 0x01 ; 1 |
395c: 30 40 sbci r19, 0x00 ; 0 |
395e: 30 93 11 02 sts 0x0211, r19 |
3962: 20 93 10 02 sts 0x0210, r18 |
3966: 20 91 12 02 lds r18, 0x0212 |
396a: 30 91 13 02 lds r19, 0x0213 |
396e: 80 91 d9 04 lds r24, 0x04D9 |
3972: e8 2f mov r30, r24 |
3974: ff 27 eor r31, r31 |
3976: ee 0f add r30, r30 |
3978: ff 1f adc r31, r31 |
397a: e8 55 subi r30, 0x58 ; 88 |
397c: fb 4f sbci r31, 0xFB ; 251 |
397e: 80 81 ld r24, Z |
3980: 91 81 ldd r25, Z+1 ; 0x01 |
3982: 82 59 subi r24, 0x92 ; 146 |
3984: 9f 4f sbci r25, 0xFF ; 255 |
3986: 28 17 cp r18, r24 |
3988: 39 07 cpc r19, r25 |
398a: 1c f4 brge .+6 ; 0x3992 <CalibrierMittelwert+0x1d6> |
398c: 2f 5f subi r18, 0xFF ; 255 |
398e: 3f 4f sbci r19, 0xFF ; 255 |
3990: 0c c0 rjmp .+24 ; 0x39aa <CalibrierMittelwert+0x1ee> |
3992: 80 81 ld r24, Z |
3994: 91 81 ldd r25, Z+1 ; 0x01 |
3996: 82 59 subi r24, 0x92 ; 146 |
3998: 9f 4f sbci r25, 0xFF ; 255 |
399a: 82 17 cp r24, r18 |
399c: 93 07 cpc r25, r19 |
399e: 4c f4 brge .+18 ; 0x39b2 <CalibrierMittelwert+0x1f6> |
39a0: 21 15 cp r18, r1 |
39a2: 31 05 cpc r19, r1 |
39a4: 31 f0 breq .+12 ; 0x39b2 <CalibrierMittelwert+0x1f6> |
39a6: 21 50 subi r18, 0x01 ; 1 |
39a8: 30 40 sbci r19, 0x00 ; 0 |
39aa: 30 93 13 02 sts 0x0213, r19 |
39ae: 20 93 12 02 sts 0x0212, r18 |
39b2: 20 91 14 02 lds r18, 0x0214 |
39b6: 30 91 15 02 lds r19, 0x0215 |
39ba: 80 91 da 04 lds r24, 0x04DA |
39be: e8 2f mov r30, r24 |
39c0: ff 27 eor r31, r31 |
39c2: ee 0f add r30, r30 |
39c4: ff 1f adc r31, r31 |
39c6: e8 55 subi r30, 0x58 ; 88 |
39c8: fb 4f sbci r31, 0xFB ; 251 |
39ca: 80 81 ld r24, Z |
39cc: 91 81 ldd r25, Z+1 ; 0x01 |
39ce: 82 59 subi r24, 0x92 ; 146 |
39d0: 9f 4f sbci r25, 0xFF ; 255 |
39d2: 28 17 cp r18, r24 |
39d4: 39 07 cpc r19, r25 |
39d6: 1c f4 brge .+6 ; 0x39de <CalibrierMittelwert+0x222> |
39d8: 2f 5f subi r18, 0xFF ; 255 |
39da: 3f 4f sbci r19, 0xFF ; 255 |
39dc: 0c c0 rjmp .+24 ; 0x39f6 <CalibrierMittelwert+0x23a> |
39de: 80 81 ld r24, Z |
39e0: 91 81 ldd r25, Z+1 ; 0x01 |
39e2: 82 59 subi r24, 0x92 ; 146 |
39e4: 9f 4f sbci r25, 0xFF ; 255 |
39e6: 82 17 cp r24, r18 |
39e8: 93 07 cpc r25, r19 |
39ea: 4c f4 brge .+18 ; 0x39fe <CalibrierMittelwert+0x242> |
39ec: 21 15 cp r18, r1 |
39ee: 31 05 cpc r19, r1 |
39f0: 31 f0 breq .+12 ; 0x39fe <CalibrierMittelwert+0x242> |
39f2: 21 50 subi r18, 0x01 ; 1 |
39f4: 30 40 sbci r19, 0x00 ; 0 |
39f6: 30 93 15 02 sts 0x0215, r19 |
39fa: 20 93 14 02 sts 0x0214, r18 |
39fe: 20 91 16 02 lds r18, 0x0216 |
3a02: 30 91 17 02 lds r19, 0x0217 |
3a06: 80 91 db 04 lds r24, 0x04DB |
3a0a: e8 2f mov r30, r24 |
3a0c: ff 27 eor r31, r31 |
3a0e: ee 0f add r30, r30 |
3a10: ff 1f adc r31, r31 |
3a12: e8 55 subi r30, 0x58 ; 88 |
3a14: fb 4f sbci r31, 0xFB ; 251 |
3a16: 80 81 ld r24, Z |
3a18: 91 81 ldd r25, Z+1 ; 0x01 |
3a1a: 82 59 subi r24, 0x92 ; 146 |
3a1c: 9f 4f sbci r25, 0xFF ; 255 |
3a1e: 28 17 cp r18, r24 |
3a20: 39 07 cpc r19, r25 |
3a22: 1c f4 brge .+6 ; 0x3a2a <CalibrierMittelwert+0x26e> |
3a24: 2f 5f subi r18, 0xFF ; 255 |
3a26: 3f 4f sbci r19, 0xFF ; 255 |
3a28: 0c c0 rjmp .+24 ; 0x3a42 <CalibrierMittelwert+0x286> |
3a2a: 80 81 ld r24, Z |
3a2c: 91 81 ldd r25, Z+1 ; 0x01 |
3a2e: 82 59 subi r24, 0x92 ; 146 |
3a30: 9f 4f sbci r25, 0xFF ; 255 |
3a32: 82 17 cp r24, r18 |
3a34: 93 07 cpc r25, r19 |
3a36: 4c f4 brge .+18 ; 0x3a4a <CalibrierMittelwert+0x28e> |
3a38: 21 15 cp r18, r1 |
3a3a: 31 05 cpc r19, r1 |
3a3c: 31 f0 breq .+12 ; 0x3a4a <CalibrierMittelwert+0x28e> |
3a3e: 21 50 subi r18, 0x01 ; 1 |
3a40: 30 40 sbci r19, 0x00 ; 0 |
3a42: 30 93 17 02 sts 0x0217, r19 |
3a46: 20 93 16 02 sts 0x0216, r18 |
3a4a: 80 91 10 02 lds r24, 0x0210 |
3a4e: 90 91 11 02 lds r25, 0x0211 |
3a52: 97 ff sbrs r25, 7 |
3a54: 05 c0 rjmp .+10 ; 0x3a60 <CalibrierMittelwert+0x2a4> |
3a56: 10 92 11 02 sts 0x0211, r1 |
3a5a: 10 92 10 02 sts 0x0210, r1 |
3a5e: 0a c0 rjmp .+20 ; 0x3a74 <CalibrierMittelwert+0x2b8> |
3a60: 8f 3f cpi r24, 0xFF ; 255 |
3a62: 91 05 cpc r25, r1 |
3a64: 39 f0 breq .+14 ; 0x3a74 <CalibrierMittelwert+0x2b8> |
3a66: 34 f0 brlt .+12 ; 0x3a74 <CalibrierMittelwert+0x2b8> |
3a68: 8f ef ldi r24, 0xFF ; 255 |
3a6a: 90 e0 ldi r25, 0x00 ; 0 |
3a6c: 90 93 11 02 sts 0x0211, r25 |
3a70: 80 93 10 02 sts 0x0210, r24 |
3a74: 80 91 12 02 lds r24, 0x0212 |
3a78: 90 91 13 02 lds r25, 0x0213 |
3a7c: 97 ff sbrs r25, 7 |
3a7e: 05 c0 rjmp .+10 ; 0x3a8a <CalibrierMittelwert+0x2ce> |
3a80: 10 92 13 02 sts 0x0213, r1 |
3a84: 10 92 12 02 sts 0x0212, r1 |
3a88: 0a c0 rjmp .+20 ; 0x3a9e <CalibrierMittelwert+0x2e2> |
3a8a: 8f 3f cpi r24, 0xFF ; 255 |
3a8c: 91 05 cpc r25, r1 |
3a8e: 39 f0 breq .+14 ; 0x3a9e <CalibrierMittelwert+0x2e2> |
3a90: 34 f0 brlt .+12 ; 0x3a9e <CalibrierMittelwert+0x2e2> |
3a92: 8f ef ldi r24, 0xFF ; 255 |
3a94: 90 e0 ldi r25, 0x00 ; 0 |
3a96: 90 93 13 02 sts 0x0213, r25 |
3a9a: 80 93 12 02 sts 0x0212, r24 |
3a9e: 80 91 14 02 lds r24, 0x0214 |
3aa2: 90 91 15 02 lds r25, 0x0215 |
3aa6: 97 ff sbrs r25, 7 |
3aa8: 05 c0 rjmp .+10 ; 0x3ab4 <CalibrierMittelwert+0x2f8> |
3aaa: 10 92 15 02 sts 0x0215, r1 |
3aae: 10 92 14 02 sts 0x0214, r1 |
3ab2: 0a c0 rjmp .+20 ; 0x3ac8 <CalibrierMittelwert+0x30c> |
3ab4: 8f 3f cpi r24, 0xFF ; 255 |
3ab6: 91 05 cpc r25, r1 |
3ab8: 39 f0 breq .+14 ; 0x3ac8 <CalibrierMittelwert+0x30c> |
3aba: 34 f0 brlt .+12 ; 0x3ac8 <CalibrierMittelwert+0x30c> |
3abc: 8f ef ldi r24, 0xFF ; 255 |
3abe: 90 e0 ldi r25, 0x00 ; 0 |
3ac0: 90 93 15 02 sts 0x0215, r25 |
3ac4: 80 93 14 02 sts 0x0214, r24 |
3ac8: 80 91 16 02 lds r24, 0x0216 |
3acc: 90 91 17 02 lds r25, 0x0217 |
3ad0: 97 ff sbrs r25, 7 |
3ad2: 05 c0 rjmp .+10 ; 0x3ade <CalibrierMittelwert+0x322> |
3ad4: 10 92 17 02 sts 0x0217, r1 |
3ad8: 10 92 16 02 sts 0x0216, r1 |
3adc: 08 95 ret |
3ade: 8f 3f cpi r24, 0xFF ; 255 |
3ae0: 91 05 cpc r25, r1 |
3ae2: 39 f0 breq .+14 ; 0x3af2 <CalibrierMittelwert+0x336> |
3ae4: 34 f0 brlt .+12 ; 0x3af2 <CalibrierMittelwert+0x336> |
3ae6: 8f ef ldi r24, 0xFF ; 255 |
3ae8: 90 e0 ldi r25, 0x00 ; 0 |
3aea: 90 93 17 02 sts 0x0217, r25 |
3aee: 80 93 16 02 sts 0x0216, r24 |
3af2: 08 95 ret |
00003af4 <ParameterZuordnung>: |
3af4: 1f 93 push r17 |
3af6: 80 91 df 04 lds r24, 0x04DF |
3afa: 8b 3f cpi r24, 0xFB ; 251 |
3afc: 98 f0 brcs .+38 ; 0x3b24 <ParameterZuordnung+0x30> |
3afe: 8b 3f cpi r24, 0xFB ; 251 |
3b00: 19 f4 brne .+6 ; 0x3b08 <ParameterZuordnung+0x14> |
3b02: 80 91 10 02 lds r24, 0x0210 |
3b06: 0e c0 rjmp .+28 ; 0x3b24 <ParameterZuordnung+0x30> |
3b08: 8c 3f cpi r24, 0xFC ; 252 |
3b0a: 19 f4 brne .+6 ; 0x3b12 <ParameterZuordnung+0x1e> |
3b0c: 80 91 12 02 lds r24, 0x0212 |
3b10: 09 c0 rjmp .+18 ; 0x3b24 <ParameterZuordnung+0x30> |
3b12: 8d 3f cpi r24, 0xFD ; 253 |
3b14: 19 f4 brne .+6 ; 0x3b1c <ParameterZuordnung+0x28> |
3b16: 80 91 14 02 lds r24, 0x0214 |
3b1a: 04 c0 rjmp .+8 ; 0x3b24 <ParameterZuordnung+0x30> |
3b1c: 8e 3f cpi r24, 0xFE ; 254 |
3b1e: 21 f4 brne .+8 ; 0x3b28 <ParameterZuordnung+0x34> |
3b20: 80 91 16 02 lds r24, 0x0216 |
3b24: 80 93 81 01 sts 0x0181, r24 |
3b28: 80 91 81 01 lds r24, 0x0181 |
3b2c: 88 23 and r24, r24 |
3b2e: 19 f4 brne .+6 ; 0x3b36 <ParameterZuordnung+0x42> |
3b30: 10 92 81 01 sts 0x0181, r1 |
3b34: 04 c0 rjmp .+8 ; 0x3b3e <ParameterZuordnung+0x4a> |
3b36: 8f 3f cpi r24, 0xFF ; 255 |
3b38: 11 f4 brne .+4 ; 0x3b3e <ParameterZuordnung+0x4a> |
3b3a: 80 93 81 01 sts 0x0181, r24 |
3b3e: 80 91 de 04 lds r24, 0x04DE |
3b42: 8b 3f cpi r24, 0xFB ; 251 |
3b44: 98 f0 brcs .+38 ; 0x3b6c <ParameterZuordnung+0x78> |
3b46: 8b 3f cpi r24, 0xFB ; 251 |
3b48: 19 f4 brne .+6 ; 0x3b50 <ParameterZuordnung+0x5c> |
3b4a: 80 91 10 02 lds r24, 0x0210 |
3b4e: 0e c0 rjmp .+28 ; 0x3b6c <ParameterZuordnung+0x78> |
3b50: 8c 3f cpi r24, 0xFC ; 252 |
3b52: 19 f4 brne .+6 ; 0x3b5a <ParameterZuordnung+0x66> |
3b54: 80 91 12 02 lds r24, 0x0212 |
3b58: 09 c0 rjmp .+18 ; 0x3b6c <ParameterZuordnung+0x78> |
3b5a: 8d 3f cpi r24, 0xFD ; 253 |
3b5c: 19 f4 brne .+6 ; 0x3b64 <ParameterZuordnung+0x70> |
3b5e: 80 91 14 02 lds r24, 0x0214 |
3b62: 04 c0 rjmp .+8 ; 0x3b6c <ParameterZuordnung+0x78> |
3b64: 8e 3f cpi r24, 0xFE ; 254 |
3b66: 21 f4 brne .+8 ; 0x3b70 <ParameterZuordnung+0x7c> |
3b68: 80 91 16 02 lds r24, 0x0216 |
3b6c: 80 93 80 01 sts 0x0180, r24 |
3b70: 80 91 80 01 lds r24, 0x0180 |
3b74: 88 23 and r24, r24 |
3b76: 19 f4 brne .+6 ; 0x3b7e <ParameterZuordnung+0x8a> |
3b78: 10 92 80 01 sts 0x0180, r1 |
3b7c: 05 c0 rjmp .+10 ; 0x3b88 <ParameterZuordnung+0x94> |
3b7e: 84 36 cpi r24, 0x64 ; 100 |
3b80: 18 f0 brcs .+6 ; 0x3b88 <ParameterZuordnung+0x94> |
3b82: 84 e6 ldi r24, 0x64 ; 100 |
3b84: 80 93 80 01 sts 0x0180, r24 |
3b88: 80 91 e0 04 lds r24, 0x04E0 |
3b8c: 8b 3f cpi r24, 0xFB ; 251 |
3b8e: 98 f0 brcs .+38 ; 0x3bb6 <ParameterZuordnung+0xc2> |
3b90: 8b 3f cpi r24, 0xFB ; 251 |
3b92: 19 f4 brne .+6 ; 0x3b9a <ParameterZuordnung+0xa6> |
3b94: 80 91 10 02 lds r24, 0x0210 |
3b98: 0e c0 rjmp .+28 ; 0x3bb6 <ParameterZuordnung+0xc2> |
3b9a: 8c 3f cpi r24, 0xFC ; 252 |
3b9c: 19 f4 brne .+6 ; 0x3ba4 <ParameterZuordnung+0xb0> |
3b9e: 80 91 12 02 lds r24, 0x0212 |
3ba2: 09 c0 rjmp .+18 ; 0x3bb6 <ParameterZuordnung+0xc2> |
3ba4: 8d 3f cpi r24, 0xFD ; 253 |
3ba6: 19 f4 brne .+6 ; 0x3bae <ParameterZuordnung+0xba> |
3ba8: 80 91 14 02 lds r24, 0x0214 |
3bac: 04 c0 rjmp .+8 ; 0x3bb6 <ParameterZuordnung+0xc2> |
3bae: 8e 3f cpi r24, 0xFE ; 254 |
3bb0: 21 f4 brne .+8 ; 0x3bba <ParameterZuordnung+0xc6> |
3bb2: 80 91 16 02 lds r24, 0x0216 |
3bb6: 80 93 82 01 sts 0x0182, r24 |
3bba: 80 91 82 01 lds r24, 0x0182 |
3bbe: 88 23 and r24, r24 |
3bc0: 19 f4 brne .+6 ; 0x3bc8 <ParameterZuordnung+0xd4> |
3bc2: 10 92 82 01 sts 0x0182, r1 |
3bc6: 05 c0 rjmp .+10 ; 0x3bd2 <ParameterZuordnung+0xde> |
3bc8: 84 36 cpi r24, 0x64 ; 100 |
3bca: 18 f0 brcs .+6 ; 0x3bd2 <ParameterZuordnung+0xde> |
3bcc: 84 e6 ldi r24, 0x64 ; 100 |
3bce: 80 93 82 01 sts 0x0182, r24 |
3bd2: 80 91 e2 04 lds r24, 0x04E2 |
3bd6: 8b 3f cpi r24, 0xFB ; 251 |
3bd8: 98 f0 brcs .+38 ; 0x3c00 <ParameterZuordnung+0x10c> |
3bda: 8b 3f cpi r24, 0xFB ; 251 |
3bdc: 19 f4 brne .+6 ; 0x3be4 <ParameterZuordnung+0xf0> |
3bde: 80 91 10 02 lds r24, 0x0210 |
3be2: 0e c0 rjmp .+28 ; 0x3c00 <ParameterZuordnung+0x10c> |
3be4: 8c 3f cpi r24, 0xFC ; 252 |
3be6: 19 f4 brne .+6 ; 0x3bee <ParameterZuordnung+0xfa> |
3be8: 80 91 12 02 lds r24, 0x0212 |
3bec: 09 c0 rjmp .+18 ; 0x3c00 <ParameterZuordnung+0x10c> |
3bee: 8d 3f cpi r24, 0xFD ; 253 |
3bf0: 19 f4 brne .+6 ; 0x3bf8 <ParameterZuordnung+0x104> |
3bf2: 80 91 14 02 lds r24, 0x0214 |
3bf6: 04 c0 rjmp .+8 ; 0x3c00 <ParameterZuordnung+0x10c> |
3bf8: 8e 3f cpi r24, 0xFE ; 254 |
3bfa: 21 f4 brne .+8 ; 0x3c04 <ParameterZuordnung+0x110> |
3bfc: 80 91 16 02 lds r24, 0x0216 |
3c00: 80 93 83 01 sts 0x0183, r24 |
3c04: 80 91 83 01 lds r24, 0x0183 |
3c08: 88 23 and r24, r24 |
3c0a: 19 f4 brne .+6 ; 0x3c12 <ParameterZuordnung+0x11e> |
3c0c: 10 92 83 01 sts 0x0183, r1 |
3c10: 04 c0 rjmp .+8 ; 0x3c1a <ParameterZuordnung+0x126> |
3c12: 8f 3f cpi r24, 0xFF ; 255 |
3c14: 11 f4 brne .+4 ; 0x3c1a <ParameterZuordnung+0x126> |
3c16: 80 93 83 01 sts 0x0183, r24 |
3c1a: 80 91 e9 04 lds r24, 0x04E9 |
3c1e: 8b 3f cpi r24, 0xFB ; 251 |
3c20: 98 f0 brcs .+38 ; 0x3c48 <ParameterZuordnung+0x154> |
3c22: 8b 3f cpi r24, 0xFB ; 251 |
3c24: 19 f4 brne .+6 ; 0x3c2c <ParameterZuordnung+0x138> |
3c26: 80 91 10 02 lds r24, 0x0210 |
3c2a: 0e c0 rjmp .+28 ; 0x3c48 <ParameterZuordnung+0x154> |
3c2c: 8c 3f cpi r24, 0xFC ; 252 |
3c2e: 19 f4 brne .+6 ; 0x3c36 <ParameterZuordnung+0x142> |
3c30: 80 91 12 02 lds r24, 0x0212 |
3c34: 09 c0 rjmp .+18 ; 0x3c48 <ParameterZuordnung+0x154> |
3c36: 8d 3f cpi r24, 0xFD ; 253 |
3c38: 19 f4 brne .+6 ; 0x3c40 <ParameterZuordnung+0x14c> |
3c3a: 80 91 14 02 lds r24, 0x0214 |
3c3e: 04 c0 rjmp .+8 ; 0x3c48 <ParameterZuordnung+0x154> |
3c40: 8e 3f cpi r24, 0xFE ; 254 |
3c42: 21 f4 brne .+8 ; 0x3c4c <ParameterZuordnung+0x158> |
3c44: 80 91 16 02 lds r24, 0x0216 |
3c48: 80 93 84 01 sts 0x0184, r24 |
3c4c: 80 91 84 01 lds r24, 0x0184 |
3c50: 88 23 and r24, r24 |
3c52: 19 f4 brne .+6 ; 0x3c5a <ParameterZuordnung+0x166> |
3c54: 10 92 84 01 sts 0x0184, r1 |
3c58: 04 c0 rjmp .+8 ; 0x3c62 <ParameterZuordnung+0x16e> |
3c5a: 8f 3f cpi r24, 0xFF ; 255 |
3c5c: 11 f4 brne .+4 ; 0x3c62 <ParameterZuordnung+0x16e> |
3c5e: 80 93 84 01 sts 0x0184, r24 |
3c62: 80 91 ea 04 lds r24, 0x04EA |
3c66: 8b 3f cpi r24, 0xFB ; 251 |
3c68: 98 f0 brcs .+38 ; 0x3c90 <ParameterZuordnung+0x19c> |
3c6a: 8b 3f cpi r24, 0xFB ; 251 |
3c6c: 19 f4 brne .+6 ; 0x3c74 <ParameterZuordnung+0x180> |
3c6e: 80 91 10 02 lds r24, 0x0210 |
3c72: 0e c0 rjmp .+28 ; 0x3c90 <ParameterZuordnung+0x19c> |
3c74: 8c 3f cpi r24, 0xFC ; 252 |
3c76: 19 f4 brne .+6 ; 0x3c7e <ParameterZuordnung+0x18a> |
3c78: 80 91 12 02 lds r24, 0x0212 |
3c7c: 09 c0 rjmp .+18 ; 0x3c90 <ParameterZuordnung+0x19c> |
3c7e: 8d 3f cpi r24, 0xFD ; 253 |
3c80: 19 f4 brne .+6 ; 0x3c88 <ParameterZuordnung+0x194> |
3c82: 80 91 14 02 lds r24, 0x0214 |
3c86: 04 c0 rjmp .+8 ; 0x3c90 <ParameterZuordnung+0x19c> |
3c88: 8e 3f cpi r24, 0xFE ; 254 |
3c8a: 21 f4 brne .+8 ; 0x3c94 <ParameterZuordnung+0x1a0> |
3c8c: 80 91 16 02 lds r24, 0x0216 |
3c90: 80 93 85 01 sts 0x0185, r24 |
3c94: 80 91 85 01 lds r24, 0x0185 |
3c98: 8b 30 cpi r24, 0x0B ; 11 |
3c9a: 10 f4 brcc .+4 ; 0x3ca0 <ParameterZuordnung+0x1ac> |
3c9c: 8a e0 ldi r24, 0x0A ; 10 |
3c9e: 02 c0 rjmp .+4 ; 0x3ca4 <ParameterZuordnung+0x1b0> |
3ca0: 8f 3f cpi r24, 0xFF ; 255 |
3ca2: 11 f4 brne .+4 ; 0x3ca8 <ParameterZuordnung+0x1b4> |
3ca4: 80 93 85 01 sts 0x0185, r24 |
3ca8: 80 91 eb 04 lds r24, 0x04EB |
3cac: 8b 3f cpi r24, 0xFB ; 251 |
3cae: 98 f0 brcs .+38 ; 0x3cd6 <ParameterZuordnung+0x1e2> |
3cb0: 8b 3f cpi r24, 0xFB ; 251 |
3cb2: 19 f4 brne .+6 ; 0x3cba <ParameterZuordnung+0x1c6> |
3cb4: 80 91 10 02 lds r24, 0x0210 |
3cb8: 0e c0 rjmp .+28 ; 0x3cd6 <ParameterZuordnung+0x1e2> |
3cba: 8c 3f cpi r24, 0xFC ; 252 |
3cbc: 19 f4 brne .+6 ; 0x3cc4 <ParameterZuordnung+0x1d0> |
3cbe: 80 91 12 02 lds r24, 0x0212 |
3cc2: 09 c0 rjmp .+18 ; 0x3cd6 <ParameterZuordnung+0x1e2> |
3cc4: 8d 3f cpi r24, 0xFD ; 253 |
3cc6: 19 f4 brne .+6 ; 0x3cce <ParameterZuordnung+0x1da> |
3cc8: 80 91 14 02 lds r24, 0x0214 |
3ccc: 04 c0 rjmp .+8 ; 0x3cd6 <ParameterZuordnung+0x1e2> |
3cce: 8e 3f cpi r24, 0xFE ; 254 |
3cd0: 21 f4 brne .+8 ; 0x3cda <ParameterZuordnung+0x1e6> |
3cd2: 80 91 16 02 lds r24, 0x0216 |
3cd6: 80 93 86 01 sts 0x0186, r24 |
3cda: 80 91 86 01 lds r24, 0x0186 |
3cde: 88 23 and r24, r24 |
3ce0: 19 f4 brne .+6 ; 0x3ce8 <ParameterZuordnung+0x1f4> |
3ce2: 10 92 86 01 sts 0x0186, r1 |
3ce6: 04 c0 rjmp .+8 ; 0x3cf0 <ParameterZuordnung+0x1fc> |
3ce8: 8f 3f cpi r24, 0xFF ; 255 |
3cea: 11 f4 brne .+4 ; 0x3cf0 <ParameterZuordnung+0x1fc> |
3cec: 80 93 86 01 sts 0x0186, r24 |
3cf0: 80 91 f0 04 lds r24, 0x04F0 |
3cf4: 8b 3f cpi r24, 0xFB ; 251 |
3cf6: 98 f0 brcs .+38 ; 0x3d1e <ParameterZuordnung+0x22a> |
3cf8: 8b 3f cpi r24, 0xFB ; 251 |
3cfa: 19 f4 brne .+6 ; 0x3d02 <ParameterZuordnung+0x20e> |
3cfc: 80 91 10 02 lds r24, 0x0210 |
3d00: 0e c0 rjmp .+28 ; 0x3d1e <ParameterZuordnung+0x22a> |
3d02: 8c 3f cpi r24, 0xFC ; 252 |
3d04: 19 f4 brne .+6 ; 0x3d0c <ParameterZuordnung+0x218> |
3d06: 80 91 12 02 lds r24, 0x0212 |
3d0a: 09 c0 rjmp .+18 ; 0x3d1e <ParameterZuordnung+0x22a> |
3d0c: 8d 3f cpi r24, 0xFD ; 253 |
3d0e: 19 f4 brne .+6 ; 0x3d16 <ParameterZuordnung+0x222> |
3d10: 80 91 14 02 lds r24, 0x0214 |
3d14: 04 c0 rjmp .+8 ; 0x3d1e <ParameterZuordnung+0x22a> |
3d16: 8e 3f cpi r24, 0xFE ; 254 |
3d18: 21 f4 brne .+8 ; 0x3d22 <ParameterZuordnung+0x22e> |
3d1a: 80 91 16 02 lds r24, 0x0216 |
3d1e: 80 93 88 01 sts 0x0188, r24 |
3d22: 80 91 88 01 lds r24, 0x0188 |
3d26: 88 23 and r24, r24 |
3d28: 19 f4 brne .+6 ; 0x3d30 <ParameterZuordnung+0x23c> |
3d2a: 10 92 88 01 sts 0x0188, r1 |
3d2e: 04 c0 rjmp .+8 ; 0x3d38 <ParameterZuordnung+0x244> |
3d30: 8f 3f cpi r24, 0xFF ; 255 |
3d32: 11 f4 brne .+4 ; 0x3d38 <ParameterZuordnung+0x244> |
3d34: 80 93 88 01 sts 0x0188, r24 |
3d38: 80 91 f1 04 lds r24, 0x04F1 |
3d3c: 8b 3f cpi r24, 0xFB ; 251 |
3d3e: 98 f0 brcs .+38 ; 0x3d66 <ParameterZuordnung+0x272> |
3d40: 8b 3f cpi r24, 0xFB ; 251 |
3d42: 19 f4 brne .+6 ; 0x3d4a <ParameterZuordnung+0x256> |
3d44: 80 91 10 02 lds r24, 0x0210 |
3d48: 0e c0 rjmp .+28 ; 0x3d66 <ParameterZuordnung+0x272> |
3d4a: 8c 3f cpi r24, 0xFC ; 252 |
3d4c: 19 f4 brne .+6 ; 0x3d54 <ParameterZuordnung+0x260> |
3d4e: 80 91 12 02 lds r24, 0x0212 |
3d52: 09 c0 rjmp .+18 ; 0x3d66 <ParameterZuordnung+0x272> |
3d54: 8d 3f cpi r24, 0xFD ; 253 |
3d56: 19 f4 brne .+6 ; 0x3d5e <ParameterZuordnung+0x26a> |
3d58: 80 91 14 02 lds r24, 0x0214 |
3d5c: 04 c0 rjmp .+8 ; 0x3d66 <ParameterZuordnung+0x272> |
3d5e: 8e 3f cpi r24, 0xFE ; 254 |
3d60: 21 f4 brne .+8 ; 0x3d6a <ParameterZuordnung+0x276> |
3d62: 80 91 16 02 lds r24, 0x0216 |
3d66: 80 93 24 02 sts 0x0224, r24 |
3d6a: 80 91 24 02 lds r24, 0x0224 |
3d6e: 88 23 and r24, r24 |
3d70: 19 f4 brne .+6 ; 0x3d78 <ParameterZuordnung+0x284> |
3d72: 10 92 24 02 sts 0x0224, r1 |
3d76: 04 c0 rjmp .+8 ; 0x3d80 <ParameterZuordnung+0x28c> |
3d78: 8f 3f cpi r24, 0xFF ; 255 |
3d7a: 11 f4 brne .+4 ; 0x3d80 <ParameterZuordnung+0x28c> |
3d7c: 80 93 24 02 sts 0x0224, r24 |
3d80: 80 91 f2 04 lds r24, 0x04F2 |
3d84: 8b 3f cpi r24, 0xFB ; 251 |
3d86: 98 f0 brcs .+38 ; 0x3dae <ParameterZuordnung+0x2ba> |
3d88: 8b 3f cpi r24, 0xFB ; 251 |
3d8a: 19 f4 brne .+6 ; 0x3d92 <ParameterZuordnung+0x29e> |
3d8c: 80 91 10 02 lds r24, 0x0210 |
3d90: 0e c0 rjmp .+28 ; 0x3dae <ParameterZuordnung+0x2ba> |
3d92: 8c 3f cpi r24, 0xFC ; 252 |
3d94: 19 f4 brne .+6 ; 0x3d9c <ParameterZuordnung+0x2a8> |
3d96: 80 91 12 02 lds r24, 0x0212 |
3d9a: 09 c0 rjmp .+18 ; 0x3dae <ParameterZuordnung+0x2ba> |
3d9c: 8d 3f cpi r24, 0xFD ; 253 |
3d9e: 19 f4 brne .+6 ; 0x3da6 <ParameterZuordnung+0x2b2> |
3da0: 80 91 14 02 lds r24, 0x0214 |
3da4: 04 c0 rjmp .+8 ; 0x3dae <ParameterZuordnung+0x2ba> |
3da6: 8e 3f cpi r24, 0xFE ; 254 |
3da8: 21 f4 brne .+8 ; 0x3db2 <ParameterZuordnung+0x2be> |
3daa: 80 91 16 02 lds r24, 0x0216 |
3dae: 80 93 25 02 sts 0x0225, r24 |
3db2: 80 91 25 02 lds r24, 0x0225 |
3db6: 88 23 and r24, r24 |
3db8: 19 f4 brne .+6 ; 0x3dc0 <ParameterZuordnung+0x2cc> |
3dba: 10 92 25 02 sts 0x0225, r1 |
3dbe: 04 c0 rjmp .+8 ; 0x3dc8 <ParameterZuordnung+0x2d4> |
3dc0: 8f 3f cpi r24, 0xFF ; 255 |
3dc2: 11 f4 brne .+4 ; 0x3dc8 <ParameterZuordnung+0x2d4> |
3dc4: 80 93 25 02 sts 0x0225, r24 |
3dc8: 80 91 f3 04 lds r24, 0x04F3 |
3dcc: 8b 3f cpi r24, 0xFB ; 251 |
3dce: 98 f0 brcs .+38 ; 0x3df6 <ParameterZuordnung+0x302> |
3dd0: 8b 3f cpi r24, 0xFB ; 251 |
3dd2: 19 f4 brne .+6 ; 0x3dda <ParameterZuordnung+0x2e6> |
3dd4: 80 91 10 02 lds r24, 0x0210 |
3dd8: 0e c0 rjmp .+28 ; 0x3df6 <ParameterZuordnung+0x302> |
3dda: 8c 3f cpi r24, 0xFC ; 252 |
3ddc: 19 f4 brne .+6 ; 0x3de4 <ParameterZuordnung+0x2f0> |
3dde: 80 91 12 02 lds r24, 0x0212 |
3de2: 09 c0 rjmp .+18 ; 0x3df6 <ParameterZuordnung+0x302> |
3de4: 8d 3f cpi r24, 0xFD ; 253 |
3de6: 19 f4 brne .+6 ; 0x3dee <ParameterZuordnung+0x2fa> |
3de8: 80 91 14 02 lds r24, 0x0214 |
3dec: 04 c0 rjmp .+8 ; 0x3df6 <ParameterZuordnung+0x302> |
3dee: 8e 3f cpi r24, 0xFE ; 254 |
3df0: 21 f4 brne .+8 ; 0x3dfa <ParameterZuordnung+0x306> |
3df2: 80 91 16 02 lds r24, 0x0216 |
3df6: 80 93 26 02 sts 0x0226, r24 |
3dfa: 80 91 26 02 lds r24, 0x0226 |
3dfe: 88 23 and r24, r24 |
3e00: 19 f4 brne .+6 ; 0x3e08 <ParameterZuordnung+0x314> |
3e02: 10 92 26 02 sts 0x0226, r1 |
3e06: 04 c0 rjmp .+8 ; 0x3e10 <ParameterZuordnung+0x31c> |
3e08: 8f 3f cpi r24, 0xFF ; 255 |
3e0a: 11 f4 brne .+4 ; 0x3e10 <ParameterZuordnung+0x31c> |
3e0c: 80 93 26 02 sts 0x0226, r24 |
3e10: 80 91 f4 04 lds r24, 0x04F4 |
3e14: 8b 3f cpi r24, 0xFB ; 251 |
3e16: 98 f0 brcs .+38 ; 0x3e3e <ParameterZuordnung+0x34a> |
3e18: 8b 3f cpi r24, 0xFB ; 251 |
3e1a: 19 f4 brne .+6 ; 0x3e22 <ParameterZuordnung+0x32e> |
3e1c: 80 91 10 02 lds r24, 0x0210 |
3e20: 0e c0 rjmp .+28 ; 0x3e3e <ParameterZuordnung+0x34a> |
3e22: 8c 3f cpi r24, 0xFC ; 252 |
3e24: 19 f4 brne .+6 ; 0x3e2c <ParameterZuordnung+0x338> |
3e26: 80 91 12 02 lds r24, 0x0212 |
3e2a: 09 c0 rjmp .+18 ; 0x3e3e <ParameterZuordnung+0x34a> |
3e2c: 8d 3f cpi r24, 0xFD ; 253 |
3e2e: 19 f4 brne .+6 ; 0x3e36 <ParameterZuordnung+0x342> |
3e30: 80 91 14 02 lds r24, 0x0214 |
3e34: 04 c0 rjmp .+8 ; 0x3e3e <ParameterZuordnung+0x34a> |
3e36: 8e 3f cpi r24, 0xFE ; 254 |
3e38: 21 f4 brne .+8 ; 0x3e42 <ParameterZuordnung+0x34e> |
3e3a: 80 91 16 02 lds r24, 0x0216 |
3e3e: 80 93 27 02 sts 0x0227, r24 |
3e42: 80 91 27 02 lds r24, 0x0227 |
3e46: 88 23 and r24, r24 |
3e48: 19 f4 brne .+6 ; 0x3e50 <ParameterZuordnung+0x35c> |
3e4a: 10 92 27 02 sts 0x0227, r1 |
3e4e: 04 c0 rjmp .+8 ; 0x3e58 <ParameterZuordnung+0x364> |
3e50: 8f 3f cpi r24, 0xFF ; 255 |
3e52: 11 f4 brne .+4 ; 0x3e58 <ParameterZuordnung+0x364> |
3e54: 80 93 27 02 sts 0x0227, r24 |
3e58: 90 91 f5 04 lds r25, 0x04F5 |
3e5c: 9b 3f cpi r25, 0xFB ; 251 |
3e5e: b0 f0 brcs .+44 ; 0x3e8c <ParameterZuordnung+0x398> |
3e60: 9b 3f cpi r25, 0xFB ; 251 |
3e62: 19 f4 brne .+6 ; 0x3e6a <ParameterZuordnung+0x376> |
3e64: 80 91 10 02 lds r24, 0x0210 |
3e68: 04 c0 rjmp .+8 ; 0x3e72 <ParameterZuordnung+0x37e> |
3e6a: 9c 3f cpi r25, 0xFC ; 252 |
3e6c: 29 f4 brne .+10 ; 0x3e78 <ParameterZuordnung+0x384> |
3e6e: 80 91 12 02 lds r24, 0x0212 |
3e72: 80 93 89 01 sts 0x0189, r24 |
3e76: 0c c0 rjmp .+24 ; 0x3e90 <ParameterZuordnung+0x39c> |
3e78: 9d 3f cpi r25, 0xFD ; 253 |
3e7a: 19 f4 brne .+6 ; 0x3e82 <ParameterZuordnung+0x38e> |
3e7c: 80 91 14 02 lds r24, 0x0214 |
3e80: f8 cf rjmp .-16 ; 0x3e72 <ParameterZuordnung+0x37e> |
3e82: 9e 3f cpi r25, 0xFE ; 254 |
3e84: 29 f4 brne .+10 ; 0x3e90 <ParameterZuordnung+0x39c> |
3e86: 80 91 16 02 lds r24, 0x0216 |
3e8a: f3 cf rjmp .-26 ; 0x3e72 <ParameterZuordnung+0x37e> |
3e8c: 90 93 89 01 sts 0x0189, r25 |
3e90: 80 91 89 01 lds r24, 0x0189 |
3e94: 88 23 and r24, r24 |
3e96: 19 f4 brne .+6 ; 0x3e9e <ParameterZuordnung+0x3aa> |
3e98: 10 92 89 01 sts 0x0189, r1 |
3e9c: 04 c0 rjmp .+8 ; 0x3ea6 <ParameterZuordnung+0x3b2> |
3e9e: 8f 3f cpi r24, 0xFF ; 255 |
3ea0: 11 f4 brne .+4 ; 0x3ea6 <ParameterZuordnung+0x3b2> |
3ea2: 80 93 89 01 sts 0x0189, r24 |
3ea6: 9b 3f cpi r25, 0xFB ; 251 |
3ea8: b0 f0 brcs .+44 ; 0x3ed6 <ParameterZuordnung+0x3e2> |
3eaa: 9b 3f cpi r25, 0xFB ; 251 |
3eac: 19 f4 brne .+6 ; 0x3eb4 <ParameterZuordnung+0x3c0> |
3eae: 80 91 10 02 lds r24, 0x0210 |
3eb2: 04 c0 rjmp .+8 ; 0x3ebc <ParameterZuordnung+0x3c8> |
3eb4: 9c 3f cpi r25, 0xFC ; 252 |
3eb6: 29 f4 brne .+10 ; 0x3ec2 <ParameterZuordnung+0x3ce> |
3eb8: 80 91 12 02 lds r24, 0x0212 |
3ebc: 80 93 89 01 sts 0x0189, r24 |
3ec0: 0c c0 rjmp .+24 ; 0x3eda <ParameterZuordnung+0x3e6> |
3ec2: 9d 3f cpi r25, 0xFD ; 253 |
3ec4: 19 f4 brne .+6 ; 0x3ecc <ParameterZuordnung+0x3d8> |
3ec6: 80 91 14 02 lds r24, 0x0214 |
3eca: f8 cf rjmp .-16 ; 0x3ebc <ParameterZuordnung+0x3c8> |
3ecc: 9e 3f cpi r25, 0xFE ; 254 |
3ece: 29 f4 brne .+10 ; 0x3eda <ParameterZuordnung+0x3e6> |
3ed0: 80 91 16 02 lds r24, 0x0216 |
3ed4: f3 cf rjmp .-26 ; 0x3ebc <ParameterZuordnung+0x3c8> |
3ed6: 90 93 89 01 sts 0x0189, r25 |
3eda: 80 91 89 01 lds r24, 0x0189 |
3ede: 88 23 and r24, r24 |
3ee0: 19 f4 brne .+6 ; 0x3ee8 <ParameterZuordnung+0x3f4> |
3ee2: 10 92 89 01 sts 0x0189, r1 |
3ee6: 04 c0 rjmp .+8 ; 0x3ef0 <ParameterZuordnung+0x3fc> |
3ee8: 8f 3f cpi r24, 0xFF ; 255 |
3eea: 11 f4 brne .+4 ; 0x3ef0 <ParameterZuordnung+0x3fc> |
3eec: 80 93 89 01 sts 0x0189, r24 |
3ef0: 9b 3f cpi r25, 0xFB ; 251 |
3ef2: b0 f0 brcs .+44 ; 0x3f20 <ParameterZuordnung+0x42c> |
3ef4: 9b 3f cpi r25, 0xFB ; 251 |
3ef6: 19 f4 brne .+6 ; 0x3efe <ParameterZuordnung+0x40a> |
3ef8: 80 91 10 02 lds r24, 0x0210 |
3efc: 04 c0 rjmp .+8 ; 0x3f06 <ParameterZuordnung+0x412> |
3efe: 9c 3f cpi r25, 0xFC ; 252 |
3f00: 29 f4 brne .+10 ; 0x3f0c <ParameterZuordnung+0x418> |
3f02: 80 91 12 02 lds r24, 0x0212 |
3f06: 80 93 89 01 sts 0x0189, r24 |
3f0a: 0c c0 rjmp .+24 ; 0x3f24 <ParameterZuordnung+0x430> |
3f0c: 9d 3f cpi r25, 0xFD ; 253 |
3f0e: 19 f4 brne .+6 ; 0x3f16 <ParameterZuordnung+0x422> |
3f10: 80 91 14 02 lds r24, 0x0214 |
3f14: f8 cf rjmp .-16 ; 0x3f06 <ParameterZuordnung+0x412> |
3f16: 9e 3f cpi r25, 0xFE ; 254 |
3f18: 29 f4 brne .+10 ; 0x3f24 <ParameterZuordnung+0x430> |
3f1a: 80 91 16 02 lds r24, 0x0216 |
3f1e: f3 cf rjmp .-26 ; 0x3f06 <ParameterZuordnung+0x412> |
3f20: 90 93 89 01 sts 0x0189, r25 |
3f24: 80 91 89 01 lds r24, 0x0189 |
3f28: 88 23 and r24, r24 |
3f2a: 19 f4 brne .+6 ; 0x3f32 <ParameterZuordnung+0x43e> |
3f2c: 10 92 89 01 sts 0x0189, r1 |
3f30: 04 c0 rjmp .+8 ; 0x3f3a <ParameterZuordnung+0x446> |
3f32: 8f 3f cpi r24, 0xFF ; 255 |
3f34: 11 f4 brne .+4 ; 0x3f3a <ParameterZuordnung+0x446> |
3f36: 80 93 89 01 sts 0x0189, r24 |
3f3a: 10 91 88 01 lds r17, 0x0188 |
3f3e: 61 2f mov r22, r17 |
3f40: 77 27 eor r23, r23 |
3f42: 67 fd sbrc r22, 7 |
3f44: 70 95 com r23 |
3f46: 87 2f mov r24, r23 |
3f48: 97 2f mov r25, r23 |
3f4a: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
3f4e: 17 ff sbrs r17, 7 |
3f50: 06 c0 rjmp .+12 ; 0x3f5e <ParameterZuordnung+0x46a> |
3f52: 20 e0 ldi r18, 0x00 ; 0 |
3f54: 30 e0 ldi r19, 0x00 ; 0 |
3f56: 40 e8 ldi r20, 0x80 ; 128 |
3f58: 53 e4 ldi r21, 0x43 ; 67 |
3f5a: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
3f5e: 27 e1 ldi r18, 0x17 ; 23 |
3f60: 37 eb ldi r19, 0xB7 ; 183 |
3f62: 41 ed ldi r20, 0xD1 ; 209 |
3f64: 58 e3 ldi r21, 0x38 ; 56 |
3f66: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
3f6a: 60 93 7c 01 sts 0x017C, r22 |
3f6e: 70 93 7d 01 sts 0x017D, r23 |
3f72: 80 93 7e 01 sts 0x017E, r24 |
3f76: 90 93 7f 01 sts 0x017F, r25 |
3f7a: 80 91 e7 04 lds r24, 0x04E7 |
3f7e: 80 93 23 05 sts 0x0523, r24 |
3f82: 80 91 e6 04 lds r24, 0x04E6 |
3f86: 80 93 12 05 sts 0x0512, r24 |
3f8a: 1f 91 pop r17 |
3f8c: 08 95 ret |
00003f8e <DefaultKonstanten2>: |
3f8e: 81 e0 ldi r24, 0x01 ; 1 |
3f90: 80 93 d4 04 sts 0x04D4, r24 |
3f94: 42 e0 ldi r20, 0x02 ; 2 |
3f96: 40 93 d5 04 sts 0x04D5, r20 |
3f9a: 83 e0 ldi r24, 0x03 ; 3 |
3f9c: 80 93 d6 04 sts 0x04D6, r24 |
3fa0: 94 e0 ldi r25, 0x04 ; 4 |
3fa2: 90 93 d7 04 sts 0x04D7, r25 |
3fa6: 35 e0 ldi r19, 0x05 ; 5 |
3fa8: 30 93 d8 04 sts 0x04D8, r19 |
3fac: 86 e0 ldi r24, 0x06 ; 6 |
3fae: 80 93 d9 04 sts 0x04D9, r24 |
3fb2: 87 e0 ldi r24, 0x07 ; 7 |
3fb4: 80 93 da 04 sts 0x04DA, r24 |
3fb8: 10 92 dc 04 sts 0x04DC, r1 |
3fbc: 8e e1 ldi r24, 0x1E ; 30 |
3fbe: 80 93 dd 04 sts 0x04DD, r24 |
3fc2: 8b ef ldi r24, 0xFB ; 251 |
3fc4: 80 93 df 04 sts 0x04DF, r24 |
3fc8: 8a e0 ldi r24, 0x0A ; 10 |
3fca: 80 93 e0 04 sts 0x04E0, r24 |
3fce: 22 e3 ldi r18, 0x32 ; 50 |
3fd0: 20 93 de 04 sts 0x04DE, r18 |
3fd4: 20 93 e2 04 sts 0x04E2, r18 |
3fd8: 40 93 e1 04 sts 0x04E1, r20 |
3fdc: 90 93 e3 04 sts 0x04E3, r25 |
3fe0: 10 92 e4 04 sts 0x04E4, r1 |
3fe4: 90 e1 ldi r25, 0x10 ; 16 |
3fe6: 90 93 e5 04 sts 0x04E5, r25 |
3fea: 8f e0 ldi r24, 0x0F ; 15 |
3fec: 80 93 e6 04 sts 0x04E6, r24 |
3ff0: 8a ef ldi r24, 0xFA ; 250 |
3ff2: 80 93 e7 04 sts 0x04E7, r24 |
3ff6: 8a e1 ldi r24, 0x1A ; 26 |
3ff8: 80 93 e8 04 sts 0x04E8, r24 |
3ffc: 90 93 e9 04 sts 0x04E9, r25 |
4000: 8f ea ldi r24, 0xAF ; 175 |
4002: 80 93 ea 04 sts 0x04EA, r24 |
4006: 80 93 eb 04 sts 0x04EB, r24 |
400a: 8a e5 ldi r24, 0x5A ; 90 |
400c: 80 93 ec 04 sts 0x04EC, r24 |
4010: 83 e2 ldi r24, 0x23 ; 35 |
4012: 80 93 ed 04 sts 0x04ED, r24 |
4016: 84 e1 ldi r24, 0x14 ; 20 |
4018: 80 93 ee 04 sts 0x04EE, r24 |
401c: 10 92 ef 04 sts 0x04EF, r1 |
4020: 30 93 f0 04 sts 0x04F0, r19 |
4024: 82 eb ldi r24, 0xB2 ; 178 |
4026: 80 93 f1 04 sts 0x04F1, r24 |
402a: 10 92 f2 04 sts 0x04F2, r1 |
402e: 10 92 f3 04 sts 0x04F3, r1 |
4032: 10 92 f4 04 sts 0x04F4, r1 |
4036: 84 e6 ldi r24, 0x64 ; 100 |
4038: 80 93 f5 04 sts 0x04F5, r24 |
403c: 88 e2 ldi r24, 0x28 ; 40 |
403e: 80 93 f6 04 sts 0x04F6, r24 |
4042: 10 92 fa 04 sts 0x04FA, r1 |
4046: 20 93 f7 04 sts 0x04F7, r18 |
404a: 86 e9 ldi r24, 0x96 ; 150 |
404c: 80 93 f8 04 sts 0x04F8, r24 |
4050: 30 93 f9 04 sts 0x04F9, r19 |
4054: a2 e0 ldi r26, 0x02 ; 2 |
4056: b5 e0 ldi r27, 0x05 ; 5 |
4058: e8 e6 ldi r30, 0x68 ; 104 |
405a: f1 e0 ldi r31, 0x01 ; 1 |
405c: 8c e0 ldi r24, 0x0C ; 12 |
405e: 01 90 ld r0, Z+ |
4060: 0d 92 st X+, r0 |
4062: 81 50 subi r24, 0x01 ; 1 |
4064: e1 f7 brne .-8 ; 0x405e <DefaultKonstanten2+0xd0> |
4066: 08 95 ret |
00004068 <DefaultKonstanten1>: |
4068: 81 e0 ldi r24, 0x01 ; 1 |
406a: 80 93 d4 04 sts 0x04D4, r24 |
406e: 52 e0 ldi r21, 0x02 ; 2 |
4070: 50 93 d5 04 sts 0x04D5, r21 |
4074: 83 e0 ldi r24, 0x03 ; 3 |
4076: 80 93 d6 04 sts 0x04D6, r24 |
407a: 44 e0 ldi r20, 0x04 ; 4 |
407c: 40 93 d7 04 sts 0x04D7, r20 |
4080: 35 e0 ldi r19, 0x05 ; 5 |
4082: 30 93 d8 04 sts 0x04D8, r19 |
4086: 86 e0 ldi r24, 0x06 ; 6 |
4088: 80 93 d9 04 sts 0x04D9, r24 |
408c: 87 e0 ldi r24, 0x07 ; 7 |
408e: 80 93 da 04 sts 0x04DA, r24 |
4092: 28 e0 ldi r18, 0x08 ; 8 |
4094: 20 93 db 04 sts 0x04DB, r18 |
4098: 10 92 dc 04 sts 0x04DC, r1 |
409c: 9e e1 ldi r25, 0x1E ; 30 |
409e: 90 93 dd 04 sts 0x04DD, r25 |
40a2: 8b ef ldi r24, 0xFB ; 251 |
40a4: 80 93 df 04 sts 0x04DF, r24 |
40a8: 8a e0 ldi r24, 0x0A ; 10 |
40aa: 80 93 e0 04 sts 0x04E0, r24 |
40ae: 86 e4 ldi r24, 0x46 ; 70 |
40b0: 80 93 de 04 sts 0x04DE, r24 |
40b4: 90 93 e2 04 sts 0x04E2, r25 |
40b8: 50 93 e1 04 sts 0x04E1, r21 |
40bc: 40 93 e3 04 sts 0x04E3, r20 |
40c0: 20 93 e4 04 sts 0x04E4, r18 |
40c4: 90 e1 ldi r25, 0x10 ; 16 |
40c6: 90 93 e5 04 sts 0x04E5, r25 |
40ca: 8f e0 ldi r24, 0x0F ; 15 |
40cc: 80 93 e6 04 sts 0x04E6, r24 |
40d0: 8a ef ldi r24, 0xFA ; 250 |
40d2: 80 93 e7 04 sts 0x04E7, r24 |
40d6: 8a e1 ldi r24, 0x1A ; 26 |
40d8: 80 93 e8 04 sts 0x04E8, r24 |
40dc: 90 93 e9 04 sts 0x04E9, r25 |
40e0: 88 e7 ldi r24, 0x78 ; 120 |
40e2: 80 93 ea 04 sts 0x04EA, r24 |
40e6: 96 e9 ldi r25, 0x96 ; 150 |
40e8: 90 93 eb 04 sts 0x04EB, r25 |
40ec: 8a e5 ldi r24, 0x5A ; 90 |
40ee: 80 93 ec 04 sts 0x04EC, r24 |
40f2: 83 e2 ldi r24, 0x23 ; 35 |
40f4: 80 93 ed 04 sts 0x04ED, r24 |
40f8: 84 e1 ldi r24, 0x14 ; 20 |
40fa: 80 93 ee 04 sts 0x04EE, r24 |
40fe: 10 92 ef 04 sts 0x04EF, r1 |
4102: 30 93 f0 04 sts 0x04F0, r19 |
4106: 82 eb ldi r24, 0xB2 ; 178 |
4108: 80 93 f1 04 sts 0x04F1, r24 |
410c: 10 92 f2 04 sts 0x04F2, r1 |
4110: 10 92 f3 04 sts 0x04F3, r1 |
4114: 10 92 f4 04 sts 0x04F4, r1 |
4118: 84 e6 ldi r24, 0x64 ; 100 |
411a: 80 93 f5 04 sts 0x04F5, r24 |
411e: 88 e2 ldi r24, 0x28 ; 40 |
4120: 80 93 f6 04 sts 0x04F6, r24 |
4124: 10 92 fa 04 sts 0x04FA, r1 |
4128: 82 e3 ldi r24, 0x32 ; 50 |
412a: 80 93 f7 04 sts 0x04F7, r24 |
412e: 90 93 f8 04 sts 0x04F8, r25 |
4132: 30 93 f9 04 sts 0x04F9, r19 |
4136: a2 e0 ldi r26, 0x02 ; 2 |
4138: b5 e0 ldi r27, 0x05 ; 5 |
413a: e0 e7 ldi r30, 0x70 ; 112 |
413c: f1 e0 ldi r31, 0x01 ; 1 |
413e: 8c e0 ldi r24, 0x0C ; 12 |
4140: 01 90 ld r0, Z+ |
4142: 0d 92 st X+, r0 |
4144: 81 50 subi r24, 0x01 ; 1 |
4146: e1 f7 brne .-8 ; 0x4140 <DefaultKonstanten1+0xd8> |
4148: 08 95 ret |
0000414a <SendMotorData>: |
414a: 80 91 1f 02 lds r24, 0x021F |
414e: 88 23 and r24, r24 |
4150: 01 f5 brne .+64 ; 0x4192 <SendMotorData+0x48> |
4152: 10 92 61 02 sts 0x0261, r1 |
4156: 10 92 60 02 sts 0x0260, r1 |
415a: 10 92 64 02 sts 0x0264, r1 |
415e: 10 92 65 02 sts 0x0265, r1 |
4162: 80 91 96 01 lds r24, 0x0196 |
4166: 88 23 and r24, r24 |
4168: 11 f0 breq .+4 ; 0x416e <SendMotorData+0x24> |
416a: 80 93 60 02 sts 0x0260, r24 |
416e: 80 91 97 01 lds r24, 0x0197 |
4172: 88 23 and r24, r24 |
4174: 11 f0 breq .+4 ; 0x417a <SendMotorData+0x30> |
4176: 80 93 61 02 sts 0x0261, r24 |
417a: 80 91 98 01 lds r24, 0x0198 |
417e: 88 23 and r24, r24 |
4180: 11 f0 breq .+4 ; 0x4186 <SendMotorData+0x3c> |
4182: 80 93 65 02 sts 0x0265, r24 |
4186: 80 91 99 01 lds r24, 0x0199 |
418a: 88 23 and r24, r24 |
418c: 11 f0 breq .+4 ; 0x4192 <SendMotorData+0x48> |
418e: 80 93 64 02 sts 0x0264, r24 |
4192: 80 91 60 02 lds r24, 0x0260 |
4196: 99 27 eor r25, r25 |
4198: 90 93 73 04 sts 0x0473, r25 |
419c: 80 93 72 04 sts 0x0472, r24 |
41a0: 80 91 61 02 lds r24, 0x0261 |
41a4: 99 27 eor r25, r25 |
41a6: 90 93 75 04 sts 0x0475, r25 |
41aa: 80 93 74 04 sts 0x0474, r24 |
41ae: 80 91 65 02 lds r24, 0x0265 |
41b2: 99 27 eor r25, r25 |
41b4: 90 93 77 04 sts 0x0477, r25 |
41b8: 80 93 76 04 sts 0x0476, r24 |
41bc: 80 91 64 02 lds r24, 0x0264 |
41c0: 99 27 eor r25, r25 |
41c2: 90 93 79 04 sts 0x0479, r25 |
41c6: 80 93 78 04 sts 0x0478, r24 |
41ca: 10 92 c9 01 sts 0x01C9, r1 |
41ce: 10 92 ca 01 sts 0x01CA, r1 |
41d2: 0e 94 37 18 call 0x306e ; 0x306e <i2c_start> |
41d6: 08 95 ret |
000041d8 <SetNeutral>: |
41d8: cf 93 push r28 |
41da: df 93 push r29 |
41dc: 10 92 1a 05 sts 0x051A, r1 |
41e0: 10 92 19 05 sts 0x0519, r1 |
41e4: 10 92 1c 05 sts 0x051C, r1 |
41e8: 10 92 1b 05 sts 0x051B, r1 |
41ec: 80 e0 ldi r24, 0x00 ; 0 |
41ee: 90 e0 ldi r25, 0x00 ; 0 |
41f0: a0 e0 ldi r26, 0x00 ; 0 |
41f2: b0 e0 ldi r27, 0x00 ; 0 |
41f4: 80 93 1d 05 sts 0x051D, r24 |
41f8: 90 93 1e 05 sts 0x051E, r25 |
41fc: a0 93 1f 05 sts 0x051F, r26 |
4200: b0 93 20 05 sts 0x0520, r27 |
4204: 10 92 d2 01 sts 0x01D2, r1 |
4208: 10 92 d1 01 sts 0x01D1, r1 |
420c: 10 92 d4 01 sts 0x01D4, r1 |
4210: 10 92 d3 01 sts 0x01D3, r1 |
4214: 10 92 d6 01 sts 0x01D6, r1 |
4218: 10 92 d5 01 sts 0x01D5, r1 |
421c: 0e 94 de 1b call 0x37bc ; 0x37bc <CalibrierMittelwert> |
4220: 85 e0 ldi r24, 0x05 ; 5 |
4222: 90 e0 ldi r25, 0x00 ; 0 |
4224: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
4228: ec 01 movw r28, r24 |
422a: ce 01 movw r24, r28 |
422c: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
4230: 88 23 and r24, r24 |
4232: d9 f3 breq .-10 ; 0x422a <SetNeutral+0x52> |
4234: 0e 94 de 1b call 0x37bc ; 0x37bc <CalibrierMittelwert> |
4238: 80 91 dc 04 lds r24, 0x04DC |
423c: 80 ff sbrs r24, 0 |
423e: 10 c0 rjmp .+32 ; 0x4260 <SetNeutral+0x88> |
4240: 80 91 0a 01 lds r24, 0x010A |
4244: 90 91 0b 01 lds r25, 0x010B |
4248: 87 5b subi r24, 0xB7 ; 183 |
424a: 93 40 sbci r25, 0x03 ; 3 |
424c: 38 f4 brcc .+14 ; 0x425c <SetNeutral+0x84> |
424e: 80 91 0a 01 lds r24, 0x010A |
4252: 90 91 0b 01 lds r25, 0x010B |
4256: 8e 5e subi r24, 0xEE ; 238 |
4258: 92 40 sbci r25, 0x02 ; 2 |
425a: 10 f4 brcc .+4 ; 0x4260 <SetNeutral+0x88> |
425c: 0e 94 f9 0f call 0x1ff2 ; 0x1ff2 <SucheLuftruckOffset> |
4260: 80 91 10 05 lds r24, 0x0510 |
4264: 90 91 11 05 lds r25, 0x0511 |
4268: 97 ff sbrs r25, 7 |
426a: 03 c0 rjmp .+6 ; 0x4272 <SetNeutral+0x9a> |
426c: 90 95 com r25 |
426e: 81 95 neg r24 |
4270: 9f 4f sbci r25, 0xFF ; 255 |
4272: 90 93 d2 01 sts 0x01D2, r25 |
4276: 80 93 d1 01 sts 0x01D1, r24 |
427a: 80 91 0e 05 lds r24, 0x050E |
427e: 90 91 0f 05 lds r25, 0x050F |
4282: 97 ff sbrs r25, 7 |
4284: 03 c0 rjmp .+6 ; 0x428c <SetNeutral+0xb4> |
4286: 90 95 com r25 |
4288: 81 95 neg r24 |
428a: 9f 4f sbci r25, 0xFF ; 255 |
428c: 90 93 d4 01 sts 0x01D4, r25 |
4290: 80 93 d3 01 sts 0x01D3, r24 |
4294: 80 91 24 05 lds r24, 0x0524 |
4298: 90 91 25 05 lds r25, 0x0525 |
429c: 97 ff sbrs r25, 7 |
429e: 03 c0 rjmp .+6 ; 0x42a6 <SetNeutral+0xce> |
42a0: 90 95 com r25 |
42a2: 81 95 neg r24 |
42a4: 9f 4f sbci r25, 0xFF ; 255 |
42a6: 90 93 d6 01 sts 0x01D6, r25 |
42aa: 80 93 d5 01 sts 0x01D5, r24 |
42ae: 88 e0 ldi r24, 0x08 ; 8 |
42b0: e9 e1 ldi r30, 0x19 ; 25 |
42b2: f5 e0 ldi r31, 0x05 ; 5 |
42b4: a5 e3 ldi r26, 0x35 ; 53 |
42b6: b1 e0 ldi r27, 0x01 ; 1 |
42b8: 18 2e mov r1, r24 |
42ba: 0e 94 ab 2e call 0x5d56 ; 0x5d56 <__eeprom_read_block_1F2021> |
42be: 10 92 eb 01 sts 0x01EB, r1 |
42c2: 10 92 ec 01 sts 0x01EC, r1 |
42c6: 10 92 ed 01 sts 0x01ED, r1 |
42ca: 10 92 ee 01 sts 0x01EE, r1 |
42ce: 10 92 ef 01 sts 0x01EF, r1 |
42d2: 10 92 f0 01 sts 0x01F0, r1 |
42d6: 10 92 f1 01 sts 0x01F1, r1 |
42da: 10 92 f2 01 sts 0x01F2, r1 |
42de: 10 92 f3 01 sts 0x01F3, r1 |
42e2: 10 92 f4 01 sts 0x01F4, r1 |
42e6: 10 92 f5 01 sts 0x01F5, r1 |
42ea: 10 92 f6 01 sts 0x01F6, r1 |
42ee: 10 92 f7 01 sts 0x01F7, r1 |
42f2: 10 92 f8 01 sts 0x01F8, r1 |
42f6: 10 92 f9 01 sts 0x01F9, r1 |
42fa: 10 92 fa 01 sts 0x01FA, r1 |
42fe: 10 92 fb 01 sts 0x01FB, r1 |
4302: 10 92 fc 01 sts 0x01FC, r1 |
4306: 10 92 fd 01 sts 0x01FD, r1 |
430a: 10 92 fe 01 sts 0x01FE, r1 |
430e: 10 92 11 05 sts 0x0511, r1 |
4312: 10 92 10 05 sts 0x0510, r1 |
4316: 10 92 0f 05 sts 0x050F, r1 |
431a: 10 92 0e 05 sts 0x050E, r1 |
431e: 10 92 25 05 sts 0x0525, r1 |
4322: 10 92 24 05 sts 0x0524, r1 |
4326: 80 91 06 01 lds r24, 0x0106 |
432a: 90 91 07 01 lds r25, 0x0107 |
432e: a0 91 08 01 lds r26, 0x0108 |
4332: b0 91 09 01 lds r27, 0x0109 |
4336: 90 93 80 04 sts 0x0480, r25 |
433a: 80 93 7f 04 sts 0x047F, r24 |
433e: 10 92 be 01 sts 0x01BE, r1 |
4342: 10 92 bd 01 sts 0x01BD, r1 |
4346: 10 92 03 02 sts 0x0203, r1 |
434a: 10 92 04 02 sts 0x0204, r1 |
434e: 10 92 05 02 sts 0x0205, r1 |
4352: 10 92 06 02 sts 0x0206, r1 |
4356: 80 91 07 02 lds r24, 0x0207 |
435a: 90 91 08 02 lds r25, 0x0208 |
435e: 90 93 0a 02 sts 0x020A, r25 |
4362: 80 93 09 02 sts 0x0209, r24 |
4366: 0e 94 44 2c call 0x5888 ; 0x5888 <GPS_Neutral> |
436a: 82 e3 ldi r24, 0x32 ; 50 |
436c: 90 e0 ldi r25, 0x00 ; 0 |
436e: 90 93 a7 01 sts 0x01A7, r25 |
4372: 80 93 a6 01 sts 0x01A6, r24 |
4376: df 91 pop r29 |
4378: cf 91 pop r28 |
437a: 08 95 ret |
0000437c <calib_acc>: |
437c: cf 93 push r28 |
437e: df 93 push r29 |
4380: 10 92 1a 05 sts 0x051A, r1 |
4384: 10 92 19 05 sts 0x0519, r1 |
4388: 10 92 1c 05 sts 0x051C, r1 |
438c: 10 92 1b 05 sts 0x051B, r1 |
4390: 80 e0 ldi r24, 0x00 ; 0 |
4392: 90 e0 ldi r25, 0x00 ; 0 |
4394: a0 e0 ldi r26, 0x00 ; 0 |
4396: b0 e0 ldi r27, 0x00 ; 0 |
4398: 80 93 1d 05 sts 0x051D, r24 |
439c: 90 93 1e 05 sts 0x051E, r25 |
43a0: a0 93 1f 05 sts 0x051F, r26 |
43a4: b0 93 20 05 sts 0x0520, r27 |
43a8: 0e 94 de 1b call 0x37bc ; 0x37bc <CalibrierMittelwert> |
43ac: 85 e0 ldi r24, 0x05 ; 5 |
43ae: 90 e0 ldi r25, 0x00 ; 0 |
43b0: 0e 94 b2 0b call 0x1764 ; 0x1764 <SetDelay> |
43b4: ec 01 movw r28, r24 |
43b6: ce 01 movw r24, r28 |
43b8: 0e 94 bb 0b call 0x1776 ; 0x1776 <CheckDelay> |
43bc: 88 23 and r24, r24 |
43be: d9 f3 breq .-10 ; 0x43b6 <calib_acc+0x3a> |
43c0: 0e 94 de 1b call 0x37bc ; 0x37bc <CalibrierMittelwert> |
43c4: 80 91 21 05 lds r24, 0x0521 |
43c8: 90 91 22 05 lds r25, 0x0522 |
43cc: 97 ff sbrs r25, 7 |
43ce: 03 c0 rjmp .+6 ; 0x43d6 <calib_acc+0x5a> |
43d0: 90 95 com r25 |
43d2: 81 95 neg r24 |
43d4: 9f 4f sbci r25, 0xFF ; 255 |
43d6: 60 e1 ldi r22, 0x10 ; 16 |
43d8: 70 e0 ldi r23, 0x00 ; 0 |
43da: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
43de: c9 e1 ldi r28, 0x19 ; 25 |
43e0: d5 e0 ldi r29, 0x05 ; 5 |
43e2: 70 93 1a 05 sts 0x051A, r23 |
43e6: 60 93 19 05 sts 0x0519, r22 |
43ea: 80 91 2a 05 lds r24, 0x052A |
43ee: 90 91 2b 05 lds r25, 0x052B |
43f2: 97 ff sbrs r25, 7 |
43f4: 03 c0 rjmp .+6 ; 0x43fc <calib_acc+0x80> |
43f6: 90 95 com r25 |
43f8: 81 95 neg r24 |
43fa: 9f 4f sbci r25, 0xFF ; 255 |
43fc: 60 e1 ldi r22, 0x10 ; 16 |
43fe: 70 e0 ldi r23, 0x00 ; 0 |
4400: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
4404: 70 93 1c 05 sts 0x051C, r23 |
4408: 60 93 1b 05 sts 0x051B, r22 |
440c: 60 91 7d 04 lds r22, 0x047D |
4410: 70 91 7e 04 lds r23, 0x047E |
4414: 88 27 eor r24, r24 |
4416: 77 fd sbrc r23, 7 |
4418: 80 95 com r24 |
441a: 98 2f mov r25, r24 |
441c: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
4420: 60 93 1d 05 sts 0x051D, r22 |
4424: 70 93 1e 05 sts 0x051E, r23 |
4428: 80 93 1f 05 sts 0x051F, r24 |
442c: 90 93 20 05 sts 0x0520, r25 |
4430: 88 e0 ldi r24, 0x08 ; 8 |
4432: a5 e3 ldi r26, 0x35 ; 53 |
4434: b1 e0 ldi r27, 0x01 ; 1 |
4436: fe 01 movw r30, r28 |
4438: 18 2e mov r1, r24 |
443a: 0e 94 bc 2e call 0x5d78 ; 0x5d78 <__eeprom_write_block_1F2021> |
443e: df 91 pop r29 |
4440: cf 91 pop r28 |
4442: 08 95 ret |
00004444 <Piep>: |
4444: 1f 93 push r17 |
4446: 18 2f mov r17, r24 |
4448: 0e c0 rjmp .+28 ; 0x4466 <Piep+0x22> |
444a: 80 91 1f 02 lds r24, 0x021F |
444e: 88 23 and r24, r24 |
4450: 61 f4 brne .+24 ; 0x446a <Piep+0x26> |
4452: 84 e6 ldi r24, 0x64 ; 100 |
4454: 90 e0 ldi r25, 0x00 ; 0 |
4456: 90 93 a7 01 sts 0x01A7, r25 |
445a: 80 93 a6 01 sts 0x01A6, r24 |
445e: 8a ef ldi r24, 0xFA ; 250 |
4460: 90 e0 ldi r25, 0x00 ; 0 |
4462: 0e 94 cb 0c call 0x1996 ; 0x1996 <Delay_ms> |
4466: 11 50 subi r17, 0x01 ; 1 |
4468: 80 f7 brcc .-32 ; 0x444a <Piep+0x6> |
446a: 1f 91 pop r17 |
446c: 08 95 ret |
0000446e <MotorRegler>: |
446e: a6 e0 ldi r26, 0x06 ; 6 |
4470: b0 e0 ldi r27, 0x00 ; 0 |
4472: ed e3 ldi r30, 0x3D ; 61 |
4474: f2 e2 ldi r31, 0x22 ; 34 |
4476: 0c 94 66 2e jmp 0x5ccc ; 0x5ccc <__prologue_saves__> |
447a: 0e 94 7f 19 call 0x32fe ; 0x32fe <Mittelwert> |
447e: 29 9a sbi 0x05, 1 ; 5 |
4480: e0 91 d6 04 lds r30, 0x04D6 |
4484: ff 27 eor r31, r31 |
4486: ee 0f add r30, r30 |
4488: ff 1f adc r31, r31 |
448a: e8 55 subi r30, 0x58 ; 88 |
448c: fb 4f sbci r31, 0xFB ; 251 |
448e: 40 80 ld r4, Z |
4490: 51 80 ldd r5, Z+1 ; 0x01 |
4492: 48 e7 ldi r20, 0x78 ; 120 |
4494: 50 e0 ldi r21, 0x00 ; 0 |
4496: 44 0e add r4, r20 |
4498: 55 1e adc r5, r21 |
449a: 57 fe sbrs r5, 7 |
449c: 02 c0 rjmp .+4 ; 0x44a2 <MotorRegler+0x34> |
449e: 44 24 eor r4, r4 |
44a0: 55 24 eor r5, r5 |
44a2: 80 91 18 02 lds r24, 0x0218 |
44a6: 84 36 cpi r24, 0x64 ; 100 |
44a8: 08 f0 brcs .+2 ; 0x44ac <MotorRegler+0x3e> |
44aa: 48 c0 rjmp .+144 ; 0x453c <MotorRegler+0xce> |
44ac: 80 91 01 01 lds r24, 0x0101 |
44b0: 88 23 and r24, r24 |
44b2: 31 f4 brne .+12 ; 0x44c0 <MotorRegler+0x52> |
44b4: 84 ef ldi r24, 0xF4 ; 244 |
44b6: 91 e0 ldi r25, 0x01 ; 1 |
44b8: 90 93 a7 01 sts 0x01A7, r25 |
44bc: 80 93 a6 01 sts 0x01A6, r24 |
44c0: 80 91 30 02 lds r24, 0x0230 |
44c4: 90 91 31 02 lds r25, 0x0231 |
44c8: 00 97 sbiw r24, 0x00 ; 0 |
44ca: 31 f0 breq .+12 ; 0x44d8 <MotorRegler+0x6a> |
44cc: 01 97 sbiw r24, 0x01 ; 1 |
44ce: 90 93 31 02 sts 0x0231, r25 |
44d2: 80 93 30 02 sts 0x0230, r24 |
44d6: 04 c0 rjmp .+8 ; 0x44e0 <MotorRegler+0x72> |
44d8: 10 92 1f 02 sts 0x021F, r1 |
44dc: 10 92 0e 02 sts 0x020E, r1 |
44e0: 28 9a sbi 0x05, 0 ; 5 |
44e2: 80 91 2b 02 lds r24, 0x022B |
44e6: 90 91 2c 02 lds r25, 0x022C |
44ea: 81 5d subi r24, 0xD1 ; 209 |
44ec: 97 40 sbci r25, 0x07 ; 7 |
44ee: 18 f1 brcs .+70 ; 0x4536 <MotorRegler+0xc8> |
44f0: 80 91 ed 04 lds r24, 0x04ED |
44f4: 48 2e mov r4, r24 |
44f6: 55 24 eor r5, r5 |
44f8: 81 e0 ldi r24, 0x01 ; 1 |
44fa: 80 93 0e 02 sts 0x020E, r24 |
44fe: e0 91 d4 04 lds r30, 0x04D4 |
4502: ff 27 eor r31, r31 |
4504: ee 0f add r30, r30 |
4506: ff 1f adc r31, r31 |
4508: e8 55 subi r30, 0x58 ; 88 |
450a: fb 4f sbci r31, 0xFB ; 251 |
450c: 11 82 std Z+1, r1 ; 0x01 |
450e: 10 82 st Z, r1 |
4510: e0 91 d5 04 lds r30, 0x04D5 |
4514: ff 27 eor r31, r31 |
4516: ee 0f add r30, r30 |
4518: ff 1f adc r31, r31 |
451a: e8 55 subi r30, 0x58 ; 88 |
451c: fb 4f sbci r31, 0xFB ; 251 |
451e: 11 82 std Z+1, r1 ; 0x01 |
4520: 10 82 st Z, r1 |
4522: e0 91 d7 04 lds r30, 0x04D7 |
4526: ff 27 eor r31, r31 |
4528: ee 0f add r30, r30 |
452a: ff 1f adc r31, r31 |
452c: e8 55 subi r30, 0x58 ; 88 |
452e: fb 4f sbci r31, 0xFB ; 251 |
4530: 11 82 std Z+1, r1 ; 0x01 |
4532: 10 82 st Z, r1 |
4534: cb c1 rjmp .+918 ; 0x48cc <MotorRegler+0x45e> |
4536: 10 92 1f 02 sts 0x021F, r1 |
453a: c8 c1 rjmp .+912 ; 0x48cc <MotorRegler+0x45e> |
453c: 80 91 18 02 lds r24, 0x0218 |
4540: 8d 38 cpi r24, 0x8D ; 141 |
4542: 08 f4 brcc .+2 ; 0x4546 <MotorRegler+0xd8> |
4544: c3 c1 rjmp .+902 ; 0x48cc <MotorRegler+0x45e> |
4546: 10 92 0e 02 sts 0x020E, r1 |
454a: 80 91 ee 04 lds r24, 0x04EE |
454e: 22 e3 ldi r18, 0x32 ; 50 |
4550: 82 9f mul r24, r18 |
4552: c0 01 movw r24, r0 |
4554: 11 24 eor r1, r1 |
4556: 90 93 31 02 sts 0x0231, r25 |
455a: 80 93 30 02 sts 0x0230, r24 |
455e: 69 e2 ldi r22, 0x29 ; 41 |
4560: 46 16 cp r4, r22 |
4562: 51 04 cpc r5, r1 |
4564: 6c f0 brlt .+26 ; 0x4580 <MotorRegler+0x112> |
4566: 80 91 2b 02 lds r24, 0x022B |
456a: 90 91 2c 02 lds r25, 0x022C |
456e: 7f ef ldi r23, 0xFF ; 255 |
4570: 8f 3f cpi r24, 0xFF ; 255 |
4572: 97 07 cpc r25, r23 |
4574: 81 f1 breq .+96 ; 0x45d6 <MotorRegler+0x168> |
4576: 01 96 adiw r24, 0x01 ; 1 |
4578: 90 93 2c 02 sts 0x022C, r25 |
457c: 80 93 2b 02 sts 0x022B, r24 |
4580: 80 91 2b 02 lds r24, 0x022B |
4584: 90 91 2c 02 lds r25, 0x022C |
4588: 88 3c cpi r24, 0xC8 ; 200 |
458a: 91 05 cpc r25, r1 |
458c: 20 f0 brcs .+8 ; 0x4596 <MotorRegler+0x128> |
458e: 88 e2 ldi r24, 0x28 ; 40 |
4590: 48 16 cp r4, r24 |
4592: 51 04 cpc r5, r1 |
4594: 04 f5 brge .+64 ; 0x45d6 <MotorRegler+0x168> |
4596: 10 92 46 02 sts 0x0246, r1 |
459a: 10 92 47 02 sts 0x0247, r1 |
459e: 10 92 48 02 sts 0x0248, r1 |
45a2: 10 92 49 02 sts 0x0249, r1 |
45a6: 10 92 42 02 sts 0x0242, r1 |
45aa: 10 92 43 02 sts 0x0243, r1 |
45ae: 10 92 44 02 sts 0x0244, r1 |
45b2: 10 92 45 02 sts 0x0245, r1 |
45b6: 10 92 fb 01 sts 0x01FB, r1 |
45ba: 10 92 fc 01 sts 0x01FC, r1 |
45be: 10 92 fd 01 sts 0x01FD, r1 |
45c2: 10 92 fe 01 sts 0x01FE, r1 |
45c6: 10 92 ff 01 sts 0x01FF, r1 |
45ca: 10 92 00 02 sts 0x0200, r1 |
45ce: 10 92 01 02 sts 0x0201, r1 |
45d2: 10 92 02 02 sts 0x0202, r1 |
45d6: 99 ec ldi r25, 0xC9 ; 201 |
45d8: 49 16 cp r4, r25 |
45da: 51 04 cpc r5, r1 |
45dc: 0c f4 brge .+2 ; 0x45e0 <MotorRegler+0x172> |
45de: d6 c0 rjmp .+428 ; 0x478c <MotorRegler+0x31e> |
45e0: 80 91 1f 02 lds r24, 0x021F |
45e4: 88 23 and r24, r24 |
45e6: 09 f0 breq .+2 ; 0x45ea <MotorRegler+0x17c> |
45e8: 71 c1 rjmp .+738 ; 0x48cc <MotorRegler+0x45e> |
45ea: e0 91 d7 04 lds r30, 0x04D7 |
45ee: ff 27 eor r31, r31 |
45f0: ee 0f add r30, r30 |
45f2: ff 1f adc r31, r31 |
45f4: e8 55 subi r30, 0x58 ; 88 |
45f6: fb 4f sbci r31, 0xFB ; 251 |
45f8: 80 81 ld r24, Z |
45fa: 91 81 ldd r25, Z+1 ; 0x01 |
45fc: 8c 34 cpi r24, 0x4C ; 76 |
45fe: 91 05 cpc r25, r1 |
4600: 0c f4 brge .+2 ; 0x4604 <MotorRegler+0x196> |
4602: c1 c0 rjmp .+386 ; 0x4786 <MotorRegler+0x318> |
4604: 80 91 2f 02 lds r24, 0x022F |
4608: 8f 5f subi r24, 0xFF ; 255 |
460a: 80 93 2f 02 sts 0x022F, r24 |
460e: 89 3c cpi r24, 0xC9 ; 201 |
4610: 08 f4 brcc .+2 ; 0x4614 <MotorRegler+0x1a6> |
4612: 5c c1 rjmp .+696 ; 0x48cc <MotorRegler+0x45e> |
4614: 29 98 cbi 0x05, 1 ; 5 |
4616: 0e 94 ec 20 call 0x41d8 ; 0x41d8 <SetNeutral> |
461a: 10 92 1f 02 sts 0x021F, r1 |
461e: 10 92 2f 02 sts 0x022F, r1 |
4622: 10 92 2c 02 sts 0x022C, r1 |
4626: 10 92 2b 02 sts 0x022B, r1 |
462a: 80 91 d4 04 lds r24, 0x04D4 |
462e: 28 2f mov r18, r24 |
4630: 33 27 eor r19, r19 |
4632: f9 01 movw r30, r18 |
4634: ee 0f add r30, r30 |
4636: ff 1f adc r31, r31 |
4638: e8 55 subi r30, 0x58 ; 88 |
463a: fb 4f sbci r31, 0xFB ; 251 |
463c: 80 81 ld r24, Z |
463e: 91 81 ldd r25, Z+1 ; 0x01 |
4640: 87 34 cpi r24, 0x47 ; 71 |
4642: 91 05 cpc r25, r1 |
4644: 9c f4 brge .+38 ; 0x466c <MotorRegler+0x1fe> |
4646: e0 91 d5 04 lds r30, 0x04D5 |
464a: ff 27 eor r31, r31 |
464c: ee 0f add r30, r30 |
464e: ff 1f adc r31, r31 |
4650: e8 55 subi r30, 0x58 ; 88 |
4652: fb 4f sbci r31, 0xFB ; 251 |
4654: 01 90 ld r0, Z+ |
4656: f0 81 ld r31, Z |
4658: e0 2d mov r30, r0 |
465a: f7 ff sbrs r31, 7 |
465c: 03 c0 rjmp .+6 ; 0x4664 <MotorRegler+0x1f6> |
465e: f0 95 com r31 |
4660: e1 95 neg r30 |
4662: ff 4f sbci r31, 0xFF ; 255 |
4664: e7 34 cpi r30, 0x47 ; 71 |
4666: f1 05 cpc r31, r1 |
4668: 0c f4 brge .+2 ; 0x466c <MotorRegler+0x1fe> |
466a: 6c c0 rjmp .+216 ; 0x4744 <MotorRegler+0x2d6> |
466c: 80 91 d5 04 lds r24, 0x04D5 |
4670: 68 2f mov r22, r24 |
4672: 77 27 eor r23, r23 |
4674: db 01 movw r26, r22 |
4676: aa 0f add r26, r26 |
4678: bb 1f adc r27, r27 |
467a: a8 55 subi r26, 0x58 ; 88 |
467c: bb 4f sbci r27, 0xFB ; 251 |
467e: 8d 91 ld r24, X+ |
4680: 9c 91 ld r25, X |
4682: 11 97 sbiw r26, 0x01 ; 1 |
4684: 87 34 cpi r24, 0x47 ; 71 |
4686: 91 05 cpc r25, r1 |
4688: 3c f0 brlt .+14 ; 0x4698 <MotorRegler+0x22a> |
468a: f9 01 movw r30, r18 |
468c: ee 0f add r30, r30 |
468e: ff 1f adc r31, r31 |
4690: e8 55 subi r30, 0x58 ; 88 |
4692: fb 4f sbci r31, 0xFB ; 251 |
4694: 80 81 ld r24, Z |
4696: 91 81 ldd r25, Z+1 ; 0x01 |
4698: 8d 91 ld r24, X+ |
469a: 9c 91 ld r25, X |
469c: 87 34 cpi r24, 0x47 ; 71 |
469e: 91 05 cpc r25, r1 |
46a0: 64 f0 brlt .+24 ; 0x46ba <MotorRegler+0x24c> |
46a2: f9 01 movw r30, r18 |
46a4: ee 0f add r30, r30 |
46a6: ff 1f adc r31, r31 |
46a8: e8 55 subi r30, 0x58 ; 88 |
46aa: fb 4f sbci r31, 0xFB ; 251 |
46ac: 80 81 ld r24, Z |
46ae: 91 81 ldd r25, Z+1 ; 0x01 |
46b0: 87 34 cpi r24, 0x47 ; 71 |
46b2: 91 05 cpc r25, r1 |
46b4: 14 f0 brlt .+4 ; 0x46ba <MotorRegler+0x24c> |
46b6: 42 e0 ldi r20, 0x02 ; 2 |
46b8: 01 c0 rjmp .+2 ; 0x46bc <MotorRegler+0x24e> |
46ba: 41 e0 ldi r20, 0x01 ; 1 |
46bc: fb 01 movw r30, r22 |
46be: ee 0f add r30, r30 |
46c0: ff 1f adc r31, r31 |
46c2: e8 55 subi r30, 0x58 ; 88 |
46c4: fb 4f sbci r31, 0xFB ; 251 |
46c6: 80 81 ld r24, Z |
46c8: 91 81 ldd r25, Z+1 ; 0x01 |
46ca: 86 34 cpi r24, 0x46 ; 70 |
46cc: 91 05 cpc r25, r1 |
46ce: 5c f4 brge .+22 ; 0x46e6 <MotorRegler+0x278> |
46d0: f9 01 movw r30, r18 |
46d2: ee 0f add r30, r30 |
46d4: ff 1f adc r31, r31 |
46d6: e8 55 subi r30, 0x58 ; 88 |
46d8: fb 4f sbci r31, 0xFB ; 251 |
46da: 80 81 ld r24, Z |
46dc: 91 81 ldd r25, Z+1 ; 0x01 |
46de: 87 34 cpi r24, 0x47 ; 71 |
46e0: 91 05 cpc r25, r1 |
46e2: 0c f0 brlt .+2 ; 0x46e6 <MotorRegler+0x278> |
46e4: 43 e0 ldi r20, 0x03 ; 3 |
46e6: fb 01 movw r30, r22 |
46e8: ee 0f add r30, r30 |
46ea: ff 1f adc r31, r31 |
46ec: e8 55 subi r30, 0x58 ; 88 |
46ee: fb 4f sbci r31, 0xFB ; 251 |
46f0: 80 81 ld r24, Z |
46f2: 91 81 ldd r25, Z+1 ; 0x01 |
46f4: 8a 5b subi r24, 0xBA ; 186 |
46f6: 9f 4f sbci r25, 0xFF ; 255 |
46f8: 5c f4 brge .+22 ; 0x4710 <MotorRegler+0x2a2> |
46fa: f9 01 movw r30, r18 |
46fc: ee 0f add r30, r30 |
46fe: ff 1f adc r31, r31 |
4700: e8 55 subi r30, 0x58 ; 88 |
4702: fb 4f sbci r31, 0xFB ; 251 |
4704: 80 81 ld r24, Z |
4706: 91 81 ldd r25, Z+1 ; 0x01 |
4708: 87 34 cpi r24, 0x47 ; 71 |
470a: 91 05 cpc r25, r1 |
470c: 0c f0 brlt .+2 ; 0x4710 <MotorRegler+0x2a2> |
470e: 44 e0 ldi r20, 0x04 ; 4 |
4710: 66 0f add r22, r22 |
4712: 77 1f adc r23, r23 |
4714: 68 55 subi r22, 0x58 ; 88 |
4716: 7b 4f sbci r23, 0xFB ; 251 |
4718: fb 01 movw r30, r22 |
471a: 80 81 ld r24, Z |
471c: 91 81 ldd r25, Z+1 ; 0x01 |
471e: 8a 5b subi r24, 0xBA ; 186 |
4720: 9f 4f sbci r25, 0xFF ; 255 |
4722: 5c f4 brge .+22 ; 0x473a <MotorRegler+0x2cc> |
4724: 22 0f add r18, r18 |
4726: 33 1f adc r19, r19 |
4728: 28 55 subi r18, 0x58 ; 88 |
472a: 3b 4f sbci r19, 0xFB ; 251 |
472c: d9 01 movw r26, r18 |
472e: 8d 91 ld r24, X+ |
4730: 9c 91 ld r25, X |
4732: 86 34 cpi r24, 0x46 ; 70 |
4734: 91 05 cpc r25, r1 |
4736: 0c f4 brge .+2 ; 0x473a <MotorRegler+0x2cc> |
4738: 45 e0 ldi r20, 0x05 ; 5 |
473a: a2 e0 ldi r26, 0x02 ; 2 |
473c: b0 e0 ldi r27, 0x00 ; 0 |
473e: 04 2e mov r0, r20 |
4740: 0e 94 b0 2e call 0x5d60 ; 0x5d60 <__eeprom_write_byte_1F2021> |
4744: 0e 94 a9 03 call 0x752 ; 0x752 <GetActiveParamSetNumber> |
4748: 4a e3 ldi r20, 0x3A ; 58 |
474a: 64 ed ldi r22, 0xD4 ; 212 |
474c: 74 e0 ldi r23, 0x04 ; 4 |
474e: 0e 94 ca 03 call 0x794 ; 0x794 <ReadParameterSet> |
4752: 0e 94 a9 03 call 0x752 ; 0x752 <GetActiveParamSetNumber> |
4756: 0e 94 22 22 call 0x4444 ; 0x4444 <Piep> |
475a: 80 91 dc 04 lds r24, 0x04DC |
475e: 80 ff sbrs r24, 0 |
4760: b5 c0 rjmp .+362 ; 0x48cc <MotorRegler+0x45e> |
4762: 80 91 0a 01 lds r24, 0x010A |
4766: 90 91 0b 01 lds r25, 0x010B |
476a: 87 5b subi r24, 0xB7 ; 183 |
476c: 93 40 sbci r25, 0x03 ; 3 |
476e: 40 f4 brcc .+16 ; 0x4780 <MotorRegler+0x312> |
4770: 80 91 0a 01 lds r24, 0x010A |
4774: 90 91 0b 01 lds r25, 0x010B |
4778: 8e 5e subi r24, 0xEE ; 238 |
477a: 92 40 sbci r25, 0x02 ; 2 |
477c: 08 f0 brcs .+2 ; 0x4780 <MotorRegler+0x312> |
477e: a6 c0 rjmp .+332 ; 0x48cc <MotorRegler+0x45e> |
4780: 0e 94 f9 0f call 0x1ff2 ; 0x1ff2 <SucheLuftruckOffset> |
4784: a3 c0 rjmp .+326 ; 0x48cc <MotorRegler+0x45e> |
4786: 10 92 2f 02 sts 0x022F, r1 |
478a: a0 c0 rjmp .+320 ; 0x48cc <MotorRegler+0x45e> |
478c: f3 e2 ldi r31, 0x23 ; 35 |
478e: 4f 16 cp r4, r31 |
4790: 51 04 cpc r5, r1 |
4792: 0c f0 brlt .+2 ; 0x4796 <MotorRegler+0x328> |
4794: 9b c0 rjmp .+310 ; 0x48cc <MotorRegler+0x45e> |
4796: 80 91 d7 04 lds r24, 0x04D7 |
479a: 48 2f mov r20, r24 |
479c: 55 27 eor r21, r21 |
479e: fa 01 movw r30, r20 |
47a0: ee 0f add r30, r30 |
47a2: ff 1f adc r31, r31 |
47a4: e8 55 subi r30, 0x58 ; 88 |
47a6: fb 4f sbci r31, 0xFB ; 251 |
47a8: 80 81 ld r24, Z |
47aa: 91 81 ldd r25, Z+1 ; 0x01 |
47ac: 85 5b subi r24, 0xB5 ; 181 |
47ae: 9f 4f sbci r25, 0xFF ; 255 |
47b0: 0c f0 brlt .+2 ; 0x47b4 <MotorRegler+0x346> |
47b2: 6d c0 rjmp .+218 ; 0x488e <MotorRegler+0x420> |
47b4: 80 91 2e 02 lds r24, 0x022E |
47b8: 8f 5f subi r24, 0xFF ; 255 |
47ba: 80 93 2e 02 sts 0x022E, r24 |
47be: 89 3c cpi r24, 0xC9 ; 201 |
47c0: 08 f4 brcc .+2 ; 0x47c4 <MotorRegler+0x356> |
47c2: 67 c0 rjmp .+206 ; 0x4892 <MotorRegler+0x424> |
47c4: 88 ec ldi r24, 0xC8 ; 200 |
47c6: 80 93 2e 02 sts 0x022E, r24 |
47ca: 81 e0 ldi r24, 0x01 ; 1 |
47cc: 90 e0 ldi r25, 0x00 ; 0 |
47ce: 90 93 2c 02 sts 0x022C, r25 |
47d2: 80 93 2b 02 sts 0x022B, r24 |
47d6: 81 e0 ldi r24, 0x01 ; 1 |
47d8: 80 93 1f 02 sts 0x021F, r24 |
47dc: 10 92 3e 02 sts 0x023E, r1 |
47e0: 10 92 3f 02 sts 0x023F, r1 |
47e4: 10 92 40 02 sts 0x0240, r1 |
47e8: 10 92 41 02 sts 0x0241, r1 |
47ec: 10 92 fb 01 sts 0x01FB, r1 |
47f0: 10 92 fc 01 sts 0x01FC, r1 |
47f4: 10 92 fd 01 sts 0x01FD, r1 |
47f8: 10 92 fe 01 sts 0x01FE, r1 |
47fc: 10 92 ff 01 sts 0x01FF, r1 |
4800: 10 92 00 02 sts 0x0200, r1 |
4804: 10 92 01 02 sts 0x0201, r1 |
4808: 10 92 02 02 sts 0x0202, r1 |
480c: 10 92 eb 01 sts 0x01EB, r1 |
4810: 10 92 ec 01 sts 0x01EC, r1 |
4814: 10 92 ed 01 sts 0x01ED, r1 |
4818: 10 92 ee 01 sts 0x01EE, r1 |
481c: 10 92 f3 01 sts 0x01F3, r1 |
4820: 10 92 f4 01 sts 0x01F4, r1 |
4824: 10 92 f5 01 sts 0x01F5, r1 |
4828: 10 92 f6 01 sts 0x01F6, r1 |
482c: 80 91 d7 01 lds r24, 0x01D7 |
4830: 90 91 d8 01 lds r25, 0x01D8 |
4834: a0 91 d9 01 lds r26, 0x01D9 |
4838: b0 91 da 01 lds r27, 0x01DA |
483c: 80 93 ef 01 sts 0x01EF, r24 |
4840: 90 93 f0 01 sts 0x01F0, r25 |
4844: a0 93 f1 01 sts 0x01F1, r26 |
4848: b0 93 f2 01 sts 0x01F2, r27 |
484c: 80 91 df 01 lds r24, 0x01DF |
4850: 90 91 e0 01 lds r25, 0x01E0 |
4854: a0 91 e1 01 lds r26, 0x01E1 |
4858: b0 91 e2 01 lds r27, 0x01E2 |
485c: 80 93 f7 01 sts 0x01F7, r24 |
4860: 90 93 f8 01 sts 0x01F8, r25 |
4864: a0 93 f9 01 sts 0x01F9, r26 |
4868: b0 93 fa 01 sts 0x01FA, r27 |
486c: 10 92 46 02 sts 0x0246, r1 |
4870: 10 92 47 02 sts 0x0247, r1 |
4874: 10 92 48 02 sts 0x0248, r1 |
4878: 10 92 49 02 sts 0x0249, r1 |
487c: 10 92 42 02 sts 0x0242, r1 |
4880: 10 92 43 02 sts 0x0243, r1 |
4884: 10 92 44 02 sts 0x0244, r1 |
4888: 10 92 45 02 sts 0x0245, r1 |
488c: 02 c0 rjmp .+4 ; 0x4892 <MotorRegler+0x424> |
488e: 10 92 2e 02 sts 0x022E, r1 |
4892: 44 0f add r20, r20 |
4894: 55 1f adc r21, r21 |
4896: 48 55 subi r20, 0x58 ; 88 |
4898: 5b 4f sbci r21, 0xFB ; 251 |
489a: da 01 movw r26, r20 |
489c: 8d 91 ld r24, X+ |
489e: 9c 91 ld r25, X |
48a0: 8c 34 cpi r24, 0x4C ; 76 |
48a2: 91 05 cpc r25, r1 |
48a4: 8c f0 brlt .+34 ; 0x48c8 <MotorRegler+0x45a> |
48a6: 80 91 2d 02 lds r24, 0x022D |
48aa: 8f 5f subi r24, 0xFF ; 255 |
48ac: 80 93 2d 02 sts 0x022D, r24 |
48b0: 89 3c cpi r24, 0xC9 ; 201 |
48b2: 60 f0 brcs .+24 ; 0x48cc <MotorRegler+0x45e> |
48b4: 10 92 1f 02 sts 0x021F, r1 |
48b8: 88 ec ldi r24, 0xC8 ; 200 |
48ba: 80 93 2d 02 sts 0x022D, r24 |
48be: 10 92 2c 02 sts 0x022C, r1 |
48c2: 10 92 2b 02 sts 0x022B, r1 |
48c6: 02 c0 rjmp .+4 ; 0x48cc <MotorRegler+0x45e> |
48c8: 10 92 2d 02 sts 0x022D, r1 |
48cc: 80 91 67 01 lds r24, 0x0167 |
48d0: 81 50 subi r24, 0x01 ; 1 |
48d2: 80 93 67 01 sts 0x0167, r24 |
48d6: 80 91 67 01 lds r24, 0x0167 |
48da: 8f 3f cpi r24, 0xFF ; 255 |
48dc: 29 f0 breq .+10 ; 0x48e8 <MotorRegler+0x47a> |
48de: 80 91 0e 02 lds r24, 0x020E |
48e2: 88 23 and r24, r24 |
48e4: 09 f4 brne .+2 ; 0x48e8 <MotorRegler+0x47a> |
48e6: 12 c1 rjmp .+548 ; 0x4b0c <MotorRegler+0x69e> |
48e8: 0e 94 7a 1d call 0x3af4 ; 0x3af4 <ParameterZuordnung> |
48ec: e0 91 d4 04 lds r30, 0x04D4 |
48f0: ff 27 eor r31, r31 |
48f2: ee 0f add r30, r30 |
48f4: ff 1f adc r31, r31 |
48f6: df 01 movw r26, r30 |
48f8: a8 55 subi r26, 0x58 ; 88 |
48fa: bb 4f sbci r27, 0xFB ; 251 |
48fc: 8d 91 ld r24, X+ |
48fe: 9c 91 ld r25, X |
4900: 60 91 e3 04 lds r22, 0x04E3 |
4904: 77 27 eor r23, r23 |
4906: e2 54 subi r30, 0x42 ; 66 |
4908: fb 4f sbci r31, 0xFB ; 251 |
490a: 20 81 ld r18, Z |
490c: 31 81 ldd r19, Z+1 ; 0x01 |
490e: 40 91 e4 04 lds r20, 0x04E4 |
4912: 55 27 eor r21, r21 |
4914: fc 01 movw r30, r24 |
4916: e6 9f mul r30, r22 |
4918: c0 01 movw r24, r0 |
491a: e7 9f mul r30, r23 |
491c: 90 0d add r25, r0 |
491e: f6 9f mul r31, r22 |
4920: 90 0d add r25, r0 |
4922: 11 24 eor r1, r1 |
4924: d9 01 movw r26, r18 |
4926: a4 9f mul r26, r20 |
4928: 90 01 movw r18, r0 |
492a: a5 9f mul r26, r21 |
492c: 30 0d add r19, r0 |
492e: b4 9f mul r27, r20 |
4930: 30 0d add r19, r0 |
4932: 11 24 eor r1, r1 |
4934: 82 0f add r24, r18 |
4936: 93 1f adc r25, r19 |
4938: 90 93 1a 02 sts 0x021A, r25 |
493c: 80 93 19 02 sts 0x0219, r24 |
4940: e0 91 d5 04 lds r30, 0x04D5 |
4944: ff 27 eor r31, r31 |
4946: ee 0f add r30, r30 |
4948: ff 1f adc r31, r31 |
494a: df 01 movw r26, r30 |
494c: a8 55 subi r26, 0x58 ; 88 |
494e: bb 4f sbci r27, 0xFB ; 251 |
4950: 8d 91 ld r24, X+ |
4952: 9c 91 ld r25, X |
4954: e2 54 subi r30, 0x42 ; 66 |
4956: fb 4f sbci r31, 0xFB ; 251 |
4958: 20 81 ld r18, Z |
495a: 31 81 ldd r19, Z+1 ; 0x01 |
495c: fc 01 movw r30, r24 |
495e: e6 9f mul r30, r22 |
4960: c0 01 movw r24, r0 |
4962: e7 9f mul r30, r23 |
4964: 90 0d add r25, r0 |
4966: f6 9f mul r31, r22 |
4968: 90 0d add r25, r0 |
496a: 11 24 eor r1, r1 |
496c: b9 01 movw r22, r18 |
496e: 64 9f mul r22, r20 |
4970: 90 01 movw r18, r0 |
4972: 65 9f mul r22, r21 |
4974: 30 0d add r19, r0 |
4976: 74 9f mul r23, r20 |
4978: 30 0d add r19, r0 |
497a: 11 24 eor r1, r1 |
497c: 82 0f add r24, r18 |
497e: 93 1f adc r25, r19 |
4980: 90 93 1c 02 sts 0x021C, r25 |
4984: 80 93 1b 02 sts 0x021B, r24 |
4988: e0 91 d7 04 lds r30, 0x04D7 |
498c: ff 27 eor r31, r31 |
498e: ee 0f add r30, r30 |
4990: ff 1f adc r31, r31 |
4992: e8 55 subi r30, 0x58 ; 88 |
4994: fb 4f sbci r31, 0xFB ; 251 |
4996: 80 81 ld r24, Z |
4998: 91 81 ldd r25, Z+1 ; 0x01 |
499a: 90 95 com r25 |
499c: 81 95 neg r24 |
499e: 9f 4f sbci r25, 0xFF ; 255 |
49a0: 90 93 1e 02 sts 0x021E, r25 |
49a4: 80 93 1d 02 sts 0x021D, r24 |
49a8: 10 91 85 01 lds r17, 0x0185 |
49ac: 61 2f mov r22, r17 |
49ae: 77 27 eor r23, r23 |
49b0: 67 fd sbrc r22, 7 |
49b2: 70 95 com r23 |
49b4: 87 2f mov r24, r23 |
49b6: 97 2f mov r25, r23 |
49b8: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
49bc: 17 ff sbrs r17, 7 |
49be: 06 c0 rjmp .+12 ; 0x49cc <MotorRegler+0x55e> |
49c0: 20 e0 ldi r18, 0x00 ; 0 |
49c2: 30 e0 ldi r19, 0x00 ; 0 |
49c4: 40 e8 ldi r20, 0x80 ; 128 |
49c6: 53 e4 ldi r21, 0x43 ; 67 |
49c8: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
49cc: 20 e0 ldi r18, 0x00 ; 0 |
49ce: 30 e0 ldi r19, 0x00 ; 0 |
49d0: 40 e2 ldi r20, 0x20 ; 32 |
49d2: 51 e4 ldi r21, 0x41 ; 65 |
49d4: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
49d8: 20 e0 ldi r18, 0x00 ; 0 |
49da: 30 e0 ldi r19, 0x00 ; 0 |
49dc: 40 e8 ldi r20, 0x80 ; 128 |
49de: 5b e3 ldi r21, 0x3B ; 59 |
49e0: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
49e4: 5b 01 movw r10, r22 |
49e6: 6c 01 movw r12, r24 |
49e8: 60 93 26 05 sts 0x0526, r22 |
49ec: 70 93 27 05 sts 0x0527, r23 |
49f0: 80 93 28 05 sts 0x0528, r24 |
49f4: 90 93 29 05 sts 0x0529, r25 |
49f8: 10 91 86 01 lds r17, 0x0186 |
49fc: 61 2f mov r22, r17 |
49fe: 77 27 eor r23, r23 |
4a00: 67 fd sbrc r22, 7 |
4a02: 70 95 com r23 |
4a04: 87 2f mov r24, r23 |
4a06: 97 2f mov r25, r23 |
4a08: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
4a0c: 17 ff sbrs r17, 7 |
4a0e: 06 c0 rjmp .+12 ; 0x4a1c <MotorRegler+0x5ae> |
4a10: 20 e0 ldi r18, 0x00 ; 0 |
4a12: 30 e0 ldi r19, 0x00 ; 0 |
4a14: 40 e8 ldi r20, 0x80 ; 128 |
4a16: 53 e4 ldi r21, 0x43 ; 67 |
4a18: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
4a1c: 20 e0 ldi r18, 0x00 ; 0 |
4a1e: 30 ee ldi r19, 0xE0 ; 224 |
4a20: 4b e2 ldi r20, 0x2B ; 43 |
4a22: 57 e4 ldi r21, 0x47 ; 71 |
4a24: 0e 94 be 2c call 0x597c ; 0x597c <__divsf3> |
4a28: 60 93 15 05 sts 0x0515, r22 |
4a2c: 70 93 16 05 sts 0x0516, r23 |
4a30: 80 93 17 05 sts 0x0517, r24 |
4a34: 90 93 18 05 sts 0x0518, r25 |
4a38: 80 91 dc 04 lds r24, 0x04DC |
4a3c: 82 ff sbrs r24, 2 |
4a3e: 0c c0 rjmp .+24 ; 0x4a58 <MotorRegler+0x5ea> |
4a40: 80 e0 ldi r24, 0x00 ; 0 |
4a42: 90 e0 ldi r25, 0x00 ; 0 |
4a44: a0 e0 ldi r26, 0x00 ; 0 |
4a46: b0 e0 ldi r27, 0x00 ; 0 |
4a48: 80 93 15 05 sts 0x0515, r24 |
4a4c: 90 93 16 05 sts 0x0516, r25 |
4a50: a0 93 17 05 sts 0x0517, r26 |
4a54: b0 93 18 05 sts 0x0518, r27 |
4a58: 20 e0 ldi r18, 0x00 ; 0 |
4a5a: 30 e0 ldi r19, 0x00 ; 0 |
4a5c: 40 e0 ldi r20, 0x00 ; 0 |
4a5e: 50 e0 ldi r21, 0x00 ; 0 |
4a60: c6 01 movw r24, r12 |
4a62: b5 01 movw r22, r10 |
4a64: 0e 94 2b 2d call 0x5a56 ; 0x5a56 <__eqsf2> |
4a68: 88 23 and r24, r24 |
4a6a: 64 f4 brge .+24 ; 0x4a84 <MotorRegler+0x616> |
4a6c: 80 e0 ldi r24, 0x00 ; 0 |
4a6e: 90 e0 ldi r25, 0x00 ; 0 |
4a70: a0 e0 ldi r26, 0x00 ; 0 |
4a72: b0 e0 ldi r27, 0x00 ; 0 |
4a74: 80 93 26 05 sts 0x0526, r24 |
4a78: 90 93 27 05 sts 0x0527, r25 |
4a7c: a0 93 28 05 sts 0x0528, r26 |
4a80: b0 93 29 05 sts 0x0529, r27 |
4a84: 20 e0 ldi r18, 0x00 ; 0 |
4a86: 30 e0 ldi r19, 0x00 ; 0 |
4a88: 40 e0 ldi r20, 0x00 ; 0 |
4a8a: 50 e0 ldi r21, 0x00 ; 0 |
4a8c: 60 91 15 05 lds r22, 0x0515 |
4a90: 70 91 16 05 lds r23, 0x0516 |
4a94: 80 91 17 05 lds r24, 0x0517 |
4a98: 90 91 18 05 lds r25, 0x0518 |
4a9c: 0e 94 2b 2d call 0x5a56 ; 0x5a56 <__eqsf2> |
4aa0: 88 23 and r24, r24 |
4aa2: 64 f4 brge .+24 ; 0x4abc <MotorRegler+0x64e> |
4aa4: 80 e0 ldi r24, 0x00 ; 0 |
4aa6: 90 e0 ldi r25, 0x00 ; 0 |
4aa8: a0 e0 ldi r26, 0x00 ; 0 |
4aaa: b0 e0 ldi r27, 0x00 ; 0 |
4aac: 80 93 15 05 sts 0x0515, r24 |
4ab0: 90 93 16 05 sts 0x0516, r25 |
4ab4: a0 93 17 05 sts 0x0517, r26 |
4ab8: b0 93 18 05 sts 0x0518, r27 |
4abc: 80 91 0e 02 lds r24, 0x020E |
4ac0: 88 23 and r24, r24 |
4ac2: 21 f1 breq .+72 ; 0x4b0c <MotorRegler+0x69e> |
4ac4: 10 92 1e 02 sts 0x021E, r1 |
4ac8: 10 92 1d 02 sts 0x021D, r1 |
4acc: 10 92 1a 02 sts 0x021A, r1 |
4ad0: 10 92 19 02 sts 0x0219, r1 |
4ad4: 10 92 1c 02 sts 0x021C, r1 |
4ad8: 10 92 1b 02 sts 0x021B, r1 |
4adc: 8d ec ldi r24, 0xCD ; 205 |
4ade: 9c ec ldi r25, 0xCC ; 204 |
4ae0: ac ec ldi r26, 0xCC ; 204 |
4ae2: bd e3 ldi r27, 0x3D ; 61 |
4ae4: 80 93 26 05 sts 0x0526, r24 |
4ae8: 90 93 27 05 sts 0x0527, r25 |
4aec: a0 93 28 05 sts 0x0528, r26 |
4af0: b0 93 29 05 sts 0x0529, r27 |
4af4: 8a e0 ldi r24, 0x0A ; 10 |
4af6: 97 ed ldi r25, 0xD7 ; 215 |
4af8: a3 ea ldi r26, 0xA3 ; 163 |
4afa: bb e3 ldi r27, 0x3B ; 59 |
4afc: 80 93 15 05 sts 0x0515, r24 |
4b00: 90 93 16 05 sts 0x0516, r25 |
4b04: a0 93 17 05 sts 0x0517, r26 |
4b08: b0 93 18 05 sts 0x0518, r27 |
4b0c: 80 91 bf 01 lds r24, 0x01BF |
4b10: 90 91 c0 01 lds r25, 0x01C0 |
4b14: 8d 54 subi r24, 0x4D ; 77 |
4b16: 91 40 sbci r25, 0x01 ; 1 |
4b18: 08 f4 brcc .+2 ; 0x4b1c <MotorRegler+0x6ae> |
4b1a: 77 c0 rjmp .+238 ; 0x4c0a <MotorRegler+0x79c> |
4b1c: a0 90 d7 01 lds r10, 0x01D7 |
4b20: b0 90 d8 01 lds r11, 0x01D8 |
4b24: c0 90 d9 01 lds r12, 0x01D9 |
4b28: d0 90 da 01 lds r13, 0x01DA |
4b2c: 80 91 db 01 lds r24, 0x01DB |
4b30: 90 91 dc 01 lds r25, 0x01DC |
4b34: 8a 19 sub r24, r10 |
4b36: 9b 09 sbc r25, r11 |
4b38: 90 93 35 02 sts 0x0235, r25 |
4b3c: 80 93 34 02 sts 0x0234, r24 |
4b40: 40 91 df 01 lds r20, 0x01DF |
4b44: 50 91 e0 01 lds r21, 0x01E0 |
4b48: 60 91 e1 01 lds r22, 0x01E1 |
4b4c: 70 91 e2 01 lds r23, 0x01E2 |
4b50: 20 91 e3 01 lds r18, 0x01E3 |
4b54: 30 91 e4 01 lds r19, 0x01E4 |
4b58: 24 1b sub r18, r20 |
4b5a: 35 0b sbc r19, r21 |
4b5c: 30 93 33 02 sts 0x0233, r19 |
4b60: 20 93 32 02 sts 0x0232, r18 |
4b64: 10 92 c0 01 sts 0x01C0, r1 |
4b68: 10 92 bf 01 sts 0x01BF, r1 |
4b6c: 87 3a cpi r24, 0xA7 ; 167 |
4b6e: 91 05 cpc r25, r1 |
4b70: 34 f0 brlt .+12 ; 0x4b7e <MotorRegler+0x710> |
4b72: 80 91 d1 01 lds r24, 0x01D1 |
4b76: 90 91 d2 01 lds r25, 0x01D2 |
4b7a: 01 96 adiw r24, 0x01 ; 1 |
4b7c: 08 c0 rjmp .+16 ; 0x4b8e <MotorRegler+0x720> |
4b7e: 8a 55 subi r24, 0x5A ; 90 |
4b80: 9f 4f sbci r25, 0xFF ; 255 |
4b82: 4c f4 brge .+18 ; 0x4b96 <MotorRegler+0x728> |
4b84: 80 91 d1 01 lds r24, 0x01D1 |
4b88: 90 91 d2 01 lds r25, 0x01D2 |
4b8c: 01 97 sbiw r24, 0x01 ; 1 |
4b8e: 90 93 d2 01 sts 0x01D2, r25 |
4b92: 80 93 d1 01 sts 0x01D1, r24 |
4b96: 27 3a cpi r18, 0xA7 ; 167 |
4b98: 31 05 cpc r19, r1 |
4b9a: 34 f0 brlt .+12 ; 0x4ba8 <MotorRegler+0x73a> |
4b9c: 80 91 d3 01 lds r24, 0x01D3 |
4ba0: 90 91 d4 01 lds r25, 0x01D4 |
4ba4: 01 96 adiw r24, 0x01 ; 1 |
4ba6: 08 c0 rjmp .+16 ; 0x4bb8 <MotorRegler+0x74a> |
4ba8: 2a 55 subi r18, 0x5A ; 90 |
4baa: 3f 4f sbci r19, 0xFF ; 255 |
4bac: 4c f4 brge .+18 ; 0x4bc0 <MotorRegler+0x752> |
4bae: 80 91 d3 01 lds r24, 0x01D3 |
4bb2: 90 91 d4 01 lds r25, 0x01D4 |
4bb6: 01 97 sbiw r24, 0x01 ; 1 |
4bb8: 90 93 d4 01 sts 0x01D4, r25 |
4bbc: 80 93 d3 01 sts 0x01D3, r24 |
4bc0: 10 92 7a 00 sts 0x007A, r1 |
4bc4: a0 92 ef 01 sts 0x01EF, r10 |
4bc8: b0 92 f0 01 sts 0x01F0, r11 |
4bcc: c0 92 f1 01 sts 0x01F1, r12 |
4bd0: d0 92 f2 01 sts 0x01F2, r13 |
4bd4: 40 93 f7 01 sts 0x01F7, r20 |
4bd8: 50 93 f8 01 sts 0x01F8, r21 |
4bdc: 60 93 f9 01 sts 0x01F9, r22 |
4be0: 70 93 fa 01 sts 0x01FA, r23 |
4be4: 80 91 e7 01 lds r24, 0x01E7 |
4be8: 90 91 e8 01 lds r25, 0x01E8 |
4bec: a0 91 e9 01 lds r26, 0x01E9 |
4bf0: b0 91 ea 01 lds r27, 0x01EA |
4bf4: 80 93 ff 01 sts 0x01FF, r24 |
4bf8: 90 93 00 02 sts 0x0200, r25 |
4bfc: a0 93 01 02 sts 0x0201, r26 |
4c00: b0 93 02 02 sts 0x0202, r27 |
4c04: 8f ec ldi r24, 0xCF ; 207 |
4c06: 80 93 7a 00 sts 0x007A, r24 |
4c0a: e0 90 e8 04 lds r14, 0x04E8 |
4c0e: ff 24 eor r15, r15 |
4c10: 00 27 eor r16, r16 |
4c12: 11 27 eor r17, r17 |
4c14: 60 91 d7 01 lds r22, 0x01D7 |
4c18: 70 91 d8 01 lds r23, 0x01D8 |
4c1c: 80 91 d9 01 lds r24, 0x01D9 |
4c20: 90 91 da 01 lds r25, 0x01DA |
4c24: a8 01 movw r20, r16 |
4c26: 97 01 movw r18, r14 |
4c28: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4c2c: 80 91 21 05 lds r24, 0x0521 |
4c30: 90 91 22 05 lds r25, 0x0522 |
4c34: aa 27 eor r26, r26 |
4c36: 97 fd sbrc r25, 7 |
4c38: a0 95 com r26 |
4c3a: ba 2f mov r27, r26 |
4c3c: 28 1b sub r18, r24 |
4c3e: 39 0b sbc r19, r25 |
4c40: 4a 0b sbc r20, r26 |
4c42: 5b 0b sbc r21, r27 |
4c44: ca 01 movw r24, r20 |
4c46: b9 01 movw r22, r18 |
4c48: 20 e1 ldi r18, 0x10 ; 16 |
4c4a: 30 e0 ldi r19, 0x00 ; 0 |
4c4c: 40 e0 ldi r20, 0x00 ; 0 |
4c4e: 50 e0 ldi r21, 0x00 ; 0 |
4c50: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4c54: 59 01 movw r10, r18 |
4c56: 6a 01 movw r12, r20 |
4c58: 20 93 3a 02 sts 0x023A, r18 |
4c5c: 30 93 3b 02 sts 0x023B, r19 |
4c60: 40 93 3c 02 sts 0x023C, r20 |
4c64: 50 93 3d 02 sts 0x023D, r21 |
4c68: 60 91 df 01 lds r22, 0x01DF |
4c6c: 70 91 e0 01 lds r23, 0x01E0 |
4c70: 80 91 e1 01 lds r24, 0x01E1 |
4c74: 90 91 e2 01 lds r25, 0x01E2 |
4c78: a8 01 movw r20, r16 |
4c7a: 97 01 movw r18, r14 |
4c7c: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4c80: 80 91 2a 05 lds r24, 0x052A |
4c84: 90 91 2b 05 lds r25, 0x052B |
4c88: aa 27 eor r26, r26 |
4c8a: 97 fd sbrc r25, 7 |
4c8c: a0 95 com r26 |
4c8e: ba 2f mov r27, r26 |
4c90: 28 1b sub r18, r24 |
4c92: 39 0b sbc r19, r25 |
4c94: 4a 0b sbc r20, r26 |
4c96: 5b 0b sbc r21, r27 |
4c98: ca 01 movw r24, r20 |
4c9a: b9 01 movw r22, r18 |
4c9c: 20 e1 ldi r18, 0x10 ; 16 |
4c9e: 30 e0 ldi r19, 0x00 ; 0 |
4ca0: 40 e0 ldi r20, 0x00 ; 0 |
4ca2: 50 e0 ldi r21, 0x00 ; 0 |
4ca4: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4ca8: 20 93 36 02 sts 0x0236, r18 |
4cac: 30 93 37 02 sts 0x0237, r19 |
4cb0: 40 93 38 02 sts 0x0238, r20 |
4cb4: 50 93 39 02 sts 0x0239, r21 |
4cb8: e5 ef ldi r30, 0xF5 ; 245 |
4cba: ae 16 cp r10, r30 |
4cbc: e1 e0 ldi r30, 0x01 ; 1 |
4cbe: be 06 cpc r11, r30 |
4cc0: e0 e0 ldi r30, 0x00 ; 0 |
4cc2: ce 06 cpc r12, r30 |
4cc4: e0 e0 ldi r30, 0x00 ; 0 |
4cc6: de 06 cpc r13, r30 |
4cc8: 2c f0 brlt .+10 ; 0x4cd4 <MotorRegler+0x866> |
4cca: 84 ef ldi r24, 0xF4 ; 244 |
4ccc: 91 e0 ldi r25, 0x01 ; 1 |
4cce: a0 e0 ldi r26, 0x00 ; 0 |
4cd0: b0 e0 ldi r27, 0x00 ; 0 |
4cd2: 0d c0 rjmp .+26 ; 0x4cee <MotorRegler+0x880> |
4cd4: fc e0 ldi r31, 0x0C ; 12 |
4cd6: af 16 cp r10, r31 |
4cd8: fe ef ldi r31, 0xFE ; 254 |
4cda: bf 06 cpc r11, r31 |
4cdc: ff ef ldi r31, 0xFF ; 255 |
4cde: cf 06 cpc r12, r31 |
4ce0: ff ef ldi r31, 0xFF ; 255 |
4ce2: df 06 cpc r13, r31 |
4ce4: 64 f4 brge .+24 ; 0x4cfe <MotorRegler+0x890> |
4ce6: 8c e0 ldi r24, 0x0C ; 12 |
4ce8: 9e ef ldi r25, 0xFE ; 254 |
4cea: af ef ldi r26, 0xFF ; 255 |
4cec: bf ef ldi r27, 0xFF ; 255 |
4cee: 80 93 3a 02 sts 0x023A, r24 |
4cf2: 90 93 3b 02 sts 0x023B, r25 |
4cf6: a0 93 3c 02 sts 0x023C, r26 |
4cfa: b0 93 3d 02 sts 0x023D, r27 |
4cfe: 25 3f cpi r18, 0xF5 ; 245 |
4d00: 61 e0 ldi r22, 0x01 ; 1 |
4d02: 36 07 cpc r19, r22 |
4d04: 60 e0 ldi r22, 0x00 ; 0 |
4d06: 46 07 cpc r20, r22 |
4d08: 60 e0 ldi r22, 0x00 ; 0 |
4d0a: 56 07 cpc r21, r22 |
4d0c: 2c f0 brlt .+10 ; 0x4d18 <MotorRegler+0x8aa> |
4d0e: 84 ef ldi r24, 0xF4 ; 244 |
4d10: 91 e0 ldi r25, 0x01 ; 1 |
4d12: a0 e0 ldi r26, 0x00 ; 0 |
4d14: b0 e0 ldi r27, 0x00 ; 0 |
4d16: 09 c0 rjmp .+18 ; 0x4d2a <MotorRegler+0x8bc> |
4d18: 2c 50 subi r18, 0x0C ; 12 |
4d1a: 3e 4f sbci r19, 0xFE ; 254 |
4d1c: 4f 4f sbci r20, 0xFF ; 255 |
4d1e: 5f 4f sbci r21, 0xFF ; 255 |
4d20: 64 f4 brge .+24 ; 0x4d3a <MotorRegler+0x8cc> |
4d22: 8c e0 ldi r24, 0x0C ; 12 |
4d24: 9e ef ldi r25, 0xFE ; 254 |
4d26: af ef ldi r26, 0xFF ; 255 |
4d28: bf ef ldi r27, 0xFF ; 255 |
4d2a: 80 93 36 02 sts 0x0236, r24 |
4d2e: 90 93 37 02 sts 0x0237, r25 |
4d32: a0 93 38 02 sts 0x0238, r26 |
4d36: b0 93 39 02 sts 0x0239, r27 |
4d3a: 10 92 7a 00 sts 0x007A, r1 |
4d3e: 80 91 eb 01 lds r24, 0x01EB |
4d42: 90 91 ec 01 lds r25, 0x01EC |
4d46: a0 91 ed 01 lds r26, 0x01ED |
4d4a: b0 91 ee 01 lds r27, 0x01EE |
4d4e: 20 91 3a 02 lds r18, 0x023A |
4d52: 30 91 3b 02 lds r19, 0x023B |
4d56: 40 91 3c 02 lds r20, 0x023C |
4d5a: 50 91 3d 02 lds r21, 0x023D |
4d5e: 82 1b sub r24, r18 |
4d60: 93 0b sbc r25, r19 |
4d62: a4 0b sbc r26, r20 |
4d64: b5 0b sbc r27, r21 |
4d66: 80 93 eb 01 sts 0x01EB, r24 |
4d6a: 90 93 ec 01 sts 0x01EC, r25 |
4d6e: a0 93 ed 01 sts 0x01ED, r26 |
4d72: b0 93 ee 01 sts 0x01EE, r27 |
4d76: 80 91 f3 01 lds r24, 0x01F3 |
4d7a: 90 91 f4 01 lds r25, 0x01F4 |
4d7e: a0 91 f5 01 lds r26, 0x01F5 |
4d82: b0 91 f6 01 lds r27, 0x01F6 |
4d86: 20 91 36 02 lds r18, 0x0236 |
4d8a: 30 91 37 02 lds r19, 0x0237 |
4d8e: 40 91 38 02 lds r20, 0x0238 |
4d92: 50 91 39 02 lds r21, 0x0239 |
4d96: 82 1b sub r24, r18 |
4d98: 93 0b sbc r25, r19 |
4d9a: a4 0b sbc r26, r20 |
4d9c: b5 0b sbc r27, r21 |
4d9e: 80 93 f3 01 sts 0x01F3, r24 |
4da2: 90 93 f4 01 sts 0x01F4, r25 |
4da6: a0 93 f5 01 sts 0x01F5, r26 |
4daa: b0 93 f6 01 sts 0x01F6, r27 |
4dae: 80 90 1d 02 lds r8, 0x021D |
4db2: 90 90 1e 02 lds r9, 0x021E |
4db6: 54 01 movw r10, r8 |
4db8: 97 fe sbrs r9, 7 |
4dba: 04 c0 rjmp .+8 ; 0x4dc4 <MotorRegler+0x956> |
4dbc: aa 24 eor r10, r10 |
4dbe: bb 24 eor r11, r11 |
4dc0: a8 18 sub r10, r8 |
4dc2: b9 08 sbc r11, r9 |
4dc4: 85 e1 ldi r24, 0x15 ; 21 |
4dc6: a8 16 cp r10, r24 |
4dc8: b1 04 cpc r11, r1 |
4dca: 3c f0 brlt .+14 ; 0x4dda <MotorRegler+0x96c> |
4dcc: 80 91 dc 04 lds r24, 0x04DC |
4dd0: 84 fd sbrc r24, 4 |
4dd2: 03 c0 rjmp .+6 ; 0x4dda <MotorRegler+0x96c> |
4dd4: 81 e0 ldi r24, 0x01 ; 1 |
4dd6: 80 93 8a 01 sts 0x018A, r24 |
4dda: e0 90 e5 04 lds r14, 0x04E5 |
4dde: cc 24 eor r12, r12 |
4de0: b7 fc sbrc r11, 7 |
4de2: c0 94 com r12 |
4de4: dc 2c mov r13, r12 |
4de6: b4 01 movw r22, r8 |
4de8: 88 27 eor r24, r24 |
4dea: 77 fd sbrc r23, 7 |
4dec: 80 95 com r24 |
4dee: 98 2f mov r25, r24 |
4df0: 2e 2d mov r18, r14 |
4df2: 33 27 eor r19, r19 |
4df4: 44 27 eor r20, r20 |
4df6: 55 27 eor r21, r21 |
4df8: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
4dfc: 9b 01 movw r18, r22 |
4dfe: ac 01 movw r20, r24 |
4e00: c6 01 movw r24, r12 |
4e02: b5 01 movw r22, r10 |
4e04: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
4e08: 20 e0 ldi r18, 0x00 ; 0 |
4e0a: 32 e0 ldi r19, 0x02 ; 2 |
4e0c: 40 e0 ldi r20, 0x00 ; 0 |
4e0e: 50 e0 ldi r21, 0x00 ; 0 |
4e10: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4e14: 89 01 movw r16, r18 |
4e16: 9a 01 movw r18, r20 |
4e18: ff 24 eor r15, r15 |
4e1a: e8 9c mul r14, r8 |
4e1c: c0 01 movw r24, r0 |
4e1e: e9 9c mul r14, r9 |
4e20: 90 0d add r25, r0 |
4e22: f8 9c mul r15, r8 |
4e24: 90 0d add r25, r0 |
4e26: 11 24 eor r1, r1 |
4e28: 64 e0 ldi r22, 0x04 ; 4 |
4e2a: 70 e0 ldi r23, 0x00 ; 0 |
4e2c: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
4e30: 60 0f add r22, r16 |
4e32: 71 1f adc r23, r17 |
4e34: 88 27 eor r24, r24 |
4e36: 77 fd sbrc r23, 7 |
4e38: 80 95 com r24 |
4e3a: 98 2f mov r25, r24 |
4e3c: 60 93 3e 02 sts 0x023E, r22 |
4e40: 70 93 3f 02 sts 0x023F, r23 |
4e44: 80 93 40 02 sts 0x0240, r24 |
4e48: 90 93 41 02 sts 0x0241, r25 |
4e4c: 20 91 fb 01 lds r18, 0x01FB |
4e50: 30 91 fc 01 lds r19, 0x01FC |
4e54: 40 91 fd 01 lds r20, 0x01FD |
4e58: 50 91 fe 01 lds r21, 0x01FE |
4e5c: 26 1b sub r18, r22 |
4e5e: 37 0b sbc r19, r23 |
4e60: 48 0b sbc r20, r24 |
4e62: 59 0b sbc r21, r25 |
4e64: 20 93 fb 01 sts 0x01FB, r18 |
4e68: 30 93 fc 01 sts 0x01FC, r19 |
4e6c: 40 93 fd 01 sts 0x01FD, r20 |
4e70: 50 93 fe 01 sts 0x01FE, r21 |
4e74: 80 91 fb 01 lds r24, 0x01FB |
4e78: 90 91 fc 01 lds r25, 0x01FC |
4e7c: a0 91 fd 01 lds r26, 0x01FD |
4e80: b0 91 fe 01 lds r27, 0x01FE |
4e84: 81 55 subi r24, 0x51 ; 81 |
4e86: 93 4c sbci r25, 0xC3 ; 195 |
4e88: a0 40 sbci r26, 0x00 ; 0 |
4e8a: b0 40 sbci r27, 0x00 ; 0 |
4e8c: 64 f0 brlt .+24 ; 0x4ea6 <MotorRegler+0xa38> |
4e8e: 80 e5 ldi r24, 0x50 ; 80 |
4e90: 93 ec ldi r25, 0xC3 ; 195 |
4e92: a0 e0 ldi r26, 0x00 ; 0 |
4e94: b0 e0 ldi r27, 0x00 ; 0 |
4e96: 80 93 fb 01 sts 0x01FB, r24 |
4e9a: 90 93 fc 01 sts 0x01FC, r25 |
4e9e: a0 93 fd 01 sts 0x01FD, r26 |
4ea2: b0 93 fe 01 sts 0x01FE, r27 |
4ea6: 80 91 fb 01 lds r24, 0x01FB |
4eaa: 90 91 fc 01 lds r25, 0x01FC |
4eae: a0 91 fd 01 lds r26, 0x01FD |
4eb2: b0 91 fe 01 lds r27, 0x01FE |
4eb6: 80 5b subi r24, 0xB0 ; 176 |
4eb8: 9c 43 sbci r25, 0x3C ; 60 |
4eba: af 4f sbci r26, 0xFF ; 255 |
4ebc: bf 4f sbci r27, 0xFF ; 255 |
4ebe: 64 f4 brge .+24 ; 0x4ed8 <MotorRegler+0xa6a> |
4ec0: 80 eb ldi r24, 0xB0 ; 176 |
4ec2: 9c e3 ldi r25, 0x3C ; 60 |
4ec4: af ef ldi r26, 0xFF ; 255 |
4ec6: bf ef ldi r27, 0xFF ; 255 |
4ec8: 80 93 fb 01 sts 0x01FB, r24 |
4ecc: 90 93 fc 01 sts 0x01FC, r25 |
4ed0: a0 93 fd 01 sts 0x01FD, r26 |
4ed4: b0 93 fe 01 sts 0x01FE, r27 |
4ed8: 8f ec ldi r24, 0xCF ; 207 |
4eda: 80 93 7a 00 sts 0x007A, r24 |
4ede: 80 91 dc 04 lds r24, 0x04DC |
4ee2: 83 ff sbrs r24, 3 |
4ee4: a7 c0 rjmp .+334 ; 0x5034 <MotorRegler+0xbc6> |
4ee6: 80 91 0d 02 lds r24, 0x020D |
4eea: 81 50 subi r24, 0x01 ; 1 |
4eec: 80 93 0d 02 sts 0x020D, r24 |
4ef0: 8f 3f cpi r24, 0xFF ; 255 |
4ef2: d9 f4 brne .+54 ; 0x4f2a <MotorRegler+0xabc> |
4ef4: 0e 94 af 14 call 0x295e ; 0x295e <heading_MM3> |
4ef8: 90 93 08 02 sts 0x0208, r25 |
4efc: 80 93 07 02 sts 0x0207, r24 |
4f00: 20 91 09 02 lds r18, 0x0209 |
4f04: 30 91 0a 02 lds r19, 0x020A |
4f08: 82 1b sub r24, r18 |
4f0a: 93 0b sbc r25, r19 |
4f0c: 84 5e subi r24, 0xE4 ; 228 |
4f0e: 9d 4f sbci r25, 0xFD ; 253 |
4f10: 68 e6 ldi r22, 0x68 ; 104 |
4f12: 71 e0 ldi r23, 0x01 ; 1 |
4f14: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
4f18: 84 5b subi r24, 0xB4 ; 180 |
4f1a: 90 40 sbci r25, 0x00 ; 0 |
4f1c: 90 93 0c 02 sts 0x020C, r25 |
4f20: 80 93 0b 02 sts 0x020B, r24 |
4f24: 82 e3 ldi r24, 0x32 ; 50 |
4f26: 80 93 0d 02 sts 0x020D, r24 |
4f2a: 60 91 d7 01 lds r22, 0x01D7 |
4f2e: 70 91 d8 01 lds r23, 0x01D8 |
4f32: 80 91 d9 01 lds r24, 0x01D9 |
4f36: 90 91 da 01 lds r25, 0x01DA |
4f3a: 20 e0 ldi r18, 0x00 ; 0 |
4f3c: 32 e0 ldi r19, 0x02 ; 2 |
4f3e: 40 e0 ldi r20, 0x00 ; 0 |
4f40: 50 e0 ldi r21, 0x00 ; 0 |
4f42: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4f46: 89 01 movw r16, r18 |
4f48: 37 ff sbrs r19, 7 |
4f4a: 03 c0 rjmp .+6 ; 0x4f52 <MotorRegler+0xae4> |
4f4c: 10 95 com r17 |
4f4e: 01 95 neg r16 |
4f50: 1f 4f sbci r17, 0xFF ; 255 |
4f52: 60 91 df 01 lds r22, 0x01DF |
4f56: 70 91 e0 01 lds r23, 0x01E0 |
4f5a: 80 91 e1 01 lds r24, 0x01E1 |
4f5e: 90 91 e2 01 lds r25, 0x01E2 |
4f62: 20 e0 ldi r18, 0x00 ; 0 |
4f64: 32 e0 ldi r19, 0x02 ; 2 |
4f66: 40 e0 ldi r20, 0x00 ; 0 |
4f68: 50 e0 ldi r21, 0x00 ; 0 |
4f6a: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
4f6e: b9 01 movw r22, r18 |
4f70: 37 ff sbrs r19, 7 |
4f72: 03 c0 rjmp .+6 ; 0x4f7a <MotorRegler+0xb0c> |
4f74: 70 95 com r23 |
4f76: 61 95 neg r22 |
4f78: 7f 4f sbci r23, 0xFF ; 255 |
4f7a: 60 17 cp r22, r16 |
4f7c: 71 07 cpc r23, r17 |
4f7e: 0c f4 brge .+2 ; 0x4f82 <MotorRegler+0xb14> |
4f80: b8 01 movw r22, r16 |
4f82: 63 32 cpi r22, 0x23 ; 35 |
4f84: 71 05 cpc r23, r1 |
4f86: 74 f4 brge .+28 ; 0x4fa4 <MotorRegler+0xb36> |
4f88: 80 91 8a 01 lds r24, 0x018A |
4f8c: 88 23 and r24, r24 |
4f8e: 51 f0 breq .+20 ; 0x4fa4 <MotorRegler+0xb36> |
4f90: 80 91 07 02 lds r24, 0x0207 |
4f94: 90 91 08 02 lds r25, 0x0208 |
4f98: 90 93 0a 02 sts 0x020A, r25 |
4f9c: 80 93 09 02 sts 0x0209, r24 |
4fa0: 10 92 8a 01 sts 0x018A, r1 |
4fa4: 20 91 84 01 lds r18, 0x0184 |
4fa8: 33 27 eor r19, r19 |
4faa: 62 9f mul r22, r18 |
4fac: c0 01 movw r24, r0 |
4fae: 63 9f mul r22, r19 |
4fb0: 90 0d add r25, r0 |
4fb2: 72 9f mul r23, r18 |
4fb4: 90 0d add r25, r0 |
4fb6: 11 24 eor r1, r1 |
4fb8: 60 e4 ldi r22, 0x40 ; 64 |
4fba: 70 e0 ldi r23, 0x00 ; 0 |
4fbc: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
4fc0: a9 01 movw r20, r18 |
4fc2: 46 1b sub r20, r22 |
4fc4: 57 0b sbc r21, r23 |
4fc6: 14 16 cp r1, r20 |
4fc8: 15 06 cpc r1, r21 |
4fca: 74 f5 brge .+92 ; 0x5028 <MotorRegler+0xbba> |
4fcc: 10 92 7a 00 sts 0x007A, r1 |
4fd0: 00 91 fb 01 lds r16, 0x01FB |
4fd4: 10 91 fc 01 lds r17, 0x01FC |
4fd8: 20 91 fd 01 lds r18, 0x01FD |
4fdc: 30 91 fe 01 lds r19, 0x01FE |
4fe0: 80 91 0b 02 lds r24, 0x020B |
4fe4: 90 91 0c 02 lds r25, 0x020C |
4fe8: bc 01 movw r22, r24 |
4fea: 46 9f mul r20, r22 |
4fec: c0 01 movw r24, r0 |
4fee: 47 9f mul r20, r23 |
4ff0: 90 0d add r25, r0 |
4ff2: 56 9f mul r21, r22 |
4ff4: 90 0d add r25, r0 |
4ff6: 11 24 eor r1, r1 |
4ff8: 60 e2 ldi r22, 0x20 ; 32 |
4ffa: 70 e0 ldi r23, 0x00 ; 0 |
4ffc: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
5000: 88 27 eor r24, r24 |
5002: 77 fd sbrc r23, 7 |
5004: 80 95 com r24 |
5006: 98 2f mov r25, r24 |
5008: 06 0f add r16, r22 |
500a: 17 1f adc r17, r23 |
500c: 28 1f adc r18, r24 |
500e: 39 1f adc r19, r25 |
5010: 00 93 fb 01 sts 0x01FB, r16 |
5014: 10 93 fc 01 sts 0x01FC, r17 |
5018: 20 93 fd 01 sts 0x01FD, r18 |
501c: 30 93 fe 01 sts 0x01FE, r19 |
5020: 8f ec ldi r24, 0xCF ; 207 |
5022: 80 93 7a 00 sts 0x007A, r24 |
5026: 06 c0 rjmp .+12 ; 0x5034 <MotorRegler+0xbc6> |
5028: 84 e6 ldi r24, 0x64 ; 100 |
502a: 90 e0 ldi r25, 0x00 ; 0 |
502c: 90 93 a7 01 sts 0x01A7, r25 |
5030: 80 93 a6 01 sts 0x01A6, r24 |
5034: 80 91 59 04 lds r24, 0x0459 |
5038: 8f 5f subi r24, 0xFF ; 255 |
503a: 80 93 59 04 sts 0x0459, r24 |
503e: 80 91 28 02 lds r24, 0x0228 |
5042: 81 50 subi r24, 0x01 ; 1 |
5044: 80 93 28 02 sts 0x0228, r24 |
5048: 8f 3f cpi r24, 0xFF ; 255 |
504a: 09 f0 breq .+2 ; 0x504e <MotorRegler+0xbe0> |
504c: 66 c0 rjmp .+204 ; 0x511a <MotorRegler+0xcac> |
504e: 81 e3 ldi r24, 0x31 ; 49 |
5050: 80 93 28 02 sts 0x0228, r24 |
5054: e0 90 e8 04 lds r14, 0x04E8 |
5058: ff 24 eor r15, r15 |
505a: 00 27 eor r16, r16 |
505c: 11 27 eor r17, r17 |
505e: 60 91 d7 01 lds r22, 0x01D7 |
5062: 70 91 d8 01 lds r23, 0x01D8 |
5066: 80 91 d9 01 lds r24, 0x01D9 |
506a: 90 91 da 01 lds r25, 0x01DA |
506e: a8 01 movw r20, r16 |
5070: 97 01 movw r18, r14 |
5072: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
5076: 30 93 5b 04 sts 0x045B, r19 |
507a: 20 93 5a 04 sts 0x045A, r18 |
507e: 60 91 df 01 lds r22, 0x01DF |
5082: 70 91 e0 01 lds r23, 0x01E0 |
5086: 80 91 e1 01 lds r24, 0x01E1 |
508a: 90 91 e2 01 lds r25, 0x01E2 |
508e: a8 01 movw r20, r16 |
5090: 97 01 movw r18, r14 |
5092: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
5096: 30 93 5d 04 sts 0x045D, r19 |
509a: 20 93 5c 04 sts 0x045C, r18 |
509e: 80 91 21 05 lds r24, 0x0521 |
50a2: 90 91 22 05 lds r25, 0x0522 |
50a6: 90 93 5f 04 sts 0x045F, r25 |
50aa: 80 93 5e 04 sts 0x045E, r24 |
50ae: 80 91 2a 05 lds r24, 0x052A |
50b2: 90 91 2b 05 lds r25, 0x052B |
50b6: 90 93 61 04 sts 0x0461, r25 |
50ba: 80 93 60 04 sts 0x0460, r24 |
50be: 80 91 24 05 lds r24, 0x0524 |
50c2: 90 91 25 05 lds r25, 0x0525 |
50c6: 90 93 63 04 sts 0x0463, r25 |
50ca: 80 93 62 04 sts 0x0462, r24 |
50ce: 80 91 20 02 lds r24, 0x0220 |
50d2: 90 91 21 02 lds r25, 0x0221 |
50d6: 90 93 65 04 sts 0x0465, r25 |
50da: 80 93 64 04 sts 0x0464, r24 |
50de: 60 91 03 02 lds r22, 0x0203 |
50e2: 70 91 04 02 lds r23, 0x0204 |
50e6: 80 91 05 02 lds r24, 0x0205 |
50ea: 90 91 06 02 lds r25, 0x0206 |
50ee: 20 e0 ldi r18, 0x00 ; 0 |
50f0: 32 e0 ldi r19, 0x02 ; 2 |
50f2: 40 e0 ldi r20, 0x00 ; 0 |
50f4: 50 e0 ldi r21, 0x00 ; 0 |
50f6: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
50fa: 30 93 67 04 sts 0x0467, r19 |
50fe: 20 93 66 04 sts 0x0466, r18 |
5102: 50 92 69 04 sts 0x0469, r5 |
5106: 40 92 68 04 sts 0x0468, r4 |
510a: 80 91 07 02 lds r24, 0x0207 |
510e: 90 91 08 02 lds r25, 0x0208 |
5112: 90 93 6b 04 sts 0x046B, r25 |
5116: 80 93 6a 04 sts 0x046A, r24 |
511a: 60 90 15 05 lds r6, 0x0515 |
511e: 70 90 16 05 lds r7, 0x0516 |
5122: 80 90 17 05 lds r8, 0x0517 |
5126: 90 90 18 05 lds r9, 0x0518 |
512a: a0 90 26 05 lds r10, 0x0526 |
512e: b0 90 27 05 lds r11, 0x0527 |
5132: c0 90 28 05 lds r12, 0x0528 |
5136: d0 90 29 05 lds r13, 0x0529 |
513a: 60 91 d7 01 lds r22, 0x01D7 |
513e: 70 91 d8 01 lds r23, 0x01D8 |
5142: 80 91 d9 01 lds r24, 0x01D9 |
5146: 90 91 da 01 lds r25, 0x01DA |
514a: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
514e: a4 01 movw r20, r8 |
5150: 93 01 movw r18, r6 |
5152: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
5156: 7b 01 movw r14, r22 |
5158: 8c 01 movw r16, r24 |
515a: 60 91 10 05 lds r22, 0x0510 |
515e: 70 91 11 05 lds r23, 0x0511 |
5162: 88 27 eor r24, r24 |
5164: 77 fd sbrc r23, 7 |
5166: 80 95 com r24 |
5168: 98 2f mov r25, r24 |
516a: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
516e: a6 01 movw r20, r12 |
5170: 95 01 movw r18, r10 |
5172: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
5176: 9b 01 movw r18, r22 |
5178: ac 01 movw r20, r24 |
517a: c8 01 movw r24, r16 |
517c: b7 01 movw r22, r14 |
517e: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
5182: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
5186: 1b 01 movw r2, r22 |
5188: 70 93 11 05 sts 0x0511, r23 |
518c: 60 93 10 05 sts 0x0510, r22 |
5190: 60 91 df 01 lds r22, 0x01DF |
5194: 70 91 e0 01 lds r23, 0x01E0 |
5198: 80 91 e1 01 lds r24, 0x01E1 |
519c: 90 91 e2 01 lds r25, 0x01E2 |
51a0: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
51a4: a4 01 movw r20, r8 |
51a6: 93 01 movw r18, r6 |
51a8: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
51ac: 7b 01 movw r14, r22 |
51ae: 8c 01 movw r16, r24 |
51b0: 60 91 0e 05 lds r22, 0x050E |
51b4: 70 91 0f 05 lds r23, 0x050F |
51b8: 88 27 eor r24, r24 |
51ba: 77 fd sbrc r23, 7 |
51bc: 80 95 com r24 |
51be: 98 2f mov r25, r24 |
51c0: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
51c4: a6 01 movw r20, r12 |
51c6: 95 01 movw r18, r10 |
51c8: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
51cc: 9b 01 movw r18, r22 |
51ce: ac 01 movw r20, r24 |
51d0: c8 01 movw r24, r16 |
51d2: b7 01 movw r22, r14 |
51d4: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
51d8: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
51dc: 7e 83 std Y+6, r23 ; 0x06 |
51de: 6d 83 std Y+5, r22 ; 0x05 |
51e0: 70 93 0f 05 sts 0x050F, r23 |
51e4: 60 93 0e 05 sts 0x050E, r22 |
51e8: 60 91 24 05 lds r22, 0x0524 |
51ec: 70 91 25 05 lds r23, 0x0525 |
51f0: 88 27 eor r24, r24 |
51f2: 77 fd sbrc r23, 7 |
51f4: 80 95 com r24 |
51f6: 98 2f mov r25, r24 |
51f8: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
51fc: 7b 01 movw r14, r22 |
51fe: 8c 01 movw r16, r24 |
5200: 20 e0 ldi r18, 0x00 ; 0 |
5202: 30 e0 ldi r19, 0x00 ; 0 |
5204: 40 e0 ldi r20, 0x00 ; 0 |
5206: 5f e3 ldi r21, 0x3F ; 63 |
5208: c6 01 movw r24, r12 |
520a: b5 01 movw r22, r10 |
520c: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
5210: 9b 01 movw r18, r22 |
5212: ac 01 movw r20, r24 |
5214: c8 01 movw r24, r16 |
5216: b7 01 movw r22, r14 |
5218: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
521c: 7b 01 movw r14, r22 |
521e: 8c 01 movw r16, r24 |
5220: 60 91 e7 01 lds r22, 0x01E7 |
5224: 70 91 e8 01 lds r23, 0x01E8 |
5228: 80 91 e9 01 lds r24, 0x01E9 |
522c: 90 91 ea 01 lds r25, 0x01EA |
5230: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
5234: a4 01 movw r20, r8 |
5236: 93 01 movw r18, r6 |
5238: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
523c: 9b 01 movw r18, r22 |
523e: ac 01 movw r20, r24 |
5240: c8 01 movw r24, r16 |
5242: b7 01 movw r22, r14 |
5244: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
5248: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
524c: 9b 01 movw r18, r22 |
524e: 70 93 25 05 sts 0x0525, r23 |
5252: 60 93 24 05 sts 0x0524, r22 |
5256: 71 e0 ldi r23, 0x01 ; 1 |
5258: 27 16 cp r2, r23 |
525a: 78 e0 ldi r23, 0x08 ; 8 |
525c: 37 06 cpc r3, r23 |
525e: 1c f0 brlt .+6 ; 0x5266 <MotorRegler+0xdf8> |
5260: 80 e0 ldi r24, 0x00 ; 0 |
5262: 98 e0 ldi r25, 0x08 ; 8 |
5264: 07 c0 rjmp .+14 ; 0x5274 <MotorRegler+0xe06> |
5266: 80 e0 ldi r24, 0x00 ; 0 |
5268: 28 16 cp r2, r24 |
526a: 88 ef ldi r24, 0xF8 ; 248 |
526c: 38 06 cpc r3, r24 |
526e: 34 f4 brge .+12 ; 0x527c <MotorRegler+0xe0e> |
5270: 80 e0 ldi r24, 0x00 ; 0 |
5272: 98 ef ldi r25, 0xF8 ; 248 |
5274: 90 93 11 05 sts 0x0511, r25 |
5278: 80 93 10 05 sts 0x0510, r24 |
527c: ad 81 ldd r26, Y+5 ; 0x05 |
527e: be 81 ldd r27, Y+6 ; 0x06 |
5280: a1 50 subi r26, 0x01 ; 1 |
5282: b8 40 sbci r27, 0x08 ; 8 |
5284: 1c f0 brlt .+6 ; 0x528c <MotorRegler+0xe1e> |
5286: 80 e0 ldi r24, 0x00 ; 0 |
5288: 98 e0 ldi r25, 0x08 ; 8 |
528a: 07 c0 rjmp .+14 ; 0x529a <MotorRegler+0xe2c> |
528c: 4d 81 ldd r20, Y+5 ; 0x05 |
528e: 5e 81 ldd r21, Y+6 ; 0x06 |
5290: 40 50 subi r20, 0x00 ; 0 |
5292: 58 4f sbci r21, 0xF8 ; 248 |
5294: 34 f4 brge .+12 ; 0x52a2 <MotorRegler+0xe34> |
5296: 80 e0 ldi r24, 0x00 ; 0 |
5298: 98 ef ldi r25, 0xF8 ; 248 |
529a: 90 93 0f 05 sts 0x050F, r25 |
529e: 80 93 0e 05 sts 0x050E, r24 |
52a2: 78 e0 ldi r23, 0x08 ; 8 |
52a4: 21 30 cpi r18, 0x01 ; 1 |
52a6: 37 07 cpc r19, r23 |
52a8: 1c f0 brlt .+6 ; 0x52b0 <MotorRegler+0xe42> |
52aa: 80 e0 ldi r24, 0x00 ; 0 |
52ac: 98 e0 ldi r25, 0x08 ; 8 |
52ae: 05 c0 rjmp .+10 ; 0x52ba <MotorRegler+0xe4c> |
52b0: 20 50 subi r18, 0x00 ; 0 |
52b2: 38 4f sbci r19, 0xF8 ; 248 |
52b4: 34 f4 brge .+12 ; 0x52c2 <MotorRegler+0xe54> |
52b6: 80 e0 ldi r24, 0x00 ; 0 |
52b8: 98 ef ldi r25, 0xF8 ; 248 |
52ba: 90 93 25 05 sts 0x0525, r25 |
52be: 80 93 24 05 sts 0x0524, r24 |
52c2: 80 91 dc 04 lds r24, 0x04DC |
52c6: 99 27 eor r25, r25 |
52c8: 80 ff sbrs r24, 0 |
52ca: be c0 rjmp .+380 ; 0x5448 <MotorRegler+0xfda> |
52cc: 20 91 81 01 lds r18, 0x0181 |
52d0: 81 ff sbrs r24, 1 |
52d2: 0e c0 rjmp .+28 ; 0x52f0 <MotorRegler+0xe82> |
52d4: 22 33 cpi r18, 0x32 ; 50 |
52d6: b0 f4 brcc .+44 ; 0x5304 <MotorRegler+0xe96> |
52d8: 80 91 20 02 lds r24, 0x0220 |
52dc: 90 91 21 02 lds r25, 0x0221 |
52e0: 44 97 sbiw r24, 0x14 ; 20 |
52e2: 90 93 23 02 sts 0x0223, r25 |
52e6: 80 93 22 02 sts 0x0222, r24 |
52ea: 10 92 0f 02 sts 0x020F, r1 |
52ee: 0d c0 rjmp .+26 ; 0x530a <MotorRegler+0xe9c> |
52f0: 80 91 e1 04 lds r24, 0x04E1 |
52f4: 28 9f mul r18, r24 |
52f6: c0 01 movw r24, r0 |
52f8: 11 24 eor r1, r1 |
52fa: 44 97 sbiw r24, 0x14 ; 20 |
52fc: 90 93 23 02 sts 0x0223, r25 |
5300: 80 93 22 02 sts 0x0222, r24 |
5304: 81 e0 ldi r24, 0x01 ; 1 |
5306: 80 93 0f 02 sts 0x020F, r24 |
530a: 80 91 0e 02 lds r24, 0x020E |
530e: 88 23 and r24, r24 |
5310: 21 f0 breq .+8 ; 0x531a <MotorRegler+0xeac> |
5312: 10 92 23 02 sts 0x0223, r1 |
5316: 10 92 22 02 sts 0x0222, r1 |
531a: 20 91 20 02 lds r18, 0x0220 |
531e: 30 91 21 02 lds r19, 0x0221 |
5322: 40 91 22 02 lds r20, 0x0222 |
5326: 50 91 23 02 lds r21, 0x0223 |
532a: 42 17 cp r20, r18 |
532c: 53 07 cpc r21, r19 |
532e: 0c f0 brlt .+2 ; 0x5332 <MotorRegler+0xec4> |
5330: 8b c0 rjmp .+278 ; 0x5448 <MotorRegler+0xfda> |
5332: 80 91 0f 02 lds r24, 0x020F |
5336: 88 23 and r24, r24 |
5338: 09 f4 brne .+2 ; 0x533c <MotorRegler+0xece> |
533a: 86 c0 rjmp .+268 ; 0x5448 <MotorRegler+0xfda> |
533c: 24 1b sub r18, r20 |
533e: 35 0b sbc r19, r21 |
5340: 80 91 82 01 lds r24, 0x0182 |
5344: 99 27 eor r25, r25 |
5346: dc 01 movw r26, r24 |
5348: 2a 9f mul r18, r26 |
534a: c0 01 movw r24, r0 |
534c: 2b 9f mul r18, r27 |
534e: 90 0d add r25, r0 |
5350: 3a 9f mul r19, r26 |
5352: 90 0d add r25, r0 |
5354: 11 24 eor r1, r1 |
5356: 60 e1 ldi r22, 0x10 ; 16 |
5358: 70 e0 ldi r23, 0x00 ; 0 |
535a: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
535e: 82 01 movw r16, r4 |
5360: 06 1b sub r16, r22 |
5362: 17 0b sbc r17, r23 |
5364: 20 91 bd 01 lds r18, 0x01BD |
5368: 30 91 be 01 lds r19, 0x01BE |
536c: 80 91 80 01 lds r24, 0x0180 |
5370: 99 27 eor r25, r25 |
5372: fc 01 movw r30, r24 |
5374: 2e 9f mul r18, r30 |
5376: c0 01 movw r24, r0 |
5378: 2f 9f mul r18, r31 |
537a: 90 0d add r25, r0 |
537c: 3e 9f mul r19, r30 |
537e: 90 0d add r25, r0 |
5380: 11 24 eor r1, r1 |
5382: 68 e0 ldi r22, 0x08 ; 8 |
5384: 70 e0 ldi r23, 0x00 ; 0 |
5386: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
538a: 06 1b sub r16, r22 |
538c: 17 0b sbc r17, r23 |
538e: 60 91 03 02 lds r22, 0x0203 |
5392: 70 91 04 02 lds r23, 0x0204 |
5396: 80 91 05 02 lds r24, 0x0205 |
539a: 90 91 06 02 lds r25, 0x0206 |
539e: 20 e0 ldi r18, 0x00 ; 0 |
53a0: 32 e0 ldi r19, 0x02 ; 2 |
53a2: 40 e0 ldi r20, 0x00 ; 0 |
53a4: 50 e0 ldi r21, 0x00 ; 0 |
53a6: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
53aa: ca 01 movw r24, r20 |
53ac: b9 01 movw r22, r18 |
53ae: 20 91 83 01 lds r18, 0x0183 |
53b2: 33 27 eor r19, r19 |
53b4: 44 27 eor r20, r20 |
53b6: 55 27 eor r21, r21 |
53b8: 0e 94 e3 2d call 0x5bc6 ; 0x5bc6 <__mulsi3> |
53bc: 20 e2 ldi r18, 0x20 ; 32 |
53be: 30 e0 ldi r19, 0x00 ; 0 |
53c0: 40 e0 ldi r20, 0x00 ; 0 |
53c2: 50 e0 ldi r21, 0x00 ; 0 |
53c4: 0e 94 4b 2e call 0x5c96 ; 0x5c96 <__divmodsi4> |
53c8: ff ef ldi r31, 0xFF ; 255 |
53ca: 2e 3c cpi r18, 0xCE ; 206 |
53cc: 3f 07 cpc r19, r31 |
53ce: 14 f4 brge .+4 ; 0x53d4 <MotorRegler+0xf66> |
53d0: 2e ec ldi r18, 0xCE ; 206 |
53d2: 3f ef ldi r19, 0xFF ; 255 |
53d4: 80 91 29 02 lds r24, 0x0229 |
53d8: 90 91 2a 02 lds r25, 0x022A |
53dc: ac 01 movw r20, r24 |
53de: 64 e0 ldi r22, 0x04 ; 4 |
53e0: 44 0f add r20, r20 |
53e2: 55 1f adc r21, r21 |
53e4: 6a 95 dec r22 |
53e6: e1 f7 brne .-8 ; 0x53e0 <MotorRegler+0xf72> |
53e8: 48 1b sub r20, r24 |
53ea: 59 0b sbc r21, r25 |
53ec: 23 33 cpi r18, 0x33 ; 51 |
53ee: 31 05 cpc r19, r1 |
53f0: 14 f0 brlt .+4 ; 0x53f6 <MotorRegler+0xf88> |
53f2: 22 e3 ldi r18, 0x32 ; 50 |
53f4: 30 e0 ldi r19, 0x00 ; 0 |
53f6: 02 1b sub r16, r18 |
53f8: 13 0b sbc r17, r19 |
53fa: ca 01 movw r24, r20 |
53fc: 80 0f add r24, r16 |
53fe: 91 1f adc r25, r17 |
5400: 60 e1 ldi r22, 0x10 ; 16 |
5402: 70 e0 ldi r23, 0x00 ; 0 |
5404: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
5408: 70 93 2a 02 sts 0x022A, r23 |
540c: 60 93 29 02 sts 0x0229, r22 |
5410: 80 91 dd 04 lds r24, 0x04DD |
5414: 99 27 eor r25, r25 |
5416: 68 17 cp r22, r24 |
5418: 79 07 cpc r23, r25 |
541a: 3c f4 brge .+14 ; 0x542a <MotorRegler+0xfbc> |
541c: 48 16 cp r4, r24 |
541e: 59 06 cpc r5, r25 |
5420: 5c f0 brlt .+22 ; 0x5438 <MotorRegler+0xfca> |
5422: 90 93 2a 02 sts 0x022A, r25 |
5426: 80 93 29 02 sts 0x0229, r24 |
542a: 80 91 29 02 lds r24, 0x0229 |
542e: 90 91 2a 02 lds r25, 0x022A |
5432: 48 16 cp r4, r24 |
5434: 59 06 cpc r5, r25 |
5436: 24 f4 brge .+8 ; 0x5440 <MotorRegler+0xfd2> |
5438: 50 92 2a 02 sts 0x022A, r5 |
543c: 40 92 29 02 sts 0x0229, r4 |
5440: 40 90 29 02 lds r4, 0x0229 |
5444: 50 90 2a 02 lds r5, 0x022A |
5448: c0 90 24 05 lds r12, 0x0524 |
544c: d0 90 25 05 lds r13, 0x0525 |
5450: 80 91 3e 02 lds r24, 0x023E |
5454: 90 91 3f 02 lds r25, 0x023F |
5458: c8 1a sub r12, r24 |
545a: d9 0a sbc r13, r25 |
545c: 25 e6 ldi r18, 0x65 ; 101 |
545e: c2 16 cp r12, r18 |
5460: d1 04 cpc r13, r1 |
5462: 24 f0 brlt .+8 ; 0x546c <MotorRegler+0xffe> |
5464: 14 e6 ldi r17, 0x64 ; 100 |
5466: c1 2e mov r12, r17 |
5468: d1 2c mov r13, r1 |
546a: 09 c0 rjmp .+18 ; 0x547e <MotorRegler+0x1010> |
546c: 4c e9 ldi r20, 0x9C ; 156 |
546e: c4 16 cp r12, r20 |
5470: 4f ef ldi r20, 0xFF ; 255 |
5472: d4 06 cpc r13, r20 |
5474: 24 f4 brge .+8 ; 0x547e <MotorRegler+0x1010> |
5476: bc e9 ldi r27, 0x9C ; 156 |
5478: cb 2e mov r12, r27 |
547a: bf ef ldi r27, 0xFF ; 255 |
547c: db 2e mov r13, r27 |
547e: 60 91 78 01 lds r22, 0x0178 |
5482: 70 91 79 01 lds r23, 0x0179 |
5486: 80 91 7a 01 lds r24, 0x017A |
548a: 90 91 7b 01 lds r25, 0x017B |
548e: 69 83 std Y+1, r22 ; 0x01 |
5490: 7a 83 std Y+2, r23 ; 0x02 |
5492: 8b 83 std Y+3, r24 ; 0x03 |
5494: 9c 83 std Y+4, r25 ; 0x04 |
5496: 20 91 19 02 lds r18, 0x0219 |
549a: 30 91 1a 02 lds r19, 0x021A |
549e: 80 91 4a 02 lds r24, 0x024A |
54a2: 90 91 4b 02 lds r25, 0x024B |
54a6: 28 1b sub r18, r24 |
54a8: 39 0b sbc r19, r25 |
54aa: 60 91 10 05 lds r22, 0x0510 |
54ae: 70 91 11 05 lds r23, 0x0511 |
54b2: 62 1b sub r22, r18 |
54b4: 73 0b sbc r23, r19 |
54b6: 88 27 eor r24, r24 |
54b8: 77 fd sbrc r23, 7 |
54ba: 80 95 com r24 |
54bc: 98 2f mov r25, r24 |
54be: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
54c2: 9b 01 movw r18, r22 |
54c4: ac 01 movw r20, r24 |
54c6: 69 81 ldd r22, Y+1 ; 0x01 |
54c8: 7a 81 ldd r23, Y+2 ; 0x02 |
54ca: 8b 81 ldd r24, Y+3 ; 0x03 |
54cc: 9c 81 ldd r25, Y+4 ; 0x04 |
54ce: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
54d2: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
54d6: fb 01 movw r30, r22 |
54d8: 70 93 63 02 sts 0x0263, r23 |
54dc: 60 93 62 02 sts 0x0262, r22 |
54e0: 8b 01 movw r16, r22 |
54e2: 22 27 eor r18, r18 |
54e4: 17 fd sbrc r17, 7 |
54e6: 20 95 com r18 |
54e8: 32 2f mov r19, r18 |
54ea: 80 91 46 02 lds r24, 0x0246 |
54ee: 90 91 47 02 lds r25, 0x0247 |
54f2: a0 91 48 02 lds r26, 0x0248 |
54f6: b0 91 49 02 lds r27, 0x0249 |
54fa: 08 0f add r16, r24 |
54fc: 19 1f adc r17, r25 |
54fe: 2a 1f adc r18, r26 |
5500: 3b 1f adc r19, r27 |
5502: 00 93 46 02 sts 0x0246, r16 |
5506: 10 93 47 02 sts 0x0247, r17 |
550a: 20 93 48 02 sts 0x0248, r18 |
550e: 30 93 49 02 sts 0x0249, r19 |
5512: 10 16 cp r1, r16 |
5514: 11 06 cpc r1, r17 |
5516: 12 06 cpc r1, r18 |
5518: 13 06 cpc r1, r19 |
551a: ac f4 brge .+42 ; 0x5546 <MotorRegler+0x10d8> |
551c: c8 01 movw r24, r16 |
551e: 17 ff sbrs r17, 7 |
5520: 03 c0 rjmp .+6 ; 0x5528 <MotorRegler+0x10ba> |
5522: 90 95 com r25 |
5524: 81 95 neg r24 |
5526: 9f 4f sbci r25, 0xFF ; 255 |
5528: 60 e0 ldi r22, 0x00 ; 0 |
552a: 71 e0 ldi r23, 0x01 ; 1 |
552c: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
5530: 6f 5f subi r22, 0xFF ; 255 |
5532: 7f 4f sbci r23, 0xFF ; 255 |
5534: 88 27 eor r24, r24 |
5536: 77 fd sbrc r23, 7 |
5538: 80 95 com r24 |
553a: 98 2f mov r25, r24 |
553c: 06 1b sub r16, r22 |
553e: 17 0b sbc r17, r23 |
5540: 28 0b sbc r18, r24 |
5542: 39 0b sbc r19, r25 |
5544: 14 c0 rjmp .+40 ; 0x556e <MotorRegler+0x1100> |
5546: c8 01 movw r24, r16 |
5548: 17 ff sbrs r17, 7 |
554a: 03 c0 rjmp .+6 ; 0x5552 <MotorRegler+0x10e4> |
554c: 90 95 com r25 |
554e: 81 95 neg r24 |
5550: 9f 4f sbci r25, 0xFF ; 255 |
5552: 60 e0 ldi r22, 0x00 ; 0 |
5554: 71 e0 ldi r23, 0x01 ; 1 |
5556: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
555a: 6f 5f subi r22, 0xFF ; 255 |
555c: 7f 4f sbci r23, 0xFF ; 255 |
555e: 88 27 eor r24, r24 |
5560: 77 fd sbrc r23, 7 |
5562: 80 95 com r24 |
5564: 98 2f mov r25, r24 |
5566: 06 0f add r16, r22 |
5568: 17 1f adc r17, r23 |
556a: 28 1f adc r18, r24 |
556c: 39 1f adc r19, r25 |
556e: 00 93 46 02 sts 0x0246, r16 |
5572: 10 93 47 02 sts 0x0247, r17 |
5576: 20 93 48 02 sts 0x0248, r18 |
557a: 30 93 49 02 sts 0x0249, r19 |
557e: 80 91 46 02 lds r24, 0x0246 |
5582: 90 91 47 02 lds r25, 0x0247 |
5586: a0 91 48 02 lds r26, 0x0248 |
558a: b0 91 49 02 lds r27, 0x0249 |
558e: 81 38 cpi r24, 0x81 ; 129 |
5590: 7e e3 ldi r23, 0x3E ; 62 |
5592: 97 07 cpc r25, r23 |
5594: 70 e0 ldi r23, 0x00 ; 0 |
5596: a7 07 cpc r26, r23 |
5598: 70 e0 ldi r23, 0x00 ; 0 |
559a: b7 07 cpc r27, r23 |
559c: 2c f0 brlt .+10 ; 0x55a8 <MotorRegler+0x113a> |
559e: 80 e8 ldi r24, 0x80 ; 128 |
55a0: 9e e3 ldi r25, 0x3E ; 62 |
55a2: a0 e0 ldi r26, 0x00 ; 0 |
55a4: b0 e0 ldi r27, 0x00 ; 0 |
55a6: 09 c0 rjmp .+18 ; 0x55ba <MotorRegler+0x114c> |
55a8: 80 58 subi r24, 0x80 ; 128 |
55aa: 91 4c sbci r25, 0xC1 ; 193 |
55ac: af 4f sbci r26, 0xFF ; 255 |
55ae: bf 4f sbci r27, 0xFF ; 255 |
55b0: 64 f4 brge .+24 ; 0x55ca <MotorRegler+0x115c> |
55b2: 80 e8 ldi r24, 0x80 ; 128 |
55b4: 91 ec ldi r25, 0xC1 ; 193 |
55b6: af ef ldi r26, 0xFF ; 255 |
55b8: bf ef ldi r27, 0xFF ; 255 |
55ba: 80 93 46 02 sts 0x0246, r24 |
55be: 90 93 47 02 sts 0x0247, r25 |
55c2: a0 93 48 02 sts 0x0248, r26 |
55c6: b0 93 49 02 sts 0x0249, r27 |
55ca: 80 90 7c 01 lds r8, 0x017C |
55ce: 90 90 7d 01 lds r9, 0x017D |
55d2: a0 90 7e 01 lds r10, 0x017E |
55d6: b0 90 7f 01 lds r11, 0x017F |
55da: bf 01 movw r22, r30 |
55dc: 88 27 eor r24, r24 |
55de: 77 fd sbrc r23, 7 |
55e0: 80 95 com r24 |
55e2: 98 2f mov r25, r24 |
55e4: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
55e8: 7b 01 movw r14, r22 |
55ea: 8c 01 movw r16, r24 |
55ec: 60 91 46 02 lds r22, 0x0246 |
55f0: 70 91 47 02 lds r23, 0x0247 |
55f4: 80 91 48 02 lds r24, 0x0248 |
55f8: 90 91 49 02 lds r25, 0x0249 |
55fc: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
5600: 9b 01 movw r18, r22 |
5602: ac 01 movw r20, r24 |
5604: c5 01 movw r24, r10 |
5606: b4 01 movw r22, r8 |
5608: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
560c: 9b 01 movw r18, r22 |
560e: ac 01 movw r20, r24 |
5610: c8 01 movw r24, r16 |
5612: b7 01 movw r22, r14 |
5614: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
5618: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
561c: 96 01 movw r18, r12 |
561e: 26 0f add r18, r22 |
5620: 37 1f adc r19, r23 |
5622: 24 0d add r18, r4 |
5624: 35 1d adc r19, r5 |
5626: 66 24 eor r6, r6 |
5628: 4a e0 ldi r20, 0x0A ; 10 |
562a: 44 16 cp r4, r20 |
562c: 51 04 cpc r5, r1 |
562e: 14 f4 brge .+4 ; 0x5634 <MotorRegler+0x11c6> |
5630: a1 e0 ldi r26, 0x01 ; 1 |
5632: 6a 2e mov r6, r26 |
5634: 37 fd sbrc r19, 7 |
5636: 02 c0 rjmp .+4 ; 0x563c <MotorRegler+0x11ce> |
5638: 66 20 and r6, r6 |
563a: 19 f0 breq .+6 ; 0x5642 <MotorRegler+0x11d4> |
563c: 40 e0 ldi r20, 0x00 ; 0 |
563e: 50 e0 ldi r21, 0x00 ; 0 |
5640: 08 c0 rjmp .+16 ; 0x5652 <MotorRegler+0x11e4> |
5642: 80 91 23 05 lds r24, 0x0523 |
5646: 48 2f mov r20, r24 |
5648: 55 27 eor r21, r21 |
564a: 24 17 cp r18, r20 |
564c: 35 07 cpc r19, r21 |
564e: 0c f4 brge .+2 ; 0x5652 <MotorRegler+0x11e4> |
5650: a9 01 movw r20, r18 |
5652: 80 91 12 05 lds r24, 0x0512 |
5656: 28 2e mov r2, r24 |
5658: 33 24 eor r3, r3 |
565a: 91 01 movw r18, r2 |
565c: 24 16 cp r2, r20 |
565e: 35 06 cpc r3, r21 |
5660: 0c f4 brge .+2 ; 0x5664 <MotorRegler+0x11f6> |
5662: 9a 01 movw r18, r20 |
5664: 20 93 60 02 sts 0x0260, r18 |
5668: c2 01 movw r24, r4 |
566a: 86 1b sub r24, r22 |
566c: 97 0b sbc r25, r23 |
566e: bc 01 movw r22, r24 |
5670: 6c 0d add r22, r12 |
5672: 7d 1d adc r23, r13 |
5674: 77 fd sbrc r23, 7 |
5676: 02 c0 rjmp .+4 ; 0x567c <MotorRegler+0x120e> |
5678: 66 20 and r6, r6 |
567a: 19 f0 breq .+6 ; 0x5682 <MotorRegler+0x1214> |
567c: 80 e0 ldi r24, 0x00 ; 0 |
567e: 90 e0 ldi r25, 0x00 ; 0 |
5680: 07 c0 rjmp .+14 ; 0x5690 <MotorRegler+0x1222> |
5682: 80 91 23 05 lds r24, 0x0523 |
5686: 99 27 eor r25, r25 |
5688: 68 17 cp r22, r24 |
568a: 79 07 cpc r23, r25 |
568c: 0c f4 brge .+2 ; 0x5690 <MotorRegler+0x1222> |
568e: cb 01 movw r24, r22 |
5690: 91 01 movw r18, r2 |
5692: 28 16 cp r2, r24 |
5694: 39 06 cpc r3, r25 |
5696: 0c f4 brge .+2 ; 0x569a <MotorRegler+0x122c> |
5698: 9c 01 movw r18, r24 |
569a: 20 93 61 02 sts 0x0261, r18 |
569e: 20 91 1b 02 lds r18, 0x021B |
56a2: 30 91 1c 02 lds r19, 0x021C |
56a6: 80 91 4c 02 lds r24, 0x024C |
56aa: 90 91 4d 02 lds r25, 0x024D |
56ae: 28 1b sub r18, r24 |
56b0: 39 0b sbc r19, r25 |
56b2: 60 91 0e 05 lds r22, 0x050E |
56b6: 70 91 0f 05 lds r23, 0x050F |
56ba: 62 1b sub r22, r18 |
56bc: 73 0b sbc r23, r19 |
56be: 88 27 eor r24, r24 |
56c0: 77 fd sbrc r23, 7 |
56c2: 80 95 com r24 |
56c4: 98 2f mov r25, r24 |
56c6: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
56ca: 9b 01 movw r18, r22 |
56cc: ac 01 movw r20, r24 |
56ce: 69 81 ldd r22, Y+1 ; 0x01 |
56d0: 7a 81 ldd r23, Y+2 ; 0x02 |
56d2: 8b 81 ldd r24, Y+3 ; 0x03 |
56d4: 9c 81 ldd r25, Y+4 ; 0x04 |
56d6: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
56da: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
56de: fb 01 movw r30, r22 |
56e0: 70 93 5f 02 sts 0x025F, r23 |
56e4: 60 93 5e 02 sts 0x025E, r22 |
56e8: 8b 01 movw r16, r22 |
56ea: 22 27 eor r18, r18 |
56ec: 17 fd sbrc r17, 7 |
56ee: 20 95 com r18 |
56f0: 32 2f mov r19, r18 |
56f2: 80 91 42 02 lds r24, 0x0242 |
56f6: 90 91 43 02 lds r25, 0x0243 |
56fa: a0 91 44 02 lds r26, 0x0244 |
56fe: b0 91 45 02 lds r27, 0x0245 |
5702: 08 0f add r16, r24 |
5704: 19 1f adc r17, r25 |
5706: 2a 1f adc r18, r26 |
5708: 3b 1f adc r19, r27 |
570a: 00 93 42 02 sts 0x0242, r16 |
570e: 10 93 43 02 sts 0x0243, r17 |
5712: 20 93 44 02 sts 0x0244, r18 |
5716: 30 93 45 02 sts 0x0245, r19 |
571a: 10 16 cp r1, r16 |
571c: 11 06 cpc r1, r17 |
571e: 12 06 cpc r1, r18 |
5720: 13 06 cpc r1, r19 |
5722: ac f4 brge .+42 ; 0x574e <MotorRegler+0x12e0> |
5724: c8 01 movw r24, r16 |
5726: 17 ff sbrs r17, 7 |
5728: 03 c0 rjmp .+6 ; 0x5730 <MotorRegler+0x12c2> |
572a: 90 95 com r25 |
572c: 81 95 neg r24 |
572e: 9f 4f sbci r25, 0xFF ; 255 |
5730: 60 e0 ldi r22, 0x00 ; 0 |
5732: 71 e0 ldi r23, 0x01 ; 1 |
5734: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
5738: 6f 5f subi r22, 0xFF ; 255 |
573a: 7f 4f sbci r23, 0xFF ; 255 |
573c: 88 27 eor r24, r24 |
573e: 77 fd sbrc r23, 7 |
5740: 80 95 com r24 |
5742: 98 2f mov r25, r24 |
5744: 06 1b sub r16, r22 |
5746: 17 0b sbc r17, r23 |
5748: 28 0b sbc r18, r24 |
574a: 39 0b sbc r19, r25 |
574c: 14 c0 rjmp .+40 ; 0x5776 <MotorRegler+0x1308> |
574e: c8 01 movw r24, r16 |
5750: 17 ff sbrs r17, 7 |
5752: 03 c0 rjmp .+6 ; 0x575a <MotorRegler+0x12ec> |
5754: 90 95 com r25 |
5756: 81 95 neg r24 |
5758: 9f 4f sbci r25, 0xFF ; 255 |
575a: 60 e0 ldi r22, 0x00 ; 0 |
575c: 71 e0 ldi r23, 0x01 ; 1 |
575e: 0e 94 16 2e call 0x5c2c ; 0x5c2c <__divmodhi4> |
5762: 6f 5f subi r22, 0xFF ; 255 |
5764: 7f 4f sbci r23, 0xFF ; 255 |
5766: 88 27 eor r24, r24 |
5768: 77 fd sbrc r23, 7 |
576a: 80 95 com r24 |
576c: 98 2f mov r25, r24 |
576e: 06 0f add r16, r22 |
5770: 17 1f adc r17, r23 |
5772: 28 1f adc r18, r24 |
5774: 39 1f adc r19, r25 |
5776: 00 93 42 02 sts 0x0242, r16 |
577a: 10 93 43 02 sts 0x0243, r17 |
577e: 20 93 44 02 sts 0x0244, r18 |
5782: 30 93 45 02 sts 0x0245, r19 |
5786: 80 91 42 02 lds r24, 0x0242 |
578a: 90 91 43 02 lds r25, 0x0243 |
578e: a0 91 44 02 lds r26, 0x0244 |
5792: b0 91 45 02 lds r27, 0x0245 |
5796: 81 38 cpi r24, 0x81 ; 129 |
5798: 2e e3 ldi r18, 0x3E ; 62 |
579a: 92 07 cpc r25, r18 |
579c: 20 e0 ldi r18, 0x00 ; 0 |
579e: a2 07 cpc r26, r18 |
57a0: 20 e0 ldi r18, 0x00 ; 0 |
57a2: b2 07 cpc r27, r18 |
57a4: 2c f0 brlt .+10 ; 0x57b0 <MotorRegler+0x1342> |
57a6: 80 e8 ldi r24, 0x80 ; 128 |
57a8: 9e e3 ldi r25, 0x3E ; 62 |
57aa: a0 e0 ldi r26, 0x00 ; 0 |
57ac: b0 e0 ldi r27, 0x00 ; 0 |
57ae: 09 c0 rjmp .+18 ; 0x57c2 <MotorRegler+0x1354> |
57b0: 80 58 subi r24, 0x80 ; 128 |
57b2: 91 4c sbci r25, 0xC1 ; 193 |
57b4: af 4f sbci r26, 0xFF ; 255 |
57b6: bf 4f sbci r27, 0xFF ; 255 |
57b8: 64 f4 brge .+24 ; 0x57d2 <MotorRegler+0x1364> |
57ba: 80 e8 ldi r24, 0x80 ; 128 |
57bc: 91 ec ldi r25, 0xC1 ; 193 |
57be: af ef ldi r26, 0xFF ; 255 |
57c0: bf ef ldi r27, 0xFF ; 255 |
57c2: 80 93 42 02 sts 0x0242, r24 |
57c6: 90 93 43 02 sts 0x0243, r25 |
57ca: a0 93 44 02 sts 0x0244, r26 |
57ce: b0 93 45 02 sts 0x0245, r27 |
57d2: bf 01 movw r22, r30 |
57d4: 88 27 eor r24, r24 |
57d6: 77 fd sbrc r23, 7 |
57d8: 80 95 com r24 |
57da: 98 2f mov r25, r24 |
57dc: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
57e0: 7b 01 movw r14, r22 |
57e2: 8c 01 movw r16, r24 |
57e4: 60 91 42 02 lds r22, 0x0242 |
57e8: 70 91 43 02 lds r23, 0x0243 |
57ec: 80 91 44 02 lds r24, 0x0244 |
57f0: 90 91 45 02 lds r25, 0x0245 |
57f4: 0e 94 21 2d call 0x5a42 ; 0x5a42 <__floatsisf> |
57f8: 9b 01 movw r18, r22 |
57fa: ac 01 movw r20, r24 |
57fc: c5 01 movw r24, r10 |
57fe: b4 01 movw r22, r8 |
5800: 0e 94 9b 2d call 0x5b36 ; 0x5b36 <__mulsf3> |
5804: 9b 01 movw r18, r22 |
5806: ac 01 movw r20, r24 |
5808: c8 01 movw r24, r16 |
580a: b7 01 movw r22, r14 |
580c: 0e 94 7c 2c call 0x58f8 ; 0x58f8 <__addsf3> |
5810: 0e 94 04 2d call 0x5a08 ; 0x5a08 <__fixsfsi> |
5814: 92 01 movw r18, r4 |
5816: 26 0f add r18, r22 |
5818: 37 1f adc r19, r23 |
581a: 2c 19 sub r18, r12 |
581c: 3d 09 sbc r19, r13 |
581e: 37 fd sbrc r19, 7 |
5820: 02 c0 rjmp .+4 ; 0x5826 <MotorRegler+0x13b8> |
5822: 66 20 and r6, r6 |
5824: 19 f0 breq .+6 ; 0x582c <MotorRegler+0x13be> |
5826: 40 e0 ldi r20, 0x00 ; 0 |
5828: 50 e0 ldi r21, 0x00 ; 0 |
582a: 08 c0 rjmp .+16 ; 0x583c <MotorRegler+0x13ce> |
582c: 80 91 23 05 lds r24, 0x0523 |
5830: 48 2f mov r20, r24 |
5832: 55 27 eor r21, r21 |
5834: 24 17 cp r18, r20 |
5836: 35 07 cpc r19, r21 |
5838: 0c f4 brge .+2 ; 0x583c <MotorRegler+0x13ce> |
583a: a9 01 movw r20, r18 |
583c: 91 01 movw r18, r2 |
583e: 24 16 cp r2, r20 |
5840: 35 06 cpc r3, r21 |
5842: 0c f4 brge .+2 ; 0x5846 <MotorRegler+0x13d8> |
5844: 9a 01 movw r18, r20 |
5846: 20 93 65 02 sts 0x0265, r18 |
584a: 46 1a sub r4, r22 |
584c: 57 0a sbc r5, r23 |
584e: b2 01 movw r22, r4 |
5850: 6c 19 sub r22, r12 |
5852: 7d 09 sbc r23, r13 |
5854: 77 fd sbrc r23, 7 |
5856: 02 c0 rjmp .+4 ; 0x585c <MotorRegler+0x13ee> |
5858: 66 20 and r6, r6 |
585a: 19 f0 breq .+6 ; 0x5862 <MotorRegler+0x13f4> |
585c: 20 e0 ldi r18, 0x00 ; 0 |
585e: 30 e0 ldi r19, 0x00 ; 0 |
5860: 08 c0 rjmp .+16 ; 0x5872 <MotorRegler+0x1404> |
5862: 80 91 23 05 lds r24, 0x0523 |
5866: 28 2f mov r18, r24 |
5868: 33 27 eor r19, r19 |
586a: 62 17 cp r22, r18 |
586c: 73 07 cpc r23, r19 |
586e: 0c f4 brge .+2 ; 0x5872 <MotorRegler+0x1404> |
5870: 9b 01 movw r18, r22 |
5872: c1 01 movw r24, r2 |
5874: 22 16 cp r2, r18 |
5876: 33 06 cpc r3, r19 |
5878: 0c f4 brge .+2 ; 0x587c <MotorRegler+0x140e> |
587a: c9 01 movw r24, r18 |
587c: 80 93 64 02 sts 0x0264, r24 |
5880: e2 e1 ldi r30, 0x12 ; 18 |
5882: ca 5f subi r28, 0xFA ; 250 |
5884: 0c 94 82 2e jmp 0x5d04 ; 0x5d04 <__epilogue_restores__> |
00005888 <GPS_Neutral>: |
5888: 80 91 4e 02 lds r24, 0x024E |
588c: 90 91 4f 02 lds r25, 0x024F |
5890: a0 91 50 02 lds r26, 0x0250 |
5894: b0 91 51 02 lds r27, 0x0251 |
5898: 80 93 56 02 sts 0x0256, r24 |
589c: 90 93 57 02 sts 0x0257, r25 |
58a0: a0 93 58 02 sts 0x0258, r26 |
58a4: b0 93 59 02 sts 0x0259, r27 |
58a8: 80 91 52 02 lds r24, 0x0252 |
58ac: 90 91 53 02 lds r25, 0x0253 |
58b0: a0 91 54 02 lds r26, 0x0254 |
58b4: b0 91 55 02 lds r27, 0x0255 |
58b8: 80 93 5a 02 sts 0x025A, r24 |
58bc: 90 93 5b 02 sts 0x025B, r25 |
58c0: a0 93 5c 02 sts 0x025C, r26 |
58c4: b0 93 5d 02 sts 0x025D, r27 |
58c8: 08 95 ret |
000058ca <GPS_BerechneZielrichtung>: |
58ca: 10 92 4b 02 sts 0x024B, r1 |
58ce: 10 92 4a 02 sts 0x024A, r1 |
58d2: 10 92 4d 02 sts 0x024D, r1 |
58d6: 10 92 4c 02 sts 0x024C, r1 |
58da: 08 95 ret |
000058dc <memchr>: |
58dc: fc 01 movw r30, r24 |
58de: 41 50 subi r20, 0x01 ; 1 |
58e0: 50 40 sbci r21, 0x00 ; 0 |
58e2: 30 f0 brcs .+12 ; 0x58f0 <memchr+0x14> |
58e4: 01 90 ld r0, Z+ |
58e6: 06 16 cp r0, r22 |
58e8: d1 f7 brne .-12 ; 0x58de <memchr+0x2> |
58ea: 31 97 sbiw r30, 0x01 ; 1 |
58ec: cf 01 movw r24, r30 |
58ee: 08 95 ret |
58f0: 88 27 eor r24, r24 |
58f2: 99 27 eor r25, r25 |
58f4: 08 95 ret |
000058f6 <__subsf3>: |
58f6: 50 58 subi r21, 0x80 ; 128 |
000058f8 <__addsf3>: |
58f8: 19 2e mov r1, r25 |
58fa: ef d0 rcall .+478 ; 0x5ada <__fp_split3> |
58fc: 01 d0 rcall .+2 ; 0x5900 <__addsf3x> |
58fe: d2 c0 rjmp .+420 ; 0x5aa4 <__fp_merge> |
00005900 <__addsf3x>: |
5900: ba 17 cp r27, r26 |
5902: 62 07 cpc r22, r18 |
5904: 73 07 cpc r23, r19 |
5906: 84 07 cpc r24, r20 |
5908: 95 07 cpc r25, r21 |
590a: b1 f1 breq .+108 ; 0x5978 <__addsf3x+0x78> |
590c: 88 f4 brcc .+34 ; 0x5930 <__addsf3x+0x30> |
590e: 0e f4 brtc .+2 ; 0x5912 <__addsf3x+0x12> |
5910: 10 94 com r1 |
5912: 0b 2e mov r0, r27 |
5914: ba 2f mov r27, r26 |
5916: a0 2d mov r26, r0 |
5918: 06 2e mov r0, r22 |
591a: 62 2f mov r22, r18 |
591c: 20 2d mov r18, r0 |
591e: 07 2e mov r0, r23 |
5920: 73 2f mov r23, r19 |
5922: 30 2d mov r19, r0 |
5924: 08 2e mov r0, r24 |
5926: 84 2f mov r24, r20 |
5928: 40 2d mov r20, r0 |
592a: 09 2e mov r0, r25 |
592c: 95 2f mov r25, r21 |
592e: 50 2d mov r21, r0 |
5930: ff 27 eor r31, r31 |
5932: 55 23 and r21, r21 |
5934: b9 f0 breq .+46 ; 0x5964 <__addsf3x+0x64> |
5936: 59 1b sub r21, r25 |
5938: 49 f0 breq .+18 ; 0x594c <__addsf3x+0x4c> |
593a: 57 3e cpi r21, 0xE7 ; 231 |
593c: 98 f0 brcs .+38 ; 0x5964 <__addsf3x+0x64> |
593e: 46 95 lsr r20 |
5940: 37 95 ror r19 |
5942: 27 95 ror r18 |
5944: a7 95 ror r26 |
5946: f0 40 sbci r31, 0x00 ; 0 |
5948: 53 95 inc r21 |
594a: c9 f7 brne .-14 ; 0x593e <__addsf3x+0x3e> |
594c: 76 f0 brts .+28 ; 0x596a <__addsf3x+0x6a> |
594e: ba 0f add r27, r26 |
5950: 62 1f adc r22, r18 |
5952: 73 1f adc r23, r19 |
5954: 84 1f adc r24, r20 |
5956: 30 f4 brcc .+12 ; 0x5964 <__addsf3x+0x64> |
5958: 87 95 ror r24 |
595a: 77 95 ror r23 |
595c: 67 95 ror r22 |
595e: b7 95 ror r27 |
5960: f0 40 sbci r31, 0x00 ; 0 |
5962: 93 95 inc r25 |
5964: 17 fa bst r1, 7 |
5966: 0f 2e mov r0, r31 |
5968: 08 95 ret |
596a: bf 1b sub r27, r31 |
596c: bb 27 eor r27, r27 |
596e: ba 0b sbc r27, r26 |
5970: 62 0b sbc r22, r18 |
5972: 73 0b sbc r23, r19 |
5974: 84 0b sbc r24, r20 |
5976: f6 cf rjmp .-20 ; 0x5964 <__addsf3x+0x64> |
5978: de f6 brtc .-74 ; 0x5930 <__addsf3x+0x30> |
597a: db c0 rjmp .+438 ; 0x5b32 <__fp_zerox> |
0000597c <__divsf3>: |
597c: ae d0 rcall .+348 ; 0x5ada <__fp_split3> |
597e: 01 d0 rcall .+2 ; 0x5982 <__divsf3x> |
5980: 91 c0 rjmp .+290 ; 0x5aa4 <__fp_merge> |
00005982 <__divsf3x>: |
5982: 55 23 and r21, r21 |
5984: 59 f0 breq .+22 ; 0x599c <__divsf3x+0x1a> |
5986: 99 23 and r25, r25 |
5988: 69 f0 breq .+26 ; 0x59a4 <__divsf3x+0x22> |
598a: 9f 57 subi r25, 0x7F ; 127 |
598c: 5f 57 subi r21, 0x7F ; 127 |
598e: 95 1b sub r25, r21 |
5990: 33 f4 brvc .+12 ; 0x599e <__divsf3x+0x1c> |
5992: 42 f4 brpl .+16 ; 0x59a4 <__divsf3x+0x22> |
5994: 90 38 cpi r25, 0x80 ; 128 |
5996: 11 f4 brne .+4 ; 0x599c <__divsf3x+0x1a> |
5998: 91 58 subi r25, 0x81 ; 129 |
599a: 05 c0 rjmp .+10 ; 0x59a6 <__divsf3x+0x24> |
599c: 9b c0 rjmp .+310 ; 0x5ad4 <__fp_nan> |
599e: 91 58 subi r25, 0x81 ; 129 |
59a0: 9f 3f cpi r25, 0xFF ; 255 |
59a2: 09 f4 brne .+2 ; 0x59a6 <__divsf3x+0x24> |
59a4: c6 c0 rjmp .+396 ; 0x5b32 <__fp_zerox> |
59a6: bb 27 eor r27, r27 |
59a8: 11 24 eor r1, r1 |
59aa: 62 17 cp r22, r18 |
59ac: 73 07 cpc r23, r19 |
59ae: 84 07 cpc r24, r20 |
59b0: 30 f4 brcc .+12 ; 0x59be <__divsf3x+0x3c> |
59b2: 66 0f add r22, r22 |
59b4: 77 1f adc r23, r23 |
59b6: 88 1f adc r24, r24 |
59b8: bb 1f adc r27, r27 |
59ba: 91 50 subi r25, 0x01 ; 1 |
59bc: 98 f3 brcs .-26 ; 0x59a4 <__divsf3x+0x22> |
59be: 11 d0 rcall .+34 ; 0x59e2 <__divsf3x+0x60> |
59c0: 0f 92 push r0 |
59c2: 0f d0 rcall .+30 ; 0x59e2 <__divsf3x+0x60> |
59c4: 0f 92 push r0 |
59c6: 0d d0 rcall .+26 ; 0x59e2 <__divsf3x+0x60> |
59c8: a0 e8 ldi r26, 0x80 ; 128 |
59ca: 26 17 cp r18, r22 |
59cc: 37 07 cpc r19, r23 |
59ce: 48 07 cpc r20, r24 |
59d0: 1b 06 cpc r1, r27 |
59d2: 09 f0 breq .+2 ; 0x59d6 <__divsf3x+0x54> |
59d4: a0 48 sbci r26, 0x80 ; 128 |
59d6: ba 2f mov r27, r26 |
59d8: 60 2d mov r22, r0 |
59da: 7f 91 pop r23 |
59dc: 8f 91 pop r24 |
59de: 00 24 eor r0, r0 |
59e0: 08 95 ret |
59e2: a0 e8 ldi r26, 0x80 ; 128 |
59e4: 00 24 eor r0, r0 |
59e6: 62 17 cp r22, r18 |
59e8: 73 07 cpc r23, r19 |
59ea: 84 07 cpc r24, r20 |
59ec: b1 05 cpc r27, r1 |
59ee: 28 f0 brcs .+10 ; 0x59fa <__divsf3x+0x78> |
59f0: 62 1b sub r22, r18 |
59f2: 73 0b sbc r23, r19 |
59f4: 84 0b sbc r24, r20 |
59f6: b1 09 sbc r27, r1 |
59f8: 0a 2a or r0, r26 |
59fa: 66 0f add r22, r22 |
59fc: 77 1f adc r23, r23 |
59fe: 88 1f adc r24, r24 |
5a00: bb 1f adc r27, r27 |
5a02: a6 95 lsr r26 |
5a04: 81 f7 brne .-32 ; 0x59e6 <__divsf3x+0x64> |
5a06: 08 95 ret |
00005a08 <__fixsfsi>: |
5a08: 97 fb bst r25, 7 |
5a0a: 73 d0 rcall .+230 ; 0x5af2 <__fp_split1> |
5a0c: 9f 37 cpi r25, 0x7F ; 127 |
5a0e: 38 f0 brcs .+14 ; 0x5a1e <__fixsfsi+0x16> |
5a10: fe e9 ldi r31, 0x9E ; 158 |
5a12: f9 1b sub r31, r25 |
5a14: 98 2f mov r25, r24 |
5a16: 87 2f mov r24, r23 |
5a18: 76 2f mov r23, r22 |
5a1a: 6b 2f mov r22, r27 |
5a1c: 05 c0 rjmp .+10 ; 0x5a28 <__fixsfsi+0x20> |
5a1e: 86 c0 rjmp .+268 ; 0x5b2c <__fp_zero> |
5a20: 96 95 lsr r25 |
5a22: 87 95 ror r24 |
5a24: 77 95 ror r23 |
5a26: 67 95 ror r22 |
5a28: f1 50 subi r31, 0x01 ; 1 |
5a2a: d0 f7 brcc .-12 ; 0x5a20 <__fixsfsi+0x18> |
5a2c: 3e f4 brtc .+14 ; 0x5a3c <__fp_lneg+0xe> |
00005a2e <__fp_lneg>: |
5a2e: 90 95 com r25 |
5a30: 80 95 com r24 |
5a32: 70 95 com r23 |
5a34: 61 95 neg r22 |
5a36: 7f 4f sbci r23, 0xFF ; 255 |
5a38: 8f 4f sbci r24, 0xFF ; 255 |
5a3a: 9f 4f sbci r25, 0xFF ; 255 |
5a3c: 08 95 ret |
00005a3e <__floatunssisf>: |
5a3e: e8 94 clt |
5a40: 03 c0 rjmp .+6 ; 0x5a48 <__floatsisf+0x6> |
00005a42 <__floatsisf>: |
5a42: 97 fb bst r25, 7 |
5a44: 0e f4 brtc .+2 ; 0x5a48 <__floatsisf+0x6> |
5a46: f3 df rcall .-26 ; 0x5a2e <__fp_lneg> |
5a48: b6 2f mov r27, r22 |
5a4a: 67 2f mov r22, r23 |
5a4c: 78 2f mov r23, r24 |
5a4e: 89 2f mov r24, r25 |
5a50: 9e e9 ldi r25, 0x9E ; 158 |
5a52: 00 24 eor r0, r0 |
5a54: 27 c0 rjmp .+78 ; 0x5aa4 <__fp_merge> |
00005a56 <__eqsf2>: |
5a56: 0e d0 rcall .+28 ; 0x5a74 <.fp_cmp> |
5a58: 5e f0 brts .+22 ; 0x5a70 <__cmpsf2+0xe> |
5a5a: 04 c0 rjmp .+8 ; 0x5a64 <__cmpsf2+0x2> |
00005a5c <__gesf2>: |
5a5c: 0b d0 rcall .+22 ; 0x5a74 <.fp_cmp> |
5a5e: 26 f0 brts .+8 ; 0x5a68 <__cmpsf2+0x6> |
5a60: 01 c0 rjmp .+2 ; 0x5a64 <__cmpsf2+0x2> |
00005a62 <__cmpsf2>: |
5a62: 08 d0 rcall .+16 ; 0x5a74 <.fp_cmp> |
5a64: 19 f0 breq .+6 ; 0x5a6c <__cmpsf2+0xa> |
5a66: 20 f4 brcc .+8 ; 0x5a70 <__cmpsf2+0xe> |
5a68: 8f ef ldi r24, 0xFF ; 255 |
5a6a: 08 95 ret |
5a6c: 80 e0 ldi r24, 0x00 ; 0 |
5a6e: 08 95 ret |
5a70: 81 e0 ldi r24, 0x01 ; 1 |
5a72: 08 95 ret |
00005a74 <.fp_cmp>: |
5a74: 97 fb bst r25, 7 |
5a76: 09 2e mov r0, r25 |
5a78: 05 26 eor r0, r21 |
5a7a: 00 f8 bld r0, 0 |
5a7c: 68 94 set |
5a7e: 30 d0 rcall .+96 ; 0x5ae0 <__fp_split2> |
5a80: e8 94 clt |
5a82: 07 fc sbrc r0, 7 |
5a84: 07 c0 rjmp .+14 ; 0x5a94 <.fp_cmp+0x20> |
5a86: 62 17 cp r22, r18 |
5a88: 73 07 cpc r23, r19 |
5a8a: 84 07 cpc r24, r20 |
5a8c: 95 07 cpc r25, r21 |
5a8e: 21 f0 breq .+8 ; 0x5a98 <.fp_cmp+0x24> |
5a90: 08 f4 brcc .+2 ; 0x5a94 <.fp_cmp+0x20> |
5a92: 00 94 com r0 |
5a94: 07 94 ror r0 |
5a96: 98 94 clz |
5a98: 08 95 ret |
5a9a: 9a 95 dec r25 |
5a9c: bb 0f add r27, r27 |
5a9e: 66 1f adc r22, r22 |
5aa0: 77 1f adc r23, r23 |
5aa2: 88 1f adc r24, r24 |
00005aa4 <__fp_merge>: |
5aa4: 11 24 eor r1, r1 |
5aa6: 99 23 and r25, r25 |
5aa8: a1 f0 breq .+40 ; 0x5ad2 <__fp_merge+0x2e> |
5aaa: 88 23 and r24, r24 |
5aac: b2 f7 brpl .-20 ; 0x5a9a <.fp_cmp+0x26> |
5aae: 9f 3f cpi r25, 0xFF ; 255 |
5ab0: 59 f0 breq .+22 ; 0x5ac8 <__fp_merge+0x24> |
5ab2: bb 0f add r27, r27 |
5ab4: 48 f4 brcc .+18 ; 0x5ac8 <__fp_merge+0x24> |
5ab6: 21 f4 brne .+8 ; 0x5ac0 <__fp_merge+0x1c> |
5ab8: 00 20 and r0, r0 |
5aba: 11 f4 brne .+4 ; 0x5ac0 <__fp_merge+0x1c> |
5abc: 60 ff sbrs r22, 0 |
5abe: 04 c0 rjmp .+8 ; 0x5ac8 <__fp_merge+0x24> |
5ac0: 6f 5f subi r22, 0xFF ; 255 |
5ac2: 7f 4f sbci r23, 0xFF ; 255 |
5ac4: 8f 4f sbci r24, 0xFF ; 255 |
5ac6: 9f 4f sbci r25, 0xFF ; 255 |
5ac8: 88 1f adc r24, r24 |
5aca: 97 95 ror r25 |
5acc: 87 95 ror r24 |
5ace: 97 f9 bld r25, 7 |
5ad0: 08 95 ret |
5ad2: 2c c0 rjmp .+88 ; 0x5b2c <__fp_zero> |
00005ad4 <__fp_nan>: |
5ad4: 9f ef ldi r25, 0xFF ; 255 |
5ad6: 80 ec ldi r24, 0xC0 ; 192 |
5ad8: 08 95 ret |
00005ada <__fp_split3>: |
5ada: 05 2e mov r0, r21 |
5adc: 09 26 eor r0, r25 |
5ade: 07 fa bst r0, 7 |
00005ae0 <__fp_split2>: |
5ae0: 44 0f add r20, r20 |
5ae2: 55 1f adc r21, r21 |
5ae4: 5f 3f cpi r21, 0xFF ; 255 |
5ae6: 79 f0 breq .+30 ; 0x5b06 <__fp_split1+0x14> |
5ae8: aa 27 eor r26, r26 |
5aea: a5 17 cp r26, r21 |
5aec: 08 f0 brcs .+2 ; 0x5af0 <__fp_split2+0x10> |
5aee: 51 e0 ldi r21, 0x01 ; 1 |
5af0: 47 95 ror r20 |
00005af2 <__fp_split1>: |
5af2: 88 0f add r24, r24 |
5af4: 99 1f adc r25, r25 |
5af6: 9f 3f cpi r25, 0xFF ; 255 |
5af8: 31 f0 breq .+12 ; 0x5b06 <__fp_split1+0x14> |
5afa: bb 27 eor r27, r27 |
5afc: b9 17 cp r27, r25 |
5afe: 08 f0 brcs .+2 ; 0x5b02 <__fp_split1+0x10> |
5b00: 91 e0 ldi r25, 0x01 ; 1 |
5b02: 87 95 ror r24 |
5b04: 08 95 ret |
5b06: 9f 91 pop r25 |
5b08: 9f 91 pop r25 |
5b0a: 11 24 eor r1, r1 |
5b0c: e3 cf rjmp .-58 ; 0x5ad4 <__fp_nan> |
00005b0e <__fp_split_a>: |
5b0e: 97 fb bst r25, 7 |
5b10: 88 0f add r24, r24 |
5b12: 99 1f adc r25, r25 |
5b14: 9f 3f cpi r25, 0xFF ; 255 |
5b16: 31 f0 breq .+12 ; 0x5b24 <__fp_split_a+0x16> |
5b18: bb 27 eor r27, r27 |
5b1a: b9 17 cp r27, r25 |
5b1c: 08 f0 brcs .+2 ; 0x5b20 <__fp_split_a+0x12> |
5b1e: 91 e0 ldi r25, 0x01 ; 1 |
5b20: 87 95 ror r24 |
5b22: 08 95 ret |
5b24: 9f 91 pop r25 |
5b26: 9f 91 pop r25 |
5b28: 11 24 eor r1, r1 |
5b2a: d4 cf rjmp .-88 ; 0x5ad4 <__fp_nan> |
00005b2c <__fp_zero>: |
5b2c: 66 27 eor r22, r22 |
5b2e: 77 27 eor r23, r23 |
5b30: 88 27 eor r24, r24 |
00005b32 <__fp_zerox>: |
5b32: 99 27 eor r25, r25 |
5b34: 08 95 ret |
00005b36 <__mulsf3>: |
5b36: d1 df rcall .-94 ; 0x5ada <__fp_split3> |
5b38: 01 d0 rcall .+2 ; 0x5b3c <__mulsf3x> |
5b3a: b4 cf rjmp .-152 ; 0x5aa4 <__fp_merge> |
00005b3c <__mulsf3x>: |
5b3c: 99 23 and r25, r25 |
5b3e: 39 f0 breq .+14 ; 0x5b4e <__mulsf3x+0x12> |
5b40: 55 23 and r21, r21 |
5b42: 29 f0 breq .+10 ; 0x5b4e <__mulsf3x+0x12> |
5b44: 9f 57 subi r25, 0x7F ; 127 |
5b46: 5f 57 subi r21, 0x7F ; 127 |
5b48: 95 0f add r25, r21 |
5b4a: 13 f4 brvc .+4 ; 0x5b50 <__mulsf3x+0x14> |
5b4c: 9a f1 brmi .+102 ; 0x5bb4 <__mulsf3x+0x78> |
5b4e: f1 cf rjmp .-30 ; 0x5b32 <__fp_zerox> |
5b50: 91 58 subi r25, 0x81 ; 129 |
5b52: 9f 3f cpi r25, 0xFF ; 255 |
5b54: e1 f3 breq .-8 ; 0x5b4e <__mulsf3x+0x12> |
5b56: 62 9f mul r22, r18 |
5b58: a1 2d mov r26, r1 |
5b5a: 0f 92 push r0 |
5b5c: bb 27 eor r27, r27 |
5b5e: 63 9f mul r22, r19 |
5b60: a0 0d add r26, r0 |
5b62: b1 1d adc r27, r1 |
5b64: ee 27 eor r30, r30 |
5b66: 72 9f mul r23, r18 |
5b68: a0 0d add r26, r0 |
5b6a: b1 1d adc r27, r1 |
5b6c: ee 1f adc r30, r30 |
5b6e: af 93 push r26 |
5b70: aa 27 eor r26, r26 |
5b72: 64 9f mul r22, r20 |
5b74: b0 0d add r27, r0 |
5b76: e1 1d adc r30, r1 |
5b78: 73 9f mul r23, r19 |
5b7a: b0 0d add r27, r0 |
5b7c: e1 1d adc r30, r1 |
5b7e: aa 1f adc r26, r26 |
5b80: 66 27 eor r22, r22 |
5b82: 82 9f mul r24, r18 |
5b84: b0 0d add r27, r0 |
5b86: e1 1d adc r30, r1 |
5b88: a6 1f adc r26, r22 |
5b8a: 55 27 eor r21, r21 |
5b8c: 74 9f mul r23, r20 |
5b8e: e0 0d add r30, r0 |
5b90: a1 1d adc r26, r1 |
5b92: 55 1f adc r21, r21 |
5b94: 83 9f mul r24, r19 |
5b96: e0 0d add r30, r0 |
5b98: a1 1d adc r26, r1 |
5b9a: 56 1f adc r21, r22 |
5b9c: 84 9f mul r24, r20 |
5b9e: a0 0d add r26, r0 |
5ba0: 51 1d adc r21, r1 |
5ba2: 85 2f mov r24, r21 |
5ba4: 7a 2f mov r23, r26 |
5ba6: 6e 2f mov r22, r30 |
5ba8: 1f 90 pop r1 |
5baa: 0f 90 pop r0 |
5bac: 88 23 and r24, r24 |
5bae: 1a f4 brpl .+6 ; 0x5bb6 <__mulsf3x+0x7a> |
5bb0: 93 95 inc r25 |
5bb2: 39 f4 brne .+14 ; 0x5bc2 <__mulsf3x+0x86> |
5bb4: 8f cf rjmp .-226 ; 0x5ad4 <__fp_nan> |
5bb6: 00 0c add r0, r0 |
5bb8: 11 1c adc r1, r1 |
5bba: bb 1f adc r27, r27 |
5bbc: 66 1f adc r22, r22 |
5bbe: 77 1f adc r23, r23 |
5bc0: 88 1f adc r24, r24 |
5bc2: 01 28 or r0, r1 |
5bc4: 08 95 ret |
00005bc6 <__mulsi3>: |
5bc6: 62 9f mul r22, r18 |
5bc8: d0 01 movw r26, r0 |
5bca: 73 9f mul r23, r19 |
5bcc: f0 01 movw r30, r0 |
5bce: 82 9f mul r24, r18 |
5bd0: e0 0d add r30, r0 |
5bd2: f1 1d adc r31, r1 |
5bd4: 64 9f mul r22, r20 |
5bd6: e0 0d add r30, r0 |
5bd8: f1 1d adc r31, r1 |
5bda: 92 9f mul r25, r18 |
5bdc: f0 0d add r31, r0 |
5bde: 83 9f mul r24, r19 |
5be0: f0 0d add r31, r0 |
5be2: 74 9f mul r23, r20 |
5be4: f0 0d add r31, r0 |
5be6: 65 9f mul r22, r21 |
5be8: f0 0d add r31, r0 |
5bea: 99 27 eor r25, r25 |
5bec: 72 9f mul r23, r18 |
5bee: b0 0d add r27, r0 |
5bf0: e1 1d adc r30, r1 |
5bf2: f9 1f adc r31, r25 |
5bf4: 63 9f mul r22, r19 |
5bf6: b0 0d add r27, r0 |
5bf8: e1 1d adc r30, r1 |
5bfa: f9 1f adc r31, r25 |
5bfc: bd 01 movw r22, r26 |
5bfe: cf 01 movw r24, r30 |
5c00: 11 24 eor r1, r1 |
5c02: 08 95 ret |
00005c04 <__udivmodhi4>: |
5c04: aa 1b sub r26, r26 |
5c06: bb 1b sub r27, r27 |
5c08: 51 e1 ldi r21, 0x11 ; 17 |
5c0a: 07 c0 rjmp .+14 ; 0x5c1a <__udivmodhi4_ep> |
00005c0c <__udivmodhi4_loop>: |
5c0c: aa 1f adc r26, r26 |
5c0e: bb 1f adc r27, r27 |
5c10: a6 17 cp r26, r22 |
5c12: b7 07 cpc r27, r23 |
5c14: 10 f0 brcs .+4 ; 0x5c1a <__udivmodhi4_ep> |
5c16: a6 1b sub r26, r22 |
5c18: b7 0b sbc r27, r23 |
00005c1a <__udivmodhi4_ep>: |
5c1a: 88 1f adc r24, r24 |
5c1c: 99 1f adc r25, r25 |
5c1e: 5a 95 dec r21 |
5c20: a9 f7 brne .-22 ; 0x5c0c <__udivmodhi4_loop> |
5c22: 80 95 com r24 |
5c24: 90 95 com r25 |
5c26: bc 01 movw r22, r24 |
5c28: cd 01 movw r24, r26 |
5c2a: 08 95 ret |
00005c2c <__divmodhi4>: |
5c2c: 97 fb bst r25, 7 |
5c2e: 09 2e mov r0, r25 |
5c30: 07 26 eor r0, r23 |
5c32: 0a d0 rcall .+20 ; 0x5c48 <__divmodhi4_neg1> |
5c34: 77 fd sbrc r23, 7 |
5c36: 04 d0 rcall .+8 ; 0x5c40 <__divmodhi4_neg2> |
5c38: e5 df rcall .-54 ; 0x5c04 <__udivmodhi4> |
5c3a: 06 d0 rcall .+12 ; 0x5c48 <__divmodhi4_neg1> |
5c3c: 00 20 and r0, r0 |
5c3e: 1a f4 brpl .+6 ; 0x5c46 <__divmodhi4_exit> |
00005c40 <__divmodhi4_neg2>: |
5c40: 70 95 com r23 |
5c42: 61 95 neg r22 |
5c44: 7f 4f sbci r23, 0xFF ; 255 |
00005c46 <__divmodhi4_exit>: |
5c46: 08 95 ret |
00005c48 <__divmodhi4_neg1>: |
5c48: f6 f7 brtc .-4 ; 0x5c46 <__divmodhi4_exit> |
5c4a: 90 95 com r25 |
5c4c: 81 95 neg r24 |
5c4e: 9f 4f sbci r25, 0xFF ; 255 |
5c50: 08 95 ret |
00005c52 <__udivmodsi4>: |
5c52: a1 e2 ldi r26, 0x21 ; 33 |
5c54: 1a 2e mov r1, r26 |
5c56: aa 1b sub r26, r26 |
5c58: bb 1b sub r27, r27 |
5c5a: fd 01 movw r30, r26 |
5c5c: 0d c0 rjmp .+26 ; 0x5c78 <__udivmodsi4_ep> |
00005c5e <__udivmodsi4_loop>: |
5c5e: aa 1f adc r26, r26 |
5c60: bb 1f adc r27, r27 |
5c62: ee 1f adc r30, r30 |
5c64: ff 1f adc r31, r31 |
5c66: a2 17 cp r26, r18 |
5c68: b3 07 cpc r27, r19 |
5c6a: e4 07 cpc r30, r20 |
5c6c: f5 07 cpc r31, r21 |
5c6e: 20 f0 brcs .+8 ; 0x5c78 <__udivmodsi4_ep> |
5c70: a2 1b sub r26, r18 |
5c72: b3 0b sbc r27, r19 |
5c74: e4 0b sbc r30, r20 |
5c76: f5 0b sbc r31, r21 |
00005c78 <__udivmodsi4_ep>: |
5c78: 66 1f adc r22, r22 |
5c7a: 77 1f adc r23, r23 |
5c7c: 88 1f adc r24, r24 |
5c7e: 99 1f adc r25, r25 |
5c80: 1a 94 dec r1 |
5c82: 69 f7 brne .-38 ; 0x5c5e <__udivmodsi4_loop> |
5c84: 60 95 com r22 |
5c86: 70 95 com r23 |
5c88: 80 95 com r24 |
5c8a: 90 95 com r25 |
5c8c: 9b 01 movw r18, r22 |
5c8e: ac 01 movw r20, r24 |
5c90: bd 01 movw r22, r26 |
5c92: cf 01 movw r24, r30 |
5c94: 08 95 ret |
00005c96 <__divmodsi4>: |
5c96: 97 fb bst r25, 7 |
5c98: 09 2e mov r0, r25 |
5c9a: 05 26 eor r0, r21 |
5c9c: 0e d0 rcall .+28 ; 0x5cba <__divmodsi4_neg1> |
5c9e: 57 fd sbrc r21, 7 |
5ca0: 04 d0 rcall .+8 ; 0x5caa <__divmodsi4_neg2> |
5ca2: d7 df rcall .-82 ; 0x5c52 <__udivmodsi4> |
5ca4: 0a d0 rcall .+20 ; 0x5cba <__divmodsi4_neg1> |
5ca6: 00 1c adc r0, r0 |
5ca8: 38 f4 brcc .+14 ; 0x5cb8 <__divmodsi4_exit> |
00005caa <__divmodsi4_neg2>: |
5caa: 50 95 com r21 |
5cac: 40 95 com r20 |
5cae: 30 95 com r19 |
5cb0: 21 95 neg r18 |
5cb2: 3f 4f sbci r19, 0xFF ; 255 |
5cb4: 4f 4f sbci r20, 0xFF ; 255 |
5cb6: 5f 4f sbci r21, 0xFF ; 255 |
00005cb8 <__divmodsi4_exit>: |
5cb8: 08 95 ret |
00005cba <__divmodsi4_neg1>: |
5cba: f6 f7 brtc .-4 ; 0x5cb8 <__divmodsi4_exit> |
5cbc: 90 95 com r25 |
5cbe: 80 95 com r24 |
5cc0: 70 95 com r23 |
5cc2: 61 95 neg r22 |
5cc4: 7f 4f sbci r23, 0xFF ; 255 |
5cc6: 8f 4f sbci r24, 0xFF ; 255 |
5cc8: 9f 4f sbci r25, 0xFF ; 255 |
5cca: 08 95 ret |
00005ccc <__prologue_saves__>: |
5ccc: 2f 92 push r2 |
5cce: 3f 92 push r3 |
5cd0: 4f 92 push r4 |
5cd2: 5f 92 push r5 |
5cd4: 6f 92 push r6 |
5cd6: 7f 92 push r7 |
5cd8: 8f 92 push r8 |
5cda: 9f 92 push r9 |
5cdc: af 92 push r10 |
5cde: bf 92 push r11 |
5ce0: cf 92 push r12 |
5ce2: df 92 push r13 |
5ce4: ef 92 push r14 |
5ce6: ff 92 push r15 |
5ce8: 0f 93 push r16 |
5cea: 1f 93 push r17 |
5cec: cf 93 push r28 |
5cee: df 93 push r29 |
5cf0: cd b7 in r28, 0x3d ; 61 |
5cf2: de b7 in r29, 0x3e ; 62 |
5cf4: ca 1b sub r28, r26 |
5cf6: db 0b sbc r29, r27 |
5cf8: 0f b6 in r0, 0x3f ; 63 |
5cfa: f8 94 cli |
5cfc: de bf out 0x3e, r29 ; 62 |
5cfe: 0f be out 0x3f, r0 ; 63 |
5d00: cd bf out 0x3d, r28 ; 61 |
5d02: 09 94 ijmp |
00005d04 <__epilogue_restores__>: |
5d04: 2a 88 ldd r2, Y+18 ; 0x12 |
5d06: 39 88 ldd r3, Y+17 ; 0x11 |
5d08: 48 88 ldd r4, Y+16 ; 0x10 |
5d0a: 5f 84 ldd r5, Y+15 ; 0x0f |
5d0c: 6e 84 ldd r6, Y+14 ; 0x0e |
5d0e: 7d 84 ldd r7, Y+13 ; 0x0d |
5d10: 8c 84 ldd r8, Y+12 ; 0x0c |
5d12: 9b 84 ldd r9, Y+11 ; 0x0b |
5d14: aa 84 ldd r10, Y+10 ; 0x0a |
5d16: b9 84 ldd r11, Y+9 ; 0x09 |
5d18: c8 84 ldd r12, Y+8 ; 0x08 |
5d1a: df 80 ldd r13, Y+7 ; 0x07 |
5d1c: ee 80 ldd r14, Y+6 ; 0x06 |
5d1e: fd 80 ldd r15, Y+5 ; 0x05 |
5d20: 0c 81 ldd r16, Y+4 ; 0x04 |
5d22: 1b 81 ldd r17, Y+3 ; 0x03 |
5d24: aa 81 ldd r26, Y+2 ; 0x02 |
5d26: b9 81 ldd r27, Y+1 ; 0x01 |
5d28: ce 0f add r28, r30 |
5d2a: d1 1d adc r29, r1 |
5d2c: 0f b6 in r0, 0x3f ; 63 |
5d2e: f8 94 cli |
5d30: de bf out 0x3e, r29 ; 62 |
5d32: 0f be out 0x3f, r0 ; 63 |
5d34: cd bf out 0x3d, r28 ; 61 |
5d36: ed 01 movw r28, r26 |
5d38: 08 95 ret |
00005d3a <__tablejump2__>: |
5d3a: ee 0f add r30, r30 |
5d3c: ff 1f adc r31, r31 |
00005d3e <__tablejump__>: |
5d3e: 05 90 lpm r0, Z+ |
5d40: f4 91 lpm r31, Z |
5d42: e0 2d mov r30, r0 |
5d44: 09 94 ijmp |
00005d46 <__eeprom_read_byte_1F2021>: |
5d46: f9 99 sbic 0x1f, 1 ; 31 |
5d48: fe cf rjmp .-4 ; 0x5d46 <__eeprom_read_byte_1F2021> |
5d4a: b2 bd out 0x22, r27 ; 34 |
5d4c: a1 bd out 0x21, r26 ; 33 |
5d4e: f8 9a sbi 0x1f, 0 ; 31 |
5d50: 11 96 adiw r26, 0x01 ; 1 |
5d52: 00 b4 in r0, 0x20 ; 32 |
5d54: 08 95 ret |
00005d56 <__eeprom_read_block_1F2021>: |
5d56: f7 df rcall .-18 ; 0x5d46 <__eeprom_read_byte_1F2021> |
5d58: 01 92 st Z+, r0 |
5d5a: 1a 94 dec r1 |
5d5c: e1 f7 brne .-8 ; 0x5d56 <__eeprom_read_block_1F2021> |
5d5e: 08 95 ret |
00005d60 <__eeprom_write_byte_1F2021>: |
5d60: f9 99 sbic 0x1f, 1 ; 31 |
5d62: fe cf rjmp .-4 ; 0x5d60 <__eeprom_write_byte_1F2021> |
5d64: b2 bd out 0x22, r27 ; 34 |
5d66: a1 bd out 0x21, r26 ; 33 |
5d68: 00 bc out 0x20, r0 ; 32 |
5d6a: 11 96 adiw r26, 0x01 ; 1 |
5d6c: 0f b6 in r0, 0x3f ; 63 |
5d6e: f8 94 cli |
5d70: fa 9a sbi 0x1f, 2 ; 31 |
5d72: f9 9a sbi 0x1f, 1 ; 31 |
5d74: 0f be out 0x3f, r0 ; 63 |
5d76: 08 95 ret |
00005d78 <__eeprom_write_block_1F2021>: |
5d78: 01 90 ld r0, Z+ |
5d7a: f2 df rcall .-28 ; 0x5d60 <__eeprom_write_byte_1F2021> |
5d7c: 1a 94 dec r1 |
5d7e: e1 f7 brne .-8 ; 0x5d78 <__eeprom_write_block_1F2021> |
5d80: 08 95 ret |
00005d82 <_exit>: |
5d82: ff cf rjmp .-2 ; 0x5d82 <_exit> |
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.map |
---|
0,0 → 1,1613 |
Archive member included because of file (symbol) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
analog.o (__subsf3) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
fc.o (__divsf3) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) (__divsf3x) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
analog.o (__fixsfsi) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
analog.o (__floatsisf) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
analog.o (__ltsf2) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_merge) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) (__fp_nanx) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_split3) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) (__fp_zero) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
compass.o (__mulsf3) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) (__mulsf3x) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
timer0.o (__mulsi3) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
analog.o (__udivmodhi4) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
analog.o (__divmodhi4) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
printf_P.o (__udivmodsi4) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
timer0.o (__divmodsi4) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o) |
uart.o (__prologue_saves__) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o) |
uart.o (__epilogue_restores__) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o (exit) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
uart.o (__tablejump2__) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
main.o (__do_copy_data) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
main.o (__do_clear_bss) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o) |
printf_P.o (memchr) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
main.o (__eeprom_read_byte_1F2021) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
compass.o (__eeprom_read_block_1F2021) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
main.o (__eeprom_write_byte_1F2021) |
c:/winavr/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 0x9 compass.o |
PPM_in 0x16 rc.o |
IntegralFaktor 0x4 fc.o |
Motor_Rechts 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 0xa 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/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/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a |
LOAD c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a |
LOAD c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a |
LOAD c:/winavr/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 0x5d84 |
*(.vectors) |
.vectors 0x00000000 0x70 c:/winavr/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 0x1a menu.o |
*(.progmem*) |
.progmem.data 0x000000c2 0xf9 main.o |
.progmem.data 0x000001bb 0x2 analog.o |
.progmem.data 0x000001bd 0x2dd menu.o |
.progmem.data 0x0000049a 0x27a math.o |
0x000005a8 pgm_sinus_f |
0x0000049a pgm_atan |
0x00000714 . = ALIGN (0x2) |
0x00000714 __trampolines_start = . |
*(.trampolines) |
.trampolines 0x00000714 0x0 linker stubs |
*(.trampolines*) |
0x00000714 __trampolines_end = . |
*(.jumptables) |
*(.jumptables*) |
*(.lowtext) |
*(.lowtext*) |
0x00000714 __ctors_start = . |
*(.ctors) |
0x00000714 __ctors_end = . |
0x00000714 __dtors_start = . |
*(.dtors) |
0x00000714 __dtors_end = . |
SORT(*)(.ctors) |
SORT(*)(.dtors) |
*(.init0) |
.init0 0x00000714 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
0x00000714 __init |
*(.init0) |
*(.init1) |
*(.init1) |
*(.init2) |
.init2 0x00000714 0xc c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
*(.init2) |
*(.init3) |
*(.init3) |
*(.init4) |
.init4 0x00000720 0x16 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
0x00000720 __do_copy_data |
.init4 0x00000736 0x10 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
0x00000736 __do_clear_bss |
*(.init4) |
*(.init5) |
*(.init5) |
*(.init6) |
*(.init6) |
*(.init7) |
*(.init7) |
*(.init8) |
*(.init8) |
*(.init9) |
.init9 0x00000746 0x8 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
*(.init9) |
*(.text) |
.text 0x0000074e 0x4 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
0x0000074e __vector_1 |
0x0000074e __bad_interrupt |
0x0000074e __vector_6 |
0x0000074e __vector_3 |
0x0000074e __vector_23 |
0x0000074e __vector_25 |
0x0000074e __vector_11 |
0x0000074e __vector_13 |
0x0000074e __vector_17 |
0x0000074e __vector_7 |
0x0000074e __vector_27 |
0x0000074e __vector_5 |
0x0000074e __vector_4 |
0x0000074e __vector_2 |
0x0000074e __vector_21 |
0x0000074e __vector_15 |
0x0000074e __vector_8 |
0x0000074e __vector_14 |
0x0000074e __vector_10 |
0x0000074e __vector_16 |
.text 0x00000752 0x3da main.o |
0x00000760 WriteParameterSet |
0x00000794 ReadParameterSet |
0x000007be main |
0x00000752 GetActiveParamSetNumber |
.text 0x00000b2c 0x65a uart.o |
0x00000b2c __vector_22 |
0x00000f36 WriteProgramData |
0x00000f38 UART_Init |
0x0000104a BearbeiteRxDaten |
0x00000d3c AddCRC |
0x00000f6e DatenUebertragung |
0x00000e64 Decode64 |
0x00000d98 SendOutData |
0x00000b98 __vector_20 |
0x00000f14 uart_putchar |
.text 0x00001186 0x5a4 printf_P.o |
0x00001186 Putchar |
0x00001238 _printf_P |
0x000011b8 PAD_0 |
0x000011e4 PRINTP |
0x00001210 PRINT |
0x000011ce PAD_SP |
.text 0x0000172a 0x290 timer0.o |
0x00001764 SetDelay |
0x0000172a Timer_Init |
0x00001776 CheckDelay |
0x00001996 Delay_ms |
0x0000178e __vector_9 |
0x000018d4 __vector_18 |
.text 0x000019ba 0x6c0 analog.o |
0x000019c6 __vector_24 |
0x000019ba ADC_Init |
0x00001ff2 SucheLuftruckOffset |
.text 0x0000207a 0x848 menu.o |
0x0000207a LcdClear |
0x0000208c Menu |
.text 0x000028c2 0x580 compass.o |
0x00002c2a timer0_MM3 |
0x00002c8e calib_MM3 |
0x000028c2 __vector_19 |
0x0000295e heading_MM3 |
0x00002e1a init_MM3 |
.text 0x00002e42 0x220 math.o |
0x00002e42 atan2_i |
0x00003052 cos_f |
0x00002f7e pgm_read_float |
0x00002f92 sin_f |
.text 0x00003062 0x134 twimaster.o |
0x0000308a i2c_receive_byte |
0x00003092 i2c_receive_last_byte |
0x0000306e i2c_start |
0x00003076 i2c_stop |
0x00003062 i2c_init |
0x0000309a __vector_26 |
0x0000307e i2c_write_byte |
.text 0x00003196 0x168 rc.o |
0x000031c0 __vector_12 |
0x00003196 rc_sum_init |
.text 0x000032fe 0x258a fc.o |
0x00004068 DefaultKonstanten1 |
0x0000414a SendMotorData |
0x000032fe Mittelwert |
0x00004444 Piep |
0x000037bc CalibrierMittelwert |
0x000041d8 SetNeutral |
0x0000437c calib_acc |
0x00003f8e DefaultKonstanten2 |
0x00003af4 ParameterZuordnung |
0x0000446e MotorRegler |
.text 0x00005888 0x54 GPS.o |
0x00005888 GPS_Neutral |
0x000058ca GPS_BerechneZielrichtung |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
.text 0x000058dc 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
.text 0x000058dc 0x1a c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o) |
0x000058dc memchr |
.text 0x000058f6 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
.text 0x000058f6 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
.text 0x000058f6 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
.text 0x000058f6 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o) |
0x000058f6 . = ALIGN (0x2) |
*(.text.*) |
.text.fplib 0x000058f6 0xa c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
0x000058f6 __subsf3 |
0x000058f8 __addsf3 |
.text.fplib 0x00005900 0x7c c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
0x00005900 __addsf3x |
.text.fplib 0x0000597c 0x6 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
0x0000597c __divsf3 |
.text.fplib 0x00005982 0x86 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
0x00005982 __divsf3x |
.text.fplib 0x00005a08 0x36 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
0x00005a08 __fixsfsi |
0x00005a2e __fp_lneg |
0x00005a08 __fixunssfsi |
.text.fplib 0x00005a3e 0x18 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
0x00005a42 __floatsisf |
0x00005a3e __floatunssisf |
.text.fplib 0x00005a56 0x44 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
0x00005a56 __lesf2 |
0x00005a56 __nesf2 |
0x00005a5c __gtsf2 |
0x00005a56 __eqsf2 |
0x00005a62 __cmpsf2 |
0x00005a56 __ltsf2 |
0x00005a5c __gesf2 |
.text.fplib 0x00005a9a 0x3a c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
0x00005aa4 __fp_merge |
.text.fplib 0x00005ad4 0x6 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
0x00005ad4 __fp_nanERANGE |
0x00005ad4 __fp_nan |
0x00005ad4 __fp_nanEDOM |
0x00005ad4 __fp_nanx |
.text.fplib 0x00005ada 0x52 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
0x00005ada __fp_split3 |
0x00005ae0 __fp_split2 |
0x00005af2 __fp_split1 |
0x00005b0e __fp_split_a |
.text.fplib 0x00005b2c 0xa c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
0x00005b2c __fp_zero |
0x00005b32 __fp_zerox |
.text.fplib 0x00005b36 0x6 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
0x00005b36 __mulsf3 |
.text.fplib 0x00005b3c 0x8a c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
0x00005b3c __mulsf3x |
.text.libgcc 0x00005bc6 0x3e c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
0x00005bc6 __mulsi3 |
.text.libgcc 0x00005c04 0x28 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
0x00005c04 __udivmodhi4 |
.text.libgcc 0x00005c2c 0x26 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
0x00005c2c __divmodhi4 |
0x00005c2c _div |
.text.libgcc 0x00005c52 0x44 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
0x00005c52 __udivmodsi4 |
.text.libgcc 0x00005c96 0x36 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
0x00005c96 __divmodsi4 |
.text.libgcc 0x00005ccc 0x38 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o) |
0x00005ccc __prologue_saves__ |
.text.libgcc 0x00005d04 0x36 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o) |
0x00005d04 __epilogue_restores__ |
.text.libgcc 0x00005d3a 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
.text.libgcc 0x00005d3a 0xc c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
0x00005d3e __tablejump__ |
0x00005d3a __tablejump2__ |
.text.libgcc 0x00005d46 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
.text.libgcc 0x00005d46 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
.text.eeprom 0x00005d46 0x10 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
0x00005d46 __eeprom_read_byte_1F2021 |
.text.eeprom 0x00005d56 0xa c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
0x00005d56 __eeprom_read_block_1F2021 |
.text.eeprom 0x00005d60 0x18 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
0x00005d60 __eeprom_write_byte_1F2021 |
.text.eeprom 0x00005d78 0xa c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o) |
0x00005d78 __eeprom_write_block_1F2021 |
0x00005d82 . = ALIGN (0x2) |
*(.fini9) |
.fini9 0x00005d82 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
0x00005d82 exit |
0x00005d82 _exit |
*(.fini9) |
*(.fini8) |
*(.fini8) |
*(.fini7) |
*(.fini7) |
*(.fini6) |
*(.fini6) |
*(.fini5) |
*(.fini5) |
*(.fini4) |
*(.fini4) |
*(.fini3) |
*(.fini3) |
*(.fini2) |
*(.fini2) |
*(.fini1) |
*(.fini1) |
*(.fini0) |
.fini0 0x00005d82 0x2 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
*(.fini0) |
0x00005d84 _etext = . |
.data 0x00800100 0x8c load address 0x00005d84 |
0x00800100 PROVIDE (__data_start, .) |
*(.data) |
.data 0x00800100 0x0 c:/winavr/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 0x2 timer0.o |
.data 0x00800104 0x8 analog.o |
0x00800104 UBat |
0x0080010a MessLuftdruck |
0x00800106 Luftdruck |
.data 0x0080010c 0x5b menu.o |
0x0080010c Array |
0x00800116 DisplayBuff |
.data 0x00800167 0x0 compass.o |
.data 0x00800167 0x0 math.o |
.data 0x00800167 0x0 twimaster.o |
.data 0x00800167 0x1 rc.o |
0x00800167 NewPpmData |
.data 0x00800168 0x23 fc.o |
0x0080017c Ki |
0x00800180 Parameter_Luftdruck_D |
0x00800184 Parameter_KompassWirkung |
0x00800189 Parameter_ServoNickControl |
0x00800185 Parameter_Gyro_P |
0x00800182 Parameter_Hoehe_P |
0x00800183 Parameter_Hoehe_ACC_Wirkung |
0x00800186 Parameter_Gyro_I |
0x00800181 Parameter_MaxHoehe |
0x00800188 Parameter_I_Faktor |
0x00800178 Kp |
0x00800187 Parameter_Gier_P |
.data 0x0080018b 0x0 GPS.o |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
.data 0x0080018b 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
.data 0x0080018b 0x0 c:/winavr/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) |
*fill* 0x0080018b 0x1 00 |
0x0080018c _edata = . |
0x0080018c PROVIDE (__data_end, .) |
.bss 0x0080018c 0x3a0 |
0x0080018c PROVIDE (__bss_start, .) |
*(.bss) |
.bss 0x0080018c 0x0 c:/winavr/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 0x8 timer0.o |
0x008001a6 beeptime |
0x008001a3 CountMilliseconds |
0x008001a5 UpdateMotor |
0x008001a8 ServoValue |
.bss 0x008001ab 0x18 analog.o |
0x008001bd HoeheD |
0x008001af AccumulateGier |
0x008001ba messanzahl_AccNick |
0x008001bc messanzahl_AccHoch |
0x008001ad AccumulateRoll |
0x008001bf ZaehlMessungen |
0x008001b5 accumulate_AccHoch |
0x008001bb messanzahl_AccRoll |
0x008001b1 accumulate_AccRoll |
0x008001b7 MessanzahlNick |
0x008001b9 MessanzahlGier |
0x008001b3 accumulate_AccNick |
0x008001ab AccumulateNick |
0x008001b8 MessanzahlRoll |
.bss 0x008001c3 0x5 menu.o |
0x008001c5 DispPtr |
0x008001c6 RemoteTasten |
0x008001c3 TestInt |
.bss 0x008001c8 0x1 compass.o |
.bss 0x008001c9 0x0 math.o |
.bss 0x008001c9 0x3 twimaster.o |
0x008001c9 twi_state |
0x008001ca motor |
.bss 0x008001cc 0x4 rc.o |
.bss 0x008001d0 0x7a fc.o |
0x008001ff Mess_Integral_Gier2 |
0x0080021d StickGier |
0x008001ef Mess_IntegralNick2 |
0x008001db IntegralNick2 |
0x00800218 SenderOkay |
0x008001e7 Integral_Gier |
0x00800219 StickNick |
0x00800212 Poti2 |
0x0080021f MotorenEin |
0x00800220 HoehenWert |
0x008001f7 Mess_IntegralRoll2 |
0x00800214 Poti3 |
0x00800224 Parameter_UserParam1 |
0x008001d3 AdNeutralRoll |
0x0080020e Notlandung |
0x008001d7 IntegralNick |
0x00800203 Mess_Integral_Hoch |
0x008001fb Mess_Integral_Gier |
0x00800227 Parameter_UserParam4 |
0x00800209 KompassStartwert |
0x00800225 Parameter_UserParam2 |
0x00800207 KompassValue |
0x0080020b KompassRichtung |
0x008001f3 Mess_IntegralRoll |
0x0080021b StickRoll |
0x008001d1 AdNeutralNick |
0x008001d0 Timeout |
0x008001e3 IntegralRoll2 |
0x00800210 Poti1 |
0x00800226 Parameter_UserParam3 |
0x008001d5 AdNeutralGier |
0x0080020d updKompass |
0x0080020f HoehenReglerAktiv |
0x00800222 SollHoehe |
0x00800216 Poti4 |
0x008001eb Mess_IntegralNick |
0x008001df IntegralRoll |
.bss 0x0080024a 0x14 GPS.o |
0x00800256 GpsZiel_X |
0x00800252 GpsAktuell_Y |
0x0080024a GPS_Nick |
0x0080024e GpsAktuell_X |
0x0080025a GpsZiel_Y |
0x0080024c GPS_Roll |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_prologue.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_epilogue.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(memchr.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
.bss 0x0080025e 0x0 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o) |
*(.bss*) |
*(COMMON) |
COMMON 0x0080025e 0x10 main.o |
0x0080025e DiffRoll |
0x00800260 Motor_Vorne |
0x00800261 Motor_Hinten |
0x00800262 DiffNick |
0x00800264 Motor_Rechts |
0x00800265 Motor_Links |
0x00800266 s |
0x00800267 h |
0x00800268 m |
0x00800269 MotorWert |
COMMON 0x0080026e 0x20c uart.o |
0x0080026e MeineSlaveAdresse |
0x0080026f SendeBuffer |
0x00800305 NMEABuffer |
0x0080039b Debug_Timer |
0x0080039d DebugIn |
0x008003a8 VersionInfo |
0x008003b2 RxdBuffer |
0x00800448 DebugOut |
COMMON 0x0080047a 0x1 printf_P.o |
0x0080047a PrintZiel |
COMMON 0x0080047b 0x12 analog.o |
0x0080047b Aktuell_ay |
0x0080047d Aktuell_az |
0x0080047f StartLuftdruck |
0x00800481 Aktuell_Nick |
0x00800483 messanzahl_Druck |
0x00800484 Aktuell_Roll |
0x00800486 Aktuell_ax |
0x00800488 DruckOffsetSetting |
0x00800489 Aktuell_Gier |
0x0080048b tmpLuftdruck |
COMMON 0x0080048d 0x13 compass.o |
0x0080048d MM3_calib |
0x00800496 MM3 |
COMMON 0x008004a0 0x8 twimaster.o |
0x008004a0 motor_rx |
COMMON 0x008004a8 0x2c rc.o |
0x008004a8 PPM_in |
0x008004be PPM_diff |
COMMON 0x008004d4 0x58 fc.o |
0x008004d4 EE_Parameter |
0x0080050e MesswertRoll |
0x00800510 MesswertNick |
0x00800512 MIN_GAS |
0x00800513 Mittelwert_AccHoch |
0x00800515 IntegralFaktor |
0x00800519 acc_neutral |
0x00800521 Mittelwert_AccNick |
0x00800523 MAX_GAS |
0x00800524 MesswertGier |
0x00800526 GyroFaktor |
0x0080052a Mittelwert_AccRoll |
0x0080052c PROVIDE (__bss_end, .) |
0x00005d84 __data_load_start = LOADADDR (.data) |
0x00005e10 __data_load_end = (__data_load_start + SIZEOF (.data)) |
.noinit 0x0080052c 0x0 |
0x0080052c PROVIDE (__noinit_start, .) |
*(.noinit*) |
0x0080052c PROVIDE (__noinit_end, .) |
0x0080052c _end = . |
0x0080052c PROVIDE (__heap_start, .) |
.eeprom 0x00810000 0x13d |
*(.eeprom*) |
.eeprom 0x00810000 0x12c main.o |
0x00810000 EEPromArray |
0x0081000a EEParameterArray |
.eeprom 0x0081012c 0x9 compass.o |
0x0081012c ee_calib |
.eeprom 0x00810135 0x8 fc.o |
0x00810135 ee_acc_neutral |
0x0081013d __eeprom_end = . |
.stab 0x00000000 0x378 |
*(.stab) |
.stab 0x00000000 0x378 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
.stabstr 0x00000000 0x71 |
*(.stabstr) |
.stabstr 0x00000000 0x71 c:/winavr/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 |
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 |
compass.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 |
EEParameterArray main.o |
EEPromArray main.o |
fc.o |
analog.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 |
compass.o |
menu.o |
timer0.o |
IntegralNick2 fc.o |
IntegralRoll fc.o |
compass.o |
menu.o |
IntegralRoll2 fc.o |
Integral_Gier fc.o |
Ki fc.o |
KompassRichtung fc.o |
menu.o |
KompassStartwert fc.o |
menu.o |
KompassValue fc.o |
menu.o |
Kp fc.o |
LcdClear menu.o |
main.o |
Luftdruck analog.o |
fc.o |
MAX_GAS fc.o |
MIN_GAS fc.o |
MM3 compass.o |
MM3_calib compass.o |
menu.o |
MeineSlaveAdresse uart.o |
Menu menu.o |
uart.o |
MessLuftdruck analog.o |
fc.o |
menu.o |
Mess_IntegralNick fc.o |
analog.o |
Mess_IntegralNick2 fc.o |
analog.o |
Mess_IntegralRoll fc.o |
analog.o |
Mess_IntegralRoll2 fc.o |
analog.o |
Mess_Integral_Gier fc.o |
analog.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 |
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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
fc.o |
compass.o |
analog.o |
__addsf3x c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
__bad_interrupt c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__bss_end c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
__bss_start c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_clear_bss.o) |
__cmpsf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__data_end c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
__data_load_start c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
__data_start c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_copy_data.o) |
__divmodhi4 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
fc.o |
rc.o |
compass.o |
menu.o |
analog.o |
__divmodsi4 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
fc.o |
math.o |
compass.o |
menu.o |
analog.o |
timer0.o |
__divsf3 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
fc.o |
__divsf3x c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
__do_clear_bss c:/winavr/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/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/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o) |
analog.o |
main.o |
__eeprom_write_block_1F2021 c:/winavr/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o) |
fc.o |
analog.o |
uart.o |
main.o |
__epilogue_restores__ c:/winavr/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__fixsfsi c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
fc.o |
compass.o |
menu.o |
analog.o |
__fixunssfsi c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
__floatsisf c:/winavr/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
__fp_lneg c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
__fp_merge c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(floatsisf.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
__fp_nan c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
__fp_nanEDOM c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
__fp_nanERANGE c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
__fp_nanx c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_nan.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
__fp_split1 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
__fp_split2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__fp_split3 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
__fp_split_a c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_split.o) |
__fp_zero c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_merge.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fixsfsi.o) |
__fp_zerox c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_zero.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(divsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) |
__gesf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__gtsf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
analog.o |
__heap_end c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__init c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__lesf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__ltsf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
fc.o |
analog.o |
__mulsf3 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
fc.o |
math.o |
compass.o |
__mulsf3x c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3x.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(mulsf3.o) |
__mulsi3 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_mulsi3.o) |
fc.o |
math.o |
compass.o |
timer0.o |
__nesf2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(fp_cmp.o) |
__prologue_saves__ c:/winavr/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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__subsf3 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5\libm.a(addsf3.o) |
compass.o |
analog.o |
__tablejump2__ c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
menu.o |
analog.o |
uart.o |
__tablejump__ c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_tablejump.o) |
__udivmodhi4 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodhi4.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
analog.o |
__udivmodsi4 c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_udivmodsi4.o) |
c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodsi4.o) |
printf_P.o |
__vector_1 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_10 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_11 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_12 rc.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_13 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_14 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_15 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_16 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_17 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_18 timer0.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_19 compass.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_2 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_20 uart.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_21 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_22 uart.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_23 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_24 analog.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_25 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_26 twimaster.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_27 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_3 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_4 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_5 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_6 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_7 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_8 c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_9 timer0.o |
c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vector_default c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
__vectors c:/winavr/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
_div c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_divmodhi4.o) |
_exit c:/winavr/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 |
atan2_i math.o |
compass.o |
beeptime timer0.o |
fc.o |
compass.o |
main.o |
calib_MM3 compass.o |
main.o |
calib_acc fc.o |
main.o |
cos_f math.o |
compass.o |
ee_acc_neutral fc.o |
ee_calib compass.o |
exit c:/winavr/bin/../lib/gcc/avr/4.1.2/avr5\libgcc.a(_exit.o) |
c:/winavr/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 |
heading_MM3 compass.o |
fc.o |
i2c_init twimaster.o |
main.o |
i2c_receive_byte twimaster.o |
i2c_receive_last_byte twimaster.o |
i2c_start twimaster.o |
fc.o |
i2c_stop twimaster.o |
i2c_write_byte twimaster.o |
init_MM3 compass.o |
main.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/bin/../lib/gcc/avr/4.1.2/../../../../avr/lib/avr5/crtm644.o |
memchr c:/winavr/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 |
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 |
timer0_MM3 compass.o |
timer0.o |
tmpLuftdruck analog.o |
twi_state twimaster.o |
fc.o |
uart_putchar uart.o |
printf_P.o |
updKompass fc.o |
/branches/v0.60_MicroMag3_Nick666/trunc/Flight-Ctrl_MEGA644_V0_60_MM3.sym |
---|
0,0 → 1,479 |
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__ |
000000c2 t __c.2026 |
000000c6 t __c.2024 |
000000ce t __c.2022 |
000000da t __c.2020 |
000000e8 t __c.2018 |
000000ed t __c.2013 |
0000010a t __c.2011 |
00000123 t __c.2009 |
00000138 t __c.2004 |
00000153 t __c.1998 |
00000182 t __c.1996 |
000001a3 t __c.1994 |
000001bb t __c.1996 |
000001bd t __c.2096 |
000001cb t __c.2094 |
000001d9 t __c.2092 |
000001e7 t __c.2090 |
000001f1 t __c.2087 |
00000200 t __c.2085 |
0000020f t __c.2083 |
0000021e t __c.2081 |
00000226 t __c.2078 |
00000234 t __c.2076 |
00000242 t __c.2074 |
00000250 t __c.2072 |
00000258 t __c.2069 |
00000264 t __c.2067 |
00000270 t __c.2065 |
0000027c t __c.2063 |
00000288 t __c.2060 |
00000297 t __c.2058 |
000002a6 t __c.2056 |
000002b5 t __c.2054 |
000002c4 t __c.2051 |
000002d3 t __c.2049 |
000002e2 t __c.2046 |
000002f1 t __c.2044 |
00000300 t __c.2042 |
0000030f t __c.2040 |
0000031c t __c.2037 |
0000032b t __c.2035 |
0000033a t __c.2033 |
00000349 t __c.2031 |
00000357 t __c.2028 |
00000367 t __c.2026 |
00000377 t __c.2024 |
00000387 t __c.2022 |
00000397 t __c.2019 |
000003a7 t __c.2017 |
000003b7 t __c.2015 |
000003c7 t __c.2013 |
000003d7 t __c.2010 |
000003e6 t __c.2008 |
000003f5 t __c.2006 |
00000404 t __c.2004 |
0000040e t __c.2001 |
0000041c t __c.1999 |
00000423 t __c.1997 |
00000432 t __c.1995 |
00000441 t __c.1993 |
00000450 t __c.1991 |
0000045f t __c.1987 |
0000046f t __c.1985 |
0000047c t __c.1983 |
00000483 t __c.1981 |
00000495 t __c.1978 |
0000049a T pgm_atan |
000005a8 T pgm_sinus_f |
00000714 T __ctors_end |
00000714 T __ctors_start |
00000714 T __dtors_end |
00000714 T __dtors_start |
00000714 W __init |
00000714 T __trampolines_end |
00000714 T __trampolines_start |
00000720 T __do_copy_data |
0000072c t .do_copy_data_loop |
00000730 t .do_copy_data_start |
00000736 T __do_clear_bss |
0000073e t .do_clear_bss_loop |
00000740 t .do_clear_bss_start |
0000074e T __bad_interrupt |
0000074e W __vector_1 |
0000074e W __vector_10 |
0000074e W __vector_11 |
0000074e W __vector_13 |
0000074e W __vector_14 |
0000074e W __vector_15 |
0000074e W __vector_16 |
0000074e W __vector_17 |
0000074e W __vector_2 |
0000074e W __vector_21 |
0000074e W __vector_23 |
0000074e W __vector_25 |
0000074e W __vector_27 |
0000074e W __vector_3 |
0000074e W __vector_4 |
0000074e W __vector_5 |
0000074e W __vector_6 |
0000074e W __vector_7 |
0000074e W __vector_8 |
00000752 T GetActiveParamSetNumber |
00000760 T WriteParameterSet |
0000077c t .28_start |
00000788 t .28_finished |
00000794 T ReadParameterSet |
000007b0 t .49_start |
000007bc t .49_finished |
000007be T main |
00000b2c T __vector_22 |
00000b98 T __vector_20 |
00000d3c T AddCRC |
00000d98 T SendOutData |
00000e64 T Decode64 |
00000f14 T uart_putchar |
00000f36 T WriteProgramData |
00000f38 T UART_Init |
00000f6e T DatenUebertragung |
0000104a T BearbeiteRxDaten |
000010ff W __stack |
00001186 T Putchar |
000011b8 T PAD_0 |
000011ce T PAD_SP |
000011e4 T PRINTP |
00001210 T PRINT |
00001238 T _printf_P |
0000172a T Timer_Init |
00001764 T SetDelay |
00001776 T CheckDelay |
0000178e T __vector_9 |
000018d4 T __vector_18 |
00001996 T Delay_ms |
000019ba T ADC_Init |
000019c6 T __vector_24 |
00001ff2 T SucheLuftruckOffset |
0000207a T LcdClear |
0000208c T Menu |
000028c2 T __vector_19 |
0000295e T heading_MM3 |
00002c2a T timer0_MM3 |
00002c8e T calib_MM3 |
00002e1a T init_MM3 |
00002e42 T atan2_i |
00002f7e T pgm_read_float |
00002f92 T sin_f |
00003052 T cos_f |
00003062 T i2c_init |
0000306e T i2c_start |
00003076 T i2c_stop |
0000307e T i2c_write_byte |
0000308a T i2c_receive_byte |
00003092 T i2c_receive_last_byte |
0000309a T __vector_26 |
00003196 T rc_sum_init |
000031c0 T __vector_12 |
000032fe T Mittelwert |
000037bc T CalibrierMittelwert |
00003af4 T ParameterZuordnung |
00003f8e T DefaultKonstanten2 |
00004068 T DefaultKonstanten1 |
0000414a T SendMotorData |
000041d8 T SetNeutral |
0000437c T calib_acc |
00004444 T Piep |
0000446e T MotorRegler |
00005888 T GPS_Neutral |
000058ca T GPS_BerechneZielrichtung |
000058dc T memchr |
000058f6 T __subsf3 |
000058f8 T __addsf3 |
00005900 T __addsf3x |
0000597c T __divsf3 |
00005982 T __divsf3x |
00005a08 T __fixsfsi |
00005a08 T __fixunssfsi |
00005a2e T __fp_lneg |
00005a3e T __floatunssisf |
00005a42 T __floatsisf |
00005a56 T __eqsf2 |
00005a56 T __lesf2 |
00005a56 T __ltsf2 |
00005a56 T __nesf2 |
00005a5c T __gesf2 |
00005a5c T __gtsf2 |
00005a62 T __cmpsf2 |
00005a74 t .fp_cmp |
00005aa4 T __fp_merge |
00005ad4 T __fp_nan |
00005ad4 T __fp_nanEDOM |
00005ad4 T __fp_nanERANGE |
00005ad4 T __fp_nanx |
00005ada T __fp_split3 |
00005ae0 T __fp_split2 |
00005af2 T __fp_split1 |
00005b0e T __fp_split_a |
00005b2c T __fp_zero |
00005b32 T __fp_zerox |
00005b36 T __mulsf3 |
00005b3c T __mulsf3x |
00005bc6 T __mulsi3 |
00005c04 T __udivmodhi4 |
00005c0c t __udivmodhi4_loop |
00005c1a t __udivmodhi4_ep |
00005c2c T __divmodhi4 |
00005c2c T _div |
00005c40 t __divmodhi4_neg2 |
00005c46 t __divmodhi4_exit |
00005c48 t __divmodhi4_neg1 |
00005c52 T __udivmodsi4 |
00005c5e t __udivmodsi4_loop |
00005c78 t __udivmodsi4_ep |
00005c96 T __divmodsi4 |
00005caa t __divmodsi4_neg2 |
00005cb8 t __divmodsi4_exit |
00005cba t __divmodsi4_neg1 |
00005ccc T __prologue_saves__ |
00005d04 T __epilogue_restores__ |
00005d3a T __tablejump2__ |
00005d3e T __tablejump__ |
00005d46 T __eeprom_read_byte_1F2021 |
00005d56 T __eeprom_read_block_1F2021 |
00005d60 T __eeprom_write_byte_1F2021 |
00005d78 T __eeprom_write_block_1F2021 |
00005d82 t __stop_program |
00005d82 T _exit |
00005d82 W exit |
00005d84 A __data_load_start |
00005d84 T _etext |
00005e10 A __data_load_end |
00800100 D __data_start |
00800100 D UebertragungAbgeschlossen |
00800101 D PcZugriff |
00800102 d timer.2047 |
00800103 d cnt_1ms.1978 |
00800104 D UBat |
00800106 D Luftdruck |
0080010a D MessLuftdruck |
0080010c D Array |
00800116 D DisplayBuff |
00800166 d MaxMenue.1976 |
00800167 D NewPpmData |
00800178 D Kp |
0080017c D Ki |
00800180 D Parameter_Luftdruck_D |
00800181 D Parameter_MaxHoehe |
00800182 D Parameter_Hoehe_P |
00800183 D Parameter_Hoehe_ACC_Wirkung |
00800184 D Parameter_KompassWirkung |
00800185 D Parameter_Gyro_P |
00800186 D Parameter_Gyro_I |
00800187 D Parameter_Gier_P |
00800188 D Parameter_I_Faktor |
00800189 D Parameter_ServoNickControl |
0080018a d NeueKompassRichtungMerken.2346 |
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.2240 |
0080019b b UartState.2003 |
0080019c b buf_ptr.2002 |
0080019d b crc2.2001 |
0080019e b crc1.2000 |
0080019f b crc.1999 |
008001a1 b ptr.1986 |
008001a3 B CountMilliseconds |
008001a5 B UpdateMotor |
008001a6 B beeptime |
008001a8 B ServoValue |
008001aa b cnt.1979 |
008001ab B AccumulateNick |
008001ad B AccumulateRoll |
008001af B AccumulateGier |
008001b1 B accumulate_AccRoll |
008001b3 B accumulate_AccNick |
008001b5 B accumulate_AccHoch |
008001b7 B MessanzahlNick |
008001b8 B MessanzahlRoll |
008001b9 B MessanzahlGier |
008001ba B messanzahl_AccNick |
008001bb B messanzahl_AccRoll |
008001bc B messanzahl_AccHoch |
008001bd B HoeheD |
008001bf B ZaehlMessungen |
008001c1 b state.2015 |
008001c2 b kanal.2014 |
008001c3 B TestInt |
008001c5 B DispPtr |
008001c6 B RemoteTasten |
008001c7 b MenuePunkt.1977 |
008001c8 b tmp.1997 |
008001c9 B twi_state |
008001ca B motor |
008001cb b motorread.1994 |
008001cc b index.1977 |
008001ce b AltICR.1975 |
008001d0 B Timeout |
008001d1 B AdNeutralNick |
008001d3 B AdNeutralRoll |
008001d5 B AdNeutralGier |
008001d7 B IntegralNick |
008001db B IntegralNick2 |
008001df B IntegralRoll |
008001e3 B IntegralRoll2 |
008001e7 B Integral_Gier |
008001eb B Mess_IntegralNick |
008001ef B Mess_IntegralNick2 |
008001f3 B Mess_IntegralRoll |
008001f7 B Mess_IntegralRoll2 |
008001fb B Mess_Integral_Gier |
008001ff B Mess_Integral_Gier2 |
00800203 B Mess_Integral_Hoch |
00800207 B KompassValue |
00800209 B KompassStartwert |
0080020b B KompassRichtung |
0080020d B updKompass |
0080020e B Notlandung |
0080020f B HoehenReglerAktiv |
00800210 B Poti1 |
00800212 B Poti2 |
00800214 B Poti3 |
00800216 B Poti4 |
00800218 B SenderOkay |
00800219 B StickNick |
0080021b B StickRoll |
0080021d B StickGier |
0080021f B MotorenEin |
00800220 B HoehenWert |
00800222 B SollHoehe |
00800224 B Parameter_UserParam1 |
00800225 B Parameter_UserParam2 |
00800226 B Parameter_UserParam3 |
00800227 B Parameter_UserParam4 |
00800228 b TimerWerteausgabe.2345 |
00800229 b hoehenregler.2344 |
0080022b b modell_fliegt.2343 |
0080022d b delay_ausschalten.2342 |
0080022e b delay_einschalten.2341 |
0080022f b delay_neutral.2340 |
00800230 b RcLostTimer.2339 |
00800232 b IntegralFehlerRoll.2338 |
00800234 b IntegralFehlerNick.2337 |
00800236 b tmp_long2.2336 |
0080023a b tmp_long.2335 |
0080023e b sollGier.2334 |
00800242 b SummeRoll.2333 |
00800246 b SummeNick.2332 |
0080024a B GPS_Nick |
0080024c B GPS_Roll |
0080024e B GpsAktuell_X |
00800252 B GpsAktuell_Y |
00800256 B GpsZiel_X |
0080025a B GpsZiel_Y |
0080025e B DiffRoll |
00800260 B Motor_Vorne |
00800261 B Motor_Hinten |
00800262 B DiffNick |
00800264 B Motor_Rechts |
00800265 B Motor_Links |
00800266 B s |
00800267 B h |
00800268 B m |
00800269 B MotorWert |
0080026e B MeineSlaveAdresse |
0080026f B SendeBuffer |
00800305 B NMEABuffer |
0080039b B Debug_Timer |
0080039d B DebugIn |
008003a8 B VersionInfo |
008003b2 B RxdBuffer |
00800448 B DebugOut |
0080047a B PrintZiel |
0080047b B Aktuell_ay |
0080047d B Aktuell_az |
0080047f B StartLuftdruck |
00800481 B Aktuell_Nick |
00800483 B messanzahl_Druck |
00800484 B Aktuell_Roll |
00800486 B Aktuell_ax |
00800488 B DruckOffsetSetting |
00800489 B Aktuell_Gier |
0080048b B tmpLuftdruck |
0080048d B MM3_calib |
00800496 B MM3 |
008004a0 B motor_rx |
008004a8 B PPM_in |
008004be B PPM_diff |
008004d4 B EE_Parameter |
0080050e B MesswertRoll |
00800510 B MesswertNick |
00800512 B MIN_GAS |
00800513 B Mittelwert_AccHoch |
00800515 B IntegralFaktor |
00800519 B acc_neutral |
00800521 B Mittelwert_AccNick |
00800523 B MAX_GAS |
00800524 B MesswertGier |
00800526 B GyroFaktor |
0080052a B Mittelwert_AccRoll |
0080052c B __bss_end |
0080052c A _end |
00810000 D EEPromArray |
0081000a D EEParameterArray |
0081012c D ee_calib |
00810135 D ee_acc_neutral |
0081013d D __eeprom_end |
/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/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/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/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/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/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/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/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/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/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/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/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/v0.60/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/v0.60/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/v0.60/Flight-Ctrl_MEGA644_V0_60_MM3.hex |
---|
0,0 → 1,1522 |
:100000000C9492030C94AF030C94AF030C94AF03C5 |
:100010000C94AF030C94AF030C94AF030C94AF0398 |
:100020000C94AF030C94B20B0C94AF030C94AF037D |
:100030000C9407190C94AF030C94AF030C94AF030A |
:100040000C94AF030C94AF030C94590C0C947614DD |
:100050000C94D4050C94AF030C949E050C94AF0340 |
:100060000C94F80C0C94AF030C9460180C94AF0330 |
:100070004B08C508C508C5087D085E08C508C50841 |
:10008000C508A908A908A908A908A9088108C508D8 |
:10009000C5087008C5087908210D730DCC0D270E11 |
:1000A000440E670E8D0E740FB310E71048119E11A9 |
:1000B000EC116512BF12201344137A13B613F41314 |
:1000C0002D1479187E189A18A818AD18B818C018E9 |
:1000D000D4180A0A0D004E65757472616C0048658B |
:1000E0006164696E67486F6C64000A0D53746575CE |
:1000F0006572756E673A20004F4B0A0D000A0D417C |
:1001000062676C65696368204C75667464727563B8 |
:100110006B73656E736F722E2E000A0D4B616C69E6 |
:10012000627269657265204E65757472616C6C618E |
:100130006765000A0D4B616C6962726965726520C2 |
:100140004B6F6D70617373000A0D42656E75747A42 |
:100150006520506172616D657465727361747A2097 |
:100160002564000A0D496E69742E20454550524F92 |
:100170004D3A2047656E6572696572652044656613 |
:1001800061756C742D506172616D657465722E2E8F |
:100190002E000A0D3D3D3D3D3D3D3D3D3D3D3D3D3E |
:1001A0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D7F |
:1001B0003D3D000A0D466C69676874436F6E74724A |
:1001C0006F6C205625642E256420002E005A5F5245 |
:1001D000616E67653A202025346900595F52616E6F |
:1001E00067653A202025346900585F52616E676563 |
:1001F0003A2020253469004D4D332052616E6765E9 |
:10020000005A5F4F66667365743A20202533690093 |
:10021000595F4F66667365743A202025336900582C |
:100220005F4F66667365743A2020253369004D4D33 |
:1002300033204F66660052616E67653A2533692D3B |
:10024000253369005374656C6C756E673A202533ED |
:100250006900536574706F696E74202025336900DE |
:10026000536572766F202000506F7469343A2020F5 |
:1002700025336900506F7469333A202025336900B3 |
:10028000506F7469323A202025336900506F7469C9 |
:10029000313A20202533690053746172743A20206A |
:1002A000202020253569004D657373776572743A97 |
:1002B0002020253569005269636874756E673A209D |
:1002C00020253569004B6F6D7061737320202020ED |
:1002D00020202000456D70662E506567656C3A25BC |
:1002E0003569005370616E6E756E673A2020253552 |
:1002F0006900486F636820253469202825336929FF |
:1003000000526F6C6C202534692028253369290040 |
:100310004E69636B20253469202825336929004103 |
:100320004343202D2053656E736F720047696572D9 |
:100330002025346920282533692900526F6C6C20F0 |
:10034000253469202825336929004E69636B2025EF |
:100350003469202825336929004779726F202D20C0 |
:1003600053656E736F720050333A25346920204B09 |
:10037000616EE46C65200050313A253469202050CC |
:10038000323A253469200047733A253469202047E2 |
:10039000693A25346920004E693A25346920205293 |
:1003A0006F3A25346920004B373A25346920204BB9 |
:1003B000616EE46C6520004B353A25346920204B92 |
:1003C000363A25346920004B333A25346920204BD6 |
:1003D000343A25346920004B313A25346920204BCA |
:1003E000323A25346920004B6F6D706173733A2087 |
:1003F000202025356900526F6C6C3A202020202087 |
:1004000020253569004E69636B3A2020202020208A |
:1004100025356900616B742E204C6167650048F6D4 |
:1004200068656E726567656C756E67004B65696EB1 |
:100430006520004F66662020202020203A202535A8 |
:1004400069004C756674647275636B3A2025356972 |
:1004500000536F6C6C486F6568653A2025356900FC |
:10046000486F6568653A20202020202535690028DE |
:10047000632920486F6C676572204275737300535F |
:10048000657474696E673A20256420005625642ED1 |
:100490002564002B2B204D696B726F4B6F70746558 |
:1004A00072202B2B005B25695D000001020305060D |
:1004B0000708090A0B0C0D0F10111213141516174B |
:1004C00018191A1B1B1C1D1E1F2021212223242545 |
:1004D000252627272829292A2B2B2C2C2D2E2E2F79 |
:1004E0002F303031313232333334343435353636DF |
:1004F0003637373838383939393A3A3A3B3B3B3C6A |
:100500003C3C3C3D3D3D3D3E3E3E3E3F3F3F3F400F |
:1005100040404041414141414242424242434343C3 |
:100520004343434444444444444545454545454587 |
:100530004646464646464646474747474747474753 |
:100540004848484848484848484949494949494924 |
:100550004949494A4A4A4A4A4A4A4A4A4A4A4A4BFD |
:100560004B4B4B4B4B4B4B4B4B4B4B4B4C4C4C4CD7 |
:100570004C4C4C4C4C4C4C4C4C4C4C4D4D4D4D4DB6 |
:100580004D4D4D4D4D4D4D4D4D4D4D4D4E4E4E4E97 |
:100590004E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E7B |
:1005A0004F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F5B |
:1005B0004F4F4F4F4F4F4F4F0000000056F88E3CAB |
:1005C000C7F20E3D465E563D7FDC8E3DB07EB23DAD |
:1005D0000A13D63D9D96F93D65830E3E5E30203E62 |
:1005E000D5D0313E6F63433ECEE6543E8E59663ED3 |
:1005F00060BA773EED83843E55208D3EBEB1953E78 |
:100600007A379E3EDDB0A63E421DAF3EFF7BB73E31 |
:1006100070CCBF3EE80DC83EC83FD03E6A61D83EB0 |
:100620002D72E03E7171E83E925EF03EF738F83E82 |
:100630000000003F89D9033FCBA8073F766D0B3FF1 |
:1006400044270F3FE7D5123F1779163F8C101A3F0A |
:10065000FE9B1D3F241B213FBA8D243F7CF3273F87 |
:10066000254C2B3F71972E3F22D5313FF404353F67 |
:10067000A726383FFF393B3FBD3E3E3FA634413FB2 |
:100680007C1B443F09F3463F12BB493F60734C3F1C |
:10069000BD1B4F3FF2B3513FCF3B543F1EB3563FBC |
:1006A000AE19593F516F5B3FD7B35D3F14E75F3FD2 |
:1006B000DB08623F0119643F5D17663FCA03683F6C |
:1006C0001DDE693F34A66B3FEB5B6D3F20FF6E3F45 |
:1006D000B28F703F820D723F7078733F63D0743F6A |
:1006E0003F15763FEA46773F4D65783F5270793F38 |
:1006F000E2677A3FEC4B7B3F5C1C7C3F24D97C3F1C |
:1007000036827D3F80177E3FFD987E3F9E067F3F6D |
:100710005B607F3F2FA67F3F13D87F3F05F67F3F6B |
:100720000000803F11241FBECFEFD0E1DEBFCDBF60 |
:1007300011E0A0E0B1E0ECE7FEE502C005900D920B |
:10074000AC38B107D9F715E0ACE8B1E001C01D92B3 |
:10075000A233B107E1F70E94E7030C943D2F0C94FC |
:100760000000A2E0B0E00E941F2F802D992708957D |
:10077000FB01863008F085E0282F2150842F99272F |
:10078000AAE32A9FD0011124A65FBF4F019724F04E |
:1007900001900E942C2FFACFA2E0B0E0022E0E941E |
:1007A0002C2F0895FB01282F863008F025E0842F98 |
:1007B00099272150AAE32A9FD0011124A65FBF4F99 |
:1007C000019724F00E941F2F0192FACF08950F93F2 |
:1007D0001F93CF93DF9381E087B98FEF88B98BE1C7 |
:1007E00084B9289A8EE38AB9579A87EF8BB984B770 |
:1007F000877F84BF80916000886180936000109241 |
:10080000600088EE93E09093A7018093A601109278 |
:100810002202109221021092B3041092B20410929C |
:10082000200210921F0210921E0210921D022898A0 |
:100830000E94BA0C0E94A4070E94F2180E94F20CB7 |
:100840000E9446180E94221778941092AE038CE3FF |
:100850008093AF0384E08093B0038CE390E09F9398 |
:100860008F931F921F9283EB91E09F938F931F9220 |
:100870000E94240982E991E09F938F931F920E9426 |
:100880002409299AA1E0B0E00E941F2F802D2DB7E6 |
:100890003EB7265F3F4F2DBF8A30B9F183E691E026 |
:1008A0009F938F931F920E9424090E945B204AE32A |
:1008B0006AED74E080E00E94B80301E00F900F90B1 |
:1008C0000F90023049F40E94EE1F4AE36AED74E093 |
:1008D00082E00E94B80303E04AE36AED74E0802FEF |
:1008E0000E94B8030F5F063060F381E022E030E041 |
:1008F000D901082E0E942C2F8AE021503040D901C6 |
:10090000082E0E942C2F0E94E52102E010E0D80161 |
:100910000E941F2F802D4AE36AED74E00E94D203EB |
:10092000D8010E941F2F802D99279F938F9388E4D1 |
:1009300091E09F938F931F920E94240984EF91E08E |
:100940000E949D0BEC010F900F900F900F900F9055 |
:10095000CE010E94A60B8823D9F3E091DC04FF2787 |
:10096000EE0FFF1FE255FB4F808191818536910587 |
:10097000C4F0E091DD04FF27EE0FFF1FE255FB4FAF |
:10098000808191818536910564F083E391E09F93A6 |
:100990008F931F920E9424090E945C160F900F9063 |
:1009A0000F90E091DC04FF27EE0FFF1FE255FB4F95 |
:1009B0008081918185369105C4F0E091DD04FF27A7 |
:1009C000EE0FFF1FE255FB4F808191818C599F4FA5 |
:1009D00064F48AE191E09F938F931F920E9424090F |
:1009E0000E94E5210F900F900F908091E20480FF0C |
:1009F00020C08DEF90E09F938F931F920E94240957 |
:100A000084EC99E00E949D0BEC010E940E100F9067 |
:100A10000F900F90CE010E94A60B8823D9F388EF88 |
:100A200090E09F938F931F920E9424090F900F9044 |
:100A30000F900E941321289880ED97E09093A701D2 |
:100A40008093A60188EE93E09093A9038093A80376 |
:100A500085E58093A3038AEE90E09F938F931F9286 |
:100A60000E9424098091E2040F900F900F9082FF62 |
:100A700003C08EED90E002C086ED90E09F938F93CF |
:100A80001F920E9424090F900F900F9082ED90E02A |
:100A90009F938F931F920E9424090E9452100F90DF |
:100AA0000F900F908091A501882379F11092A501F4 |
:100AB0000E945E220E94CC20289880910101882308 |
:100AC00019F081508093010180911C02882329F044 |
:100AD00080911C02815080931C022091040130916E |
:100AE00005018091F20499272817390734F480ED25 |
:100AF00097E09093A7018093A6018091D20188236B |
:100B000019F40E94461801C028980E94BF070E944D |
:100B10002D0880E090E00E94A60B882319F28091B6 |
:100B20002302882329F088B190E1892788B901C080 |
:100B3000449884EF91E00E949D0BB4CF1F920F92D6 |
:100B40000FB60F9211248F939F93EF93FF93809191 |
:100B500000018823E1F48091A1019091A201019606 |
:100B60009093A2018093A101FC01EB58FD4FE0811D |
:100B7000ED3019F08639910539F41092A2011092E6 |
:100B8000A10181E080930001E093C60004C01092AF |
:100B9000A2011092A101FF91EF919F918F910F906F |
:100BA0000FBE0F901F9018951F920F920FB60F92C5 |
:100BB00011242F933F934F938F939F93AF93BF93A2 |
:100BC000CF93DF93EF93FF938091C60080939001C2 |
:100BD00040919C01463910F010929B018091900148 |
:100BE0008D3009F05CC080919B01823009F057C0C4 |
:100BF00010929B01A42FBB27FD01EA54FC4F3081CA |
:100C0000ED01C954DC4F288180919F019091A00192 |
:100C1000831B9109821B91099F709093A00180937F |
:100C20009F019C0196E0369527959A95E1F7235C04 |
:100C300020939E01982F9F73935C90939D018081D8 |
:100C4000281729F48881981711F491E006C0809143 |
:100C500093018F5F8093930190E0809191018823AD |
:100C600009F064C0992309F461C081E08093910187 |
:100C700040939401A854BC4F8DE08C938091BA03AB |
:100C8000823509F053C088E190E02CE00FB6F8946B |
:100C9000A895809360000FBE2093600047C08091AC |
:100CA0009B018130D9F0813018F08230E9F530C0F5 |
:100CB00080919001833239F480919101882319F455 |
:100CC00081E080939B01809190018093B80381E043 |
:100CD00080939C0180919001992715C082E08093B8 |
:100CE0009B01E42FFF2780919001E854FC4F808303 |
:100CF0004F5F40939C012091900180919F019091C2 |
:100D0000A001820F911D9093A00180939F010EC0BE |
:100D1000E42FFF2780919001E854FC4F80834639EF |
:100D200038F310929B01E7CF10929B01FF91EF9156 |
:100D3000DF91CF91BF91AF919F918F914F913F9153 |
:100D40002F910F900FBE0F901F901895DC0120E09F |
:100D500030E040E050E0E5E7F2E005C08191280F87 |
:100D6000311D4F5F5F4F4A175B07C1F73F70C901E5 |
:100D700036E0969587953A95E1F7835CFD01EB584F |
:100D8000FD4F808311962F73235CFD01EB58FD4FBF |
:100D90002083AA58BD4F8DE08C9310920001809162 |
:100DA00075028093C6000895EF92FF920F931F93F0 |
:100DB000CF93DF937A01722F93E290937502609341 |
:100DC00076028093770203E010E060E0A8E7B2E0EB |
:100DD00046C0F701E60FF11D90816F5F715019F465 |
:100DE000E0E040E00FC0F701E60FF11D40816F5FCA |
:100DF000715011F4E0E006C0F701E60FF11DE0814B |
:100E00006F5F7150892F86958695835C8C935527EB |
:100E1000892F99278370907024E0880F991F2A9555 |
:100E2000E1F79A0194E0369527959A95E1F7822BA0 |
:100E3000835CED0189834F705070440F551F440F40 |
:100E4000551F8E2F8295869586958370842B835CA3 |
:100E50008A83EF73E35CEB830C5F1F4F1496772359 |
:100E600009F0B7CFC8010E94A606E6E0CDB7DEB70D |
:100E70000C940A2F1F93CF93DF93EC0170E0A22F05 |
:100E8000BB27129748C0E42FFF27E854FC4F30815E |
:100E90004F5FE42FFF27E854FC4F50814F5FE42F52 |
:100EA000FF27E854FC4F10814F5FE42FFF27E854E1 |
:100EB000FC4F20814F5F842F9927A817B90774F141 |
:100EC0005D53FE01E70FF11D3D53330F330F852FA7 |
:100ED00082958F70382B3083613001F1912F9D53B3 |
:100EE0007F5FFE01E70FF11D71505295507F892FF2 |
:100EF00086958695582B508363506F3F79F07E5FBF |
:100F0000FE01E70FF11D9295990F990F907C2D53DB |
:100F1000922B90837F5F662309F0B5CFDF91CF914D |
:100F20001F9108951F93182F8A3019F48DE00E94A5 |
:100F300092078091C00085FFFCCF1093C60080E02F |
:100F400090E01F9108950895E1ECF0E088E180833E |
:100F5000A0ECB0E08C9182608C938081806880836B |
:100F60008081806480838AE28093C40088EC90E072 |
:100F70000E949D0B9093A2038093A10308958091FA |
:100F80000001882309F468C080918C01882371F0E6 |
:100F900080910001882351F02BE043EA53E06091F7 |
:100FA000740287E40E94D40610928C018091A10300 |
:100FB0009091A2030E94A60B882321F480918E01B8 |
:100FC0008823B1F080910001882391F022E34EE460 |
:100FD00054E06091740284E40E94D40610928E0161 |
:100FE0008AEF90E00E949D0B9093A2038093A1034F |
:100FF00080918D018823F1F0809100018823D1F048 |
:101000000E945B1010928D0180919A018F5F8093F6 |
:101010009A01843011F410929A0180919A0144E16E |
:10102000849FA00111244A5E5E4F24E160E0805D50 |
:101030000E94D40680918F01882371F08091000175 |
:10104000882351F02AE04EEA53E06091740286E56D |
:101050000E94D40610928F010895A2E0B0E0E3E36D |
:10106000F8E00C94F12E80919101882309F48FC04F |
:101070008FEF809301018091BA039927AA27BB279C |
:10108000FC01E356F040E431F10508F07EC0E85C75 |
:10109000FF4F0C94192F2091940143E06BE083EAF9 |
:1010A00093E00E943A078091C8019091A503892B93 |
:1010B0008093C80181E080938E0167C020919401E4 |
:1010C00043E062E0CE0101960E943A078091C80198 |
:1010D0009981892B8093C80181E080938D0155C04F |
:1010E0002091940143E064E086E991E00E943A0790 |
:1010F0004CC081E080938F0148C081E080938C01D7 |
:1011000044C02091940143E062E0CE0101960E9428 |
:101110003A0789818F3F89F0863010F085E0898316 |
:101120004AE36AED74E089810E94D20389812AE34F |
:101130004AED54E06091740208C0109174020E945C |
:10114000B1032AE34AED54E0612F855B0E94D40687 |
:101150001CC02091940143E06AE38AED94E00E9470 |
:101160003A078091BA034AE36AED74E08B560E9415 |
:10117000B8038091BA038B56A2E0B0E0082E0E941B |
:101180002C2F0E94B1030E94492210929101E3E0AA |
:10119000CE5F0C940D2F982F80918004813069F4DC |
:1011A0008091C701E82FFF27EA5EFE4F90838F5F93 |
:1011B0008093C70121E030E005C0892F0E9492078B |
:1011C000282F3327C90108951F93182F04C080E3E7 |
:1011D0000E94CB0811501116D4F31F9108951F934C |
:1011E000182F04C080E20E94CB0811501116D4F3CE |
:1011F0001F9108950F931F93CF93DF938C01EB0101 |
:1012000008C0F8010F5F1F4FE4918E2F0E94CB089A |
:1012100021972097B1F7DF91CF911F910F910895FA |
:101220000F931F93CF93DF938C01EB0106C0F8015E |
:1012300081918F010E94CB0821972097C1F7DF9100 |
:10124000CF911F910F910895A3E3B0E0EAE2F9E096 |
:101250000C94E22E29968FAD299780938004CE01BD |
:10126000855B9F4F9D838C832B968EAD9FAD2B9777 |
:101270009FA78EA722243324210102C01301240139 |
:101280000EA51FA502C00F5F1F4FF801F490FF20AD |
:1012900019F0F5E2FF16B9F7B8018EA59FA5681BF6 |
:1012A000790B11F00E94FA08FF2009F442C20F5F87 |
:1012B0001F4F1FA70EA71982AC81BD811BAA1AAAB6 |
:1012C0009FEF99ABEEA5FFA5CF0101969FA78EA733 |
:1012D000B49095E7B91621F08B2D8062883789F498 |
:1012E000EBA9E0FF07C02D903D904D905C901397C7 |
:1012F000149607C08D919C9111971C01442455248C |
:101300001296F0E2BF1621F489818823D9F685C0B0 |
:1013100083E2B81609F483C09AE2B91621F0EDE22F |
:10132000BE1669F408C0FD011296E081EAABE7FF42 |
:10133000C9CFE195EAABFBA9F061FF7D72C08BE2FA |
:10134000B81609F46AC09EE2B916B1F52EA53FA5FC |
:101350002F5F3F4FEEA5FFA584918A3221F0B82E72 |
:1013600020E030E01BC0FD0112964081518157FF03 |
:1013700002C04FEF5FEF49AB3FA72EA7A3CFC90134 |
:1013800003E0880F991F0A95E1F7220F331F280FFA |
:10139000391F2B0D311D20533040B49031968B2DC9 |
:1013A00080538A3060F3FFA7EEA7A90137FF02C080 |
:1013B0004FEF5FEF49AB8DCFF0E3BF1631F48BA950 |
:1013C00084FD80CF80628BAB7DCF8B2D81538930A4 |
:1013D000E8F420E030E0C901F3E0880F991FFA95A6 |
:1013E000E1F7220F331F280F391F2B0D311D20531A |
:1013F0003040EEA5FFA5CF0101969FA78EA7B49020 |
:101400008B2D80538A3038F32AAB63CF98E6B91618 |
:1014100051F4EBA9E460EBAB55CFB98253CFFBA9F4 |
:10142000F860FBAB4FCF8CE6B81621F49BA9916016 |
:101430009BAB48CFBD83AC83E3E6BE1639F412966E |
:10144000BD83AC8312978C918E8318C1F4E4BF16D0 |
:1014500039F084E6B81639F099E6B91659F503C0A3 |
:10146000EBA9E160EBABFBA9F0FF08C01496BD83CC |
:10147000AC835E904E903E902E900AC01296BD8333 |
:10148000AC839E918E911C01442437FC4094542CD3 |
:1014900057FC03C08AE088AB92C0509440943094CB |
:1014A0002094211C311C411C511C8DE289839AE03F |
:1014B00098AB85C0EFE4BE1629F0FFE6BF1639F4FD |
:1014C00088E061C09BA991609BABE8E056C0F0E763 |
:1014D000BF1671F41296BD83AC839E918E911C0150 |
:1014E000442455248BA980648BAB78E7B72E5EC06B |
:1014F000E3E7BE16D9F51296BD83AC83DE90CE909D |
:10150000C114D10489F488E28E838EE68F8385E747 |
:1015100088878CE689878A8789E28B871C8666E0C4 |
:10152000C62ED12CCC0EDD1EF9A9F7FD13C04F2F0E |
:10153000552747FD509560E070E0C6010E94EA2CF7 |
:10154000009711F419A90DC08C1919A981174CF431 |
:10155000182F07C0F60101900020E9F731971E2FE0 |
:101560001C1919824201310140E094C085E5B8168A |
:1015700031F095E7B91649F4EAE0E8AB1FC0FBA9E2 |
:10158000F160FBAB8AE088AB19C098E5B91621F091 |
:10159000E8E7BE1609F06EC0FBA9F3FD02C080E1CA |
:1015A000F2CF211431044104510419F490E198ABB5 |
:1015B00005C0EBA9E064EBABF0E1F8AB198289A9B7 |
:1015C00087FD03C09BA99F7D9BAB2114310441047F |
:1015D000510461F4E9A9EE2349F466247724430118 |
:1015E0005EE2C52ED12CCC0EDD1E3EC04EE2C42ED6 |
:1015F000D12CCC0EDD1EF8A9EF2EFF2400271127D9 |
:10160000C201B101A80197010E94A52E6A3020F401 |
:1016100030E3A32EA60E08C027E5A22EA60E88E56D |
:10162000B81611F49FEDA922F601A2926F01C20132 |
:10163000B101A80197010E94A52E39014A012E147B |
:101640003F044006510618F019012A01D9CFF8A924 |
:10165000F83051F48BA983FF07C090E3A91621F05D |
:1016600080E3F60182936F01CE018C19182F125D71 |
:1016700049A910C0BB2009F45CC0BE821982420196 |
:10168000310100E096E0C92ED12CCC0EDD1E11E018 |
:1016900021E005C0212F042F011B07FD00E08981F7 |
:1016A000882319F0812F8F5F07C09BA996FD02C088 |
:1016B000812F02C0822F8E5FA82EA00EEBA9EE2EE6 |
:1016C000FF2480E3482E512C4E205F20411451040A |
:1016D00021F48AA98A190E94EF088981882329F0B8 |
:1016E00061E070E0CE01019609C0E6FE09C080E32A |
:1016F0008A83BB8262E070E0CE0102960E941009EC |
:10170000F0E24F16510421F48AA98A190E94E408D4 |
:10171000802F0E94E408612F772767FD7095C6012E |
:101720000E941009E4FEAACD8AA98A190E94EF0836 |
:10173000A5CDE2E1CD5C0C94FE2E2091A301309169 |
:10174000A4012F5F3F4F820F931F08952091A301A3 |
:101750003091A401821B930B892F99278695807461 |
:10176000992708951F920F920FB60F921124EF92AE |
:10177000FF920F931F932F933F934F935F936F931A |
:101780007F938F939F93AF93BF93CF93DF93EF9309 |
:10179000FF93809102018150809302018F3F09F0F5 |
:1017A0006DC083E88093B00080918901C82FDD2748 |
:1017B000D093A901C093A80180910005E090FC049A |
:1017C00080FF1EC06091DB017091DC018091DD0122 |
:1017D0009091DE01FF240027112720E830E040E04F |
:1017E00050E00E94C72EC801B7010E945F2E20E082 |
:1017F00032E040E050E00E94C72EC20FD31F1DC050 |
:101800006091DB017091DC018091DD019091DE013E |
:10181000FF240027112720E830E040E050E00E943C |
:10182000C72EC801B7010E945F2E20E032E040E0E1 |
:1018300050E00E94C72EC21BD30BD093A901C093C6 |
:10184000A8012091A8013091A9018091FD04992758 |
:101850002817390734F08091FE04992782179307DF |
:1018600024F49093A9018093A8018091A80180930A |
:10187000B3008091FF048093020104C083E0809351 |
:10188000B0005F98FF91EF91DF91CF91BF91AF9141 |
:101890009F918F917F916F915F914F913F912F9188 |
:1018A0001F910F91FF90EF900F900FBE0F901F9020 |
:1018B00018951F920F920FB60F9211242F933F93FA |
:1018C0004F935F936F937F938F939F93AF93BF9348 |
:1018D000EF93FF938091AA0181508093AA018F3FDB |
:1018E00001F58AE08093AA01809103018F5F8170E6 |
:1018F00080930301882319F481E08093A5018091EE |
:10190000A3019091A40101969093A4018093A30157 |
:101910008091D201882329F08091D2018150809357 |
:10192000D2018091A6019091A701029758F0809171 |
:10193000A6019091A70101979093A7018093A6011A |
:101940005A9A01C05A988091E20483FF02C00E9413 |
:101950002A16FF91EF91BF91AF919F918F917F9147 |
:101960006F915F914F913F912F910F900FBE0F900C |
:101970001F9018958091A3019091A4010B969093CC |
:10198000AC018093AB0182E085BD83EA84BD17BCC6 |
:1019900088E788BD83EC8093B00086E08093B10037 |
:1019A000E0E7F0E0808182608083EEE6F0E0808115 |
:1019B000816080838AE08093B3001092B200089522 |
:1019C0002091A3013091A4012F5F3F4F280F391FB1 |
:1019D0008091A3019091A401A901481B590B57FFC5 |
:1019E000F7CF089510927C008FEC80937A000895D1 |
:1019F0001F920F920FB60F921124EF92FF920F9346 |
:101A00001F932F933F934F935F936F937F938F9386 |
:101A10009F93AF93BF93CF93DF93EF93FF93109276 |
:101A20007A008091C3018F5F8093C3018150E82FBA |
:101A3000FF27E830F10508F0CFC2E45BFF4F0C94BC |
:101A4000192F2091D7013091D80180917800909181 |
:101A50007900281B390B8091B1019091B201820F5E |
:101A6000931F9093B2018093B1018091BB018F5F6E |
:101A70008093BB018091FF0190910002A09101022F |
:101A8000B0910202442737FD4095542F820F931FD7 |
:101A9000A41FB51F8093FF0190930002A093010241 |
:101AA000B09302028091030290910402A09105027A |
:101AB000B0910602820F931FA41FB51F80930302EB |
:101AC00090930402A0930502B093060281E08093F4 |
:101AD000C4018091C1019091C20101969093C2010D |
:101AE0008093C1017DC260917800709179008091EE |
:101AF000D5019091D601681B790B8091F7019091E7 |
:101B0000F801A091F901B091FA019B01442737FD3A |
:101B10004095542F820F931FA41FB51F8093F70188 |
:101B20009093F801A093F901B093FA018091FB0121 |
:101B30009091FC01A091FD01B091FE01820F931FD5 |
:101B4000A41FB51F8093FB019093FC01A093FD019E |
:101B5000B093FE0180917800909179000A9710F47B |
:101B600064E47DEF8091780090917900895E9340E4 |
:101B700010F06CEB72E08091AF019091B001860F94 |
:101B8000971F9093B0018093AF018091BA018F5F4E |
:101B90008093BA0182E058C060917800709179001A |
:101BA0008091D3019091D401681B790B8091EF0152 |
:101BB0009091F001A091F101B091F2019B014427B5 |
:101BC00037FD4095542F820F931FA41FB51F80939C |
:101BD000EF019093F001A093F101B093F201809195 |
:101BE000F3019091F401A091F501B091F601820FFB |
:101BF000931FA41FB51F8093F3019093F401A0934A |
:101C0000F501B093F60180917800909179000A97E0 |
:101C100010F464E47DEF8091780090917900895E02 |
:101C2000934010F06CEB72E08091AD019091AE01A9 |
:101C3000860F971F9093AE018093AD018091B901FB |
:101C40008F5F8093B90184E08093C401C9C1409142 |
:101C500004015091050180917800909179009A01DA |
:101C6000220F331F240F351F63E070E00E947E2E89 |
:101C7000260F371F36952795369527953093050102 |
:101C80002093040186E0E0CF809121059091220508 |
:101C90002091780030917900821B930B90938204FD |
:101CA000809381048091B3019091B40120918104CB |
:101CB00030918204820F931F9093B4018093B301FB |
:101CC0008091BD018F5F8093BD0187E0BDCF809182 |
:101CD00078009091790020911F0530912005821B9A |
:101CE000930B90938D0480938C048091B501909117 |
:101CF000B60120918C0430918D04820F931F909334 |
:101D0000B6018093B5018091BC018F5F8093BC01C7 |
:101D100085E08093C40186E0E4C060917800709112 |
:101D20007900E0902305F09024050091250510919D |
:101D30002605882777FD8095982F0E949D2DA80164 |
:101D400097010E94F72C0E94802D7093B801609338 |
:101D5000B7012091B7013091B801E0918104F09171 |
:101D6000820480918C0490918D0497FF03C090951C |
:101D700081959F4F64E070E00E94922EEB01CF01AD |
:101D8000F7FF03C0909581959F4F64E070E00E943B |
:101D9000922E260F371F2C0F3D1F3093B801209332 |
:101DA000B7018091B7019091B801029704F1609159 |
:101DB000230570912405809125059091260520E04A |
:101DC00030E048E454E40E94A72D88230CF03CC086 |
:101DD0006091230570912405809125059091260539 |
:101DE0002AE037ED43EA5CE30E94F82C25C080919D |
:101DF000B7019091B8018F5F9F4F34F56091230533 |
:101E000070912405809125059091260520E030E011 |
:101E100046E154E40E94AA2D1816B4F460912305FB |
:101E20007091240580912505909126052AE037EDD3 |
:101E300043EA5CE30E94F72C60932305709324052A |
:101E4000809325059093260581E08093BE018091C3 |
:101E5000780090917900909384048093830420917A |
:101E60000702309108024091090250910A028091C4 |
:101E7000B7019091B801AA2797FDA095BA2F280F16 |
:101E8000391F4A1F5B1F20930702309308024093BB |
:101E9000090250930A02E0900702F09008020091B4 |
:101EA000090210910A026091070270910802809164 |
:101EB000090290910A0220E034E040E050E00E94E4 |
:101EC000C72EE21AF30A040B150BE0920702F092F8 |
:101ED00008020093090210930A0283E08093C40170 |
:101EE00087E08093C3017CC080919104909192041B |
:101EF0002091780030917900820F931F9093920483 |
:101F000080939104809189048F5F809389048091EC |
:101F10008904853008F460C0809178009091790040 |
:101F200090930B0180930A0110928904809185049B |
:101F3000909186042091910430919204821B930B1E |
:101F40002091240230912502821B930B9093C001B3 |
:101F50008093BF016091910470919204E09006011A |
:101F6000F09007010091080110910901882777FD81 |
:101F70008095982FA8019701220F331F441F551FEA |
:101F80002E0D3F1D401F511F620F731F841F951F91 |
:101F900024E030E040E050E00E94C72E209306018C |
:101FA0003093070140930801509309012091850463 |
:101FB000309186048091060190910701A09108015B |
:101FC000B0910901281B390B30932502209324027C |
:101FD00010929204109291041092C4011092C301C5 |
:101FE0008091C40180937C008FEC80937A00FF91F4 |
:101FF000EF91DF91CF91BF91AF919F918F917F91A1 |
:102000006F915F914F913F912F911F910F91FF9091 |
:10201000EF900F900FBE0F901F901895CF93DF9306 |
:10202000A3E0B0E00E941F2F802DC82FDD27C5310F |
:10203000D10508F02A97C7BD84E690E00E94E00C25 |
:1020400080910A0190910B0182559340D0F4C0E039 |
:10205000D0E017C0C7BD82E390E00E94E00C8BEC9B |
:1020600091E09F938F931F920E94240980910A010F |
:1020700090910B010F900F900F908458934020F097 |
:102080002196CA3FD10530F3A3E0B0E00C2E0E94A8 |
:102090002C2FC0938E0488EC90E00E94E00CDF911E |
:1020A000CF910895E6E1F1E080E2819391E0E63698 |
:1020B000F907D9F70895FF920F931F938091C801F4 |
:1020C000282F3327C90181709070682F882391F0E1 |
:1020D0008091C901882311F0815002C0809166016E |
:1020E0008093C901E6E1F1E080E2819391E0E63678 |
:1020F000F907D9F7A9014270507021FF0DC08091F6 |
:10210000C9018F5F8093C901E6E1F1E080E281932C |
:1021100091E0E636F907D9F7662321F0452B11F057 |
:102120001092C90181E18093C7018091C90199276B |
:102130009F938F9385EA94E09F938F9381E08F9391 |
:102140000E9424098091C9010F900F900F900F9069 |
:102150000F90E82FFF27ED30F10508F0BCC3EC5AD3 |
:10216000FF4F0C94192F1092C70183E994E09F93BD |
:102170008F9311E01F930E94240984E18093C7018B |
:102180008CE390E09F938F931F921F928CE894E0D2 |
:102190009F938F931F930E94240988E28093C70125 |
:1021A0000E94B10399279F938F938FE794E09F93A9 |
:1021B0008F931F930E9424098CE38093C7018FE6BD |
:1021C00094E09F938F931F930E94240980C3809172 |
:1021D000E20480FF44C01092C701809124029091D4 |
:1021E00025029F938F9380E694E09F938F9311E055 |
:1021F0001F930E94240984E18093C70180912602E5 |
:10220000909127029F938F9381E594E09F938F9302 |
:102210001F930E94240988E28093C70180910A01DC |
:1022200090910B019F938F9382E494E09F938F93FF |
:102230001F930E9424098CE38093C70180918E0430 |
:1022400099279F938F9383E394E09F938F931F939A |
:102250000E9424098DB79EB744968DBF41C384E187 |
:102260008093C7018CE294E09F938F9311E01F93BA |
:102270000E94240988E28093C7018EE194E09F9335 |
:102280008F931F930E9424098DB79EB70696E5CFC2 |
:102290001092C70184E194E09F938F9311E01F9304 |
:1022A0000E94240984E18093C7016091DB01709151 |
:1022B000DC018091DD019091DE0120E034E040E01E |
:1022C00050E00E94C72E5F934F933F932F9385E07A |
:1022D00094E09F938F931F930E94240988E2809338 |
:1022E000C7016091E3017091E4018091E501909153 |
:1022F000E60120E034E040E050E00E94C72E5F930A |
:102300004F933F932F9386EF93E09F938F931F9369 |
:102310000E9424098CE38093C70180910B02909165 |
:102320000C029F938F9387EE93E09F938F931F935D |
:102330000E9424098DB79EB746968FCF1092C70191 |
:102340008091B2049091B3042091B0043091B10413 |
:102350009F938F933F932F9387ED93E09F938F935A |
:1023600011E01F930E94240984E18093C7018091AA |
:10237000B6049091B7042091B4043091B5049F93B2 |
:102380008F933F932F9387EC93E09F938F931F93AB |
:102390000E94240988E28093C7018091BA04909139 |
:1023A000BB042091B8043091B9049F938F933F935D |
:1023B0002F9387EB93E09F938F931F930E942409A1 |
:1023C0008CE38093C7018091BC049091BD049F93DE |
:1023D0008F9387EA93E070C01092C701E091DB040D |
:1023E000FF27EE0FFF1FE255FB4F20813181E09167 |
:1023F000DA04FF27EE0FFF1FE255FB4F808191812A |
:102400003F932F939F938F9387E993E09F938F93AD |
:1024100011E01F930E94240984E18093C701E09199 |
:10242000DD04FF27EE0FFF1FE255FB4F20813181B6 |
:10243000E091DC04FF27EE0FFF1FE255FB4F808188 |
:1024400091813F932F939F938F9387E893E09F937E |
:102450008F931F930E94240988E28093C701E09123 |
:10246000DF04FF27EE0FFF1FE255FB4F2081318174 |
:10247000E091DE04FF27EE0FFF1FE255FB4F808146 |
:1024800091813F932F939F938F9387E793E09F933F |
:102490008F931F930E9424098CE38093C701E091DE |
:1024A000E004FF27EE0FFF1FE255FB4F8081918173 |
:1024B0009F938F9387E693E09F938F931F930E9440 |
:1024C00024098DB79EB74A96C8CE1092C70189E5F8 |
:1024D00093E09F938F9311E01F930E94240984E15E |
:1024E0008093C7012091D3013091D4018091AD0137 |
:1024F0009091AE016091B9013F932F9377270E948D |
:10250000922E7F936F938AE493E09F938F931F9310 |
:102510000E94240988E28093C7012091D50130915F |
:10252000D6018091AF019091B0016091BA013F93C3 |
:102530002F9377270E94922E7F936F938BE393E0E4 |
:102540009F938F931F930E9424098CE38093C7016C |
:102550002091D7013091D8018091B1019091B201C1 |
:102560006091BB013F932F9377270E94922E7F9318 |
:102570006F938CE293E09F938F931F935BC01092B5 |
:10258000C7018FE193E09F938F9381E0F82EFF9234 |
:102590000E94240984E18093C70120911F05309196 |
:1025A00020058091B5019091B6016091BC013F93E7 |
:1025B0002F9377270E94922E7F936F9380E193E071 |
:1025C0009F938F93FF920E94240988E28093C70112 |
:1025D00020912105309122058091B3019091B401A1 |
:1025E0006091BD013F932F9377270E94922E7F9396 |
:1025F0006F9381E093E09F938F93FF920E94240951 |
:102600008CE38093C701609123057091240580912C |
:1026100025059091260500918304109184040E9461 |
:10262000802D7F936F931F930F9382EF92E09F9380 |
:102630008F93FF920E9424098DB79EB748960DCEC6 |
:1026400084E18093C70180910401909105019F93DB |
:102650008F9383EE92E09F938F9311E01F930E94DC |
:10266000240988E28093C70180911C0299279F93D7 |
:102670008F9384ED92E09F938F931F930E94240980 |
:102680008DB79EB70A96E9CD1092C70185EC92E00E |
:102690009F938F9311E01F930E94240984E18093FC |
:1026A000C70180910F02909110029F938F9386EB48 |
:1026B00092E09F938F931F930E94240988E2809356 |
:1026C000C70180910B0290910C029F938F9387EA30 |
:1026D00092E09F938F931F930E9424098CE3809331 |
:1026E000C70180910D0290910E029F938F9388E90C |
:1026F00092E0E8C01092C7018091140290911502F7 |
:102700009F938F938CE892E09F938F9311E01F9398 |
:102710000E94240984E18093C70180911602909160 |
:1027200017029F938F9380E892E09F938F931F935C |
:102730000E94240988E28093C70180911802909139 |
:1027400019029F938F9384E792E09F938F931F9337 |
:102750000E9424098CE38093C70180911A02909112 |
:102760001B029F938F9388E692E06FCD1092C70172 |
:1027700080E692E09F938F9311E01F930E942409BB |
:1027800084E18093C7018091890199279F938F935A |
:1027900082E592E09F938F931F930E94240988E221 |
:1027A0008093C7018091A8019091A9019F938F9375 |
:1027B00084E492E09F938F931F930E9424098CE3FB |
:1027C0008093C7018091FE0499279F938F938091F6 |
:1027D000FD0499279F938F9386E392E09F938F93B5 |
:1027E0001F930E94240936CD1092C7018EE292E019 |
:1027F0009F938F9311E01F930E94240984E180939B |
:10280000C70180919304992787FD90959F938F939B |
:102810008FE192E09F938F931F930E94240988E297 |
:102820008093C70180919404992787FD90959F9389 |
:102830008F9380E192E09F938F931F930E942409CE |
:102840008CE38093C70180919504992787FD90952B |
:102850009F938F9381E092E035C01092C70187EF7C |
:1028600091E09F938F9311E01F930E94240984E1CC |
:102870008093C70180919604909197049F938F93C2 |
:1028800089EE91E09F938F931F930E94240988E221 |
:102890008093C70180919804909199049F938F939E |
:1028A0008BED91E09F938F931F930E9424098CE3FB |
:1028B0008093C70180919A0490919B049F938F937A |
:1028C0008DEC91E09F938F931F930E9424098DB705 |
:1028D0009EB74296C2CC8150809366011092C90186 |
:1028E0001092C8011F910F91FF9008951F920F92AF |
:1028F0000FB60F9211242F933F934F938F939F9373 |
:1029000080919C04833019F08430A1F508C08EB505 |
:102910008093CA011EBC84E080939C042BC08091EC |
:10292000CA019927382F22278EB59927282B392BB2 |
:10293000C9018D509E4F875E9340D0F480919F04D3 |
:10294000853019F0863069F406C03093A1042093D5 |
:10295000A00486E00BC03093A3042093A20487E078 |
:1029600005C03093A5042093A40485E080939F04C0 |
:1029700010929C049F918F914F913F912F910F90B6 |
:102980000FBE0F901F901895A0E1B0E0EAECF4E1C3 |
:102990000C94E22E6091DB017091DC018091DD01ED |
:1029A0009091DE01E090F704FF2433E0EE0CFF1C71 |
:1029B0003A95E1F700271127A80197010E94C72E39 |
:1029C00059016A01C9010E94DE176D877E878F87D2 |
:1029D000988BC5010E943E1869877A878B879C87F0 |
:1029E0006091E3017091E4018091E5019091E6012D |
:1029F000A80197010E94C72E79018A01C9010E948E |
:102A0000DE176D837E838F839887C7010E943E18EF |
:102A100069837A838B839C83A090A004B090A104E7 |
:102A200080919304992787FD9095A81AB90A809000 |
:102A3000A2049090A30480919404992787FD909517 |
:102A4000881A990A4090A4045090A5048091950496 |
:102A5000992787FD9095481A590A2090960430903E |
:102A60009704C0909804D0909904C214D304D0F471 |
:102A700060909A0470909B046214730498F471013E |
:102A800000271127B401882777FD8095982FA8018A |
:102A900097010E945F2E9601442755270E94C72E5A |
:102AA00049011CC02C143D0448F560909A047090B4 |
:102AB0009B046C147D0410F5760100271127B501E5 |
:102AC000882777FD8095982FA80197010E945F2E97 |
:102AD0009101442755270E94C72E5901B20188272A |
:102AE00077FD8095982FA80197010E945F2E930192 |
:102AF000442755270E94C72E290124C0E0909A043C |
:102B0000F0909B0400271127B501882777FD809559 |
:102B1000982FA80197010E945F2E91014427552705 |
:102B20000E94C72E5901B401882777FD8095982F00 |
:102B3000A80197010E945F2E9601442755270E9405 |
:102B4000C72E4901B0927304A0927204909275044A |
:102B5000809274045092770440927604B5018827DD |
:102B600077FD8095982F0E949D2D29853A854B856C |
:102B70005C850E94172E5B016C01B401882777FDEC |
:102B80008095982F0E949D2D7B018C012D813E8187 |
:102B90004F8158850E94172E2D853E854F85588977 |
:102BA0000E94172E9B01AC01C601B5010E94F82CB2 |
:102BB0003B014C01B201882777FD8095982F0E9438 |
:102BC0009D2D5B016C0129813A814B815C81C8019B |
:102BD000B7010E94172E7B018C012D813E814F8110 |
:102BE0005885C601B5010E94172E9B01AC01C80192 |
:102BF000B7010E94F82C0E94802D7B018C01298155 |
:102C00003A814B815C81C601B5010E94172E2D854A |
:102C10003E854F8558890E94172E9B01AC01C40147 |
:102C2000B3010E94F72C0E94802DDC01CB01B7017B |
:102C30000E9436179C0197FF05C088279927821BA1 |
:102C4000930B04C088E691E0821B930BE2E1C05F26 |
:102C50000C94FE2E80919C04813041F0813018F05C |
:102C6000823049F51CC02A9A81E016C02A988091CA |
:102C70009F04853011F481E305C0863011F482E3AE |
:102C800001C083E38EBD88E090E00E949D0B90938D |
:102C90009E0480939D0482E080939C04089580911B |
:102CA0009D0490919E040E94A60B882321F01EBCD7 |
:102CB00083E080939C040895A0E0B0E0E2E6F6E1B2 |
:102CC0000C94E42E299A2898EE24FF2400E010E0CA |
:102CD000AA24BB24CC24DD246624772488249924C8 |
:102CE00062E3462E55248091A0049091A104081718 |
:102CF00019072CF40091A0041091A1040BC080913D |
:102D0000A0049091A1048E159F0524F4E090A004E6 |
:102D1000F090A1048091A2049091A304C816D90652 |
:102D20002CF4C090A204D090A3040BC08091A20404 |
:102D30009091A3048A159B0524F4A090A204B0905E |
:102D4000A3048091A4049091A504881699062CF4FC |
:102D50008090A4049090A5040BC08091A40490914D |
:102D6000A5048615970524F46090A4047090A5042A |
:102D7000552081F485B191E0892785B985B192E02C |
:102D8000892785B982E390E09093A7018093A601FB |
:102D900052E3552E8AE090E00E949D0BEC01CE019B |
:102DA0000E94A60B8823D9F3E091DC04FF27EE0FE5 |
:102DB000FF1FE255FB4F80819181843691050CF411 |
:102DC0004A94442011F05A948ECFC8018E199F095D |
:102DD0009093970480939604C6018A199B09909357 |
:102DE000990480939804C4018619970990939B04D1 |
:102DF00080939A04E3E9F4E0C8018E0D9F1D62E020 |
:102E000070E00E94922E60939304C6018A0D9B1D70 |
:102E100062E070E00E94922E60939404C401860DDB |
:102E2000971D62E070E00E94922E6093950489E005 |
:102E3000ACE2B1E0182E0E94382FE0E1CDB7DEB74A |
:102E40000C94002F83ED8CBD84B1846A84B95B98A7 |
:102E500085E080939F0410929C0489E0E3E9F4E00C |
:102E6000ACE2B1E0182E0E94272F08951F93CF9354 |
:102E7000DF93EC01892B31F46115710519F480E0C1 |
:102E800090E08EC077FD02C011E001C01FEF2097D7 |
:102E900029F48AE51802C001112482C0882777FD31 |
:102EA0008095982F22E330E040E050E00E945F2EB2 |
:102EB0009E01442737FD4095542F0E94C72EF901EB |
:102EC00037FF03C0F095E195FF4F41E0EE30F40786 |
:102ED00034F4E655FB4F8491282F332747C056E141 |
:102EE000E737F5071CF02AE530E040C087E0E63719 |
:102EF000F8071CF029E530E039C044E0EE37F4076C |
:102F00001CF028E530E032C053E0E433F5071CF054 |
:102F100027E530E02BC082E0E038F8071CF026E51A |
:102F200030E024C042E0E830F4071CF025E530E052 |
:102F30001DC051E0E83BF5071CF024E530E016C069 |
:102F400081E0EC37F8071CF023E530E00FC041E0EA |
:102F5000EF34F4071CF022E530E008C0EB52F140FA |
:102F60001CF021E530E002C020E530E01C161D0613 |
:102F70006CF4812F992787FD9095AC01249FC001A7 |
:102F8000259F900D349F900D11240AC011162CF42A |
:102F900084EB90E0821B930B03C0C901845B9040DB |
:102FA000DF91CF911F910895FC0125913491FC018F |
:102FB000329645915491CA01B9010895A0E0B0E05C |
:102FC000E4EEF7E10C94EC2E9C0197FD04C041E087 |
:102FD000C42ED12C06C0309521953F4F9FEFC92EAE |
:102FE000D92E2B3531055CF0C9018B5590408A35BF |
:102FF000910540F484EB90E0821B930B9C01C1E0AF |
:10300000D0E010C0C901855B90408A35910518F465 |
:10301000245B304005C088E691E0821B930B9C0145 |
:10302000CFEFDFEF220F331F220F331FC901885468 |
:103030009A4F0E94D4177B018C01B601882777FD37 |
:103040008095982F0E949D2D9B01AC01C801B7016E |
:103050000E94172E7B018C01BE01882777FD809589 |
:10306000982F0E949D2D9B01AC01C801B7010E94C1 |
:10307000172EE8E0CDB7DEB70C94082F2AE530E034 |
:10308000281B390BC9010E94DE1708951092B90060 |
:103090008AE28093B800089585EA8093BC0080E0BE |
:1030A00090E0089584E98093BC0008951092B900DF |
:1030B0008093BB0085E88093BC0080E090E0089599 |
:1030C0001F920F920FB60F9211248F939F93EF933D |
:1030D000FF938091CB018F5F8093CB018150E82FCC |
:1030E000FF27E830F10508F074C0EF59FF4F0C944A |
:1030F000192F8091CC01880F8E5A14C08091CC0179 |
:103100008F5F8093CC018150813009F444C08130BD |
:1031100038F0823009F442C0833009F05AC041C00F |
:10312000809165021092B9008093BB0085E880937E |
:10313000BC004FC084E98093BC008091CC018430F6 |
:1031400018F41092CB0102C01092CC0185EAEFCFA7 |
:103150008091CD01880F8D5AE5CF8091CD018130CE |
:10316000D1F08130E8F28230C9F0833091F519C096 |
:103170008091BB00E091CD01FF27EA55FB4F808392 |
:103180008091CD01813039F0813050F2823031F0C0 |
:103190008330F9F406C080916602C4CF8091690241 |
:1031A000C1CF80916B02BECF8091CD019091BB00C9 |
:1031B000E82FFF27EA55FB4F94838F5F8093CD0163 |
:1031C000843010F01092CD0184E98093BC001092FD |
:1031D000CB01FF91EF919F918F910F900FBE0F90B8 |
:1031E0001F90189583EC80938100EFE6F0E08081DA |
:1031F000806280831092D8011092D7011092D6017C |
:103200001092D5011092D4011092D30108951F920B |
:103210000F920FB60F9211240F931F932F933F938A |
:103220004F935F936F937F938F939F93AF93BF93CE |
:10323000CF93DF93EF93FF93209186003091870027 |
:103240008091D0019091D101281B390B809186008B |
:10325000909187009093D1018093D001C9018D5D39 |
:1032600095408356994148F481E090E09093CF01D6 |
:103270008093CE011092670154C0C091CE01D091CD |
:10328000CF01CA30D1050CF04CC0C9018B5F904012 |
:10329000845B914008F040C0A901425D5140FE01AD |
:1032A000EE0FFF1FE255FB4F80819181FA01E81B71 |
:1032B000F90BCF01F7FF03C0909581959F4F0697BB |
:1032C0004CF480911C02883C28F480911C02865F9B |
:1032D00080931C02FE01EE0FFF1F8F0102551B4F52 |
:1032E000D8012D913C91C901880F991F820F931F1E |
:1032F000840F951F64E070E00E94922ED8018D919A |
:103300009C9111979B01281B390BEC53FB4F318388 |
:10331000208311967C936E932196D093CF01C09316 |
:10332000CE01FF91EF91DF91CF91BF91AF919F912E |
:103330008F917F916F915F914F913F912F911F914D |
:103340000F910F900FBE0F901F901895AF92BF92E4 |
:10335000CF92DF92EF92FF920F931F9310927A0019 |
:103360008091B901882369F08091AD019091AE01FF |
:103370006091B90177270E94922E70931705609390 |
:1033800016058091BA01882369F08091AF01909170 |
:10339000B0016091BA0177270E94922E70931505B3 |
:1033A000609314058091BB01882369F08091B1017D |
:1033B0009091B2016091BB0177270E94922E709389 |
:1033C0002B0560932A058091BC018823D9F1E090F8 |
:1033D0002705F09028056091B5017091B601209104 |
:1033E000BC010027F7FC0095102F5701680183E00E |
:1033F000AA0CBB1CCC1CDD1C8A95D1F7AE18BF08EB |
:10340000C00AD10A882777FD8095982FB4E0660F0F |
:10341000771F881F991FBA95D1F73327442755275F |
:103420000E94C72EA20EB31EC41ED51EC601B50132 |
:1034300028E030E040E050E00E94C72E309328059D |
:10344000209327058091BD018823D9F1E0903005B4 |
:10345000F09031056091B3017091B4012091BD01EC |
:103460000027F7FC0095102F57016801A3E0AA0C74 |
:10347000BB1CCC1CDD1CAA95D1F7AE18BF08C00A36 |
:10348000D10A882777FD8095982FF4E0660F771F83 |
:10349000881F991FFA95D1F73327442755270E9493 |
:1034A000C72EA20EB31EC41ED51EC601B50128E04C |
:1034B00030E040E050E00E94C72E30933105209369 |
:1034C00030058091BE018823A1F1E0901905F090AC |
:1034D0001A056091B7017091B8012091BE010027D3 |
:1034E000F7FC0095102F57016801E3E0AA0CBB1C04 |
:1034F000CC1CDD1CEA95D1F7AE18BF08C00AD10A72 |
:10350000882777FD8095982F3327442755270E94D9 |
:10351000C72EA20EB31EC41ED51EC601B50128E0DB |
:1035200030E040E050E00E94C72E30931A0520930F |
:1035300019051092AE011092AD011092B9011092CE |
:10354000B0011092AF011092BA011092B201109224 |
:10355000B1011092BB011092B4011092B30110920C |
:10356000BD011092B6011092B5011092BC011092EB |
:10357000B8011092B7011092BE018091FF019091A5 |
:103580000002A0910102B09102028093EB0190939E |
:10359000EC01A093ED01B093EE018091EF019091C9 |
:1035A000F001A091F101B091F2018093DB019093C1 |
:1035B000DC01A093DD01B093DE018091F7019091D1 |
:1035C000F801A091F901B091FA018093E301909381 |
:1035D000E401A093E501B093E6018091F30190919D |
:1035E000F401A091F501B091F6018093DF01909371 |
:1035F000E001A093E101B093E2018091FB01909181 |
:10360000FC01A091FD01B091FE018093E701909330 |
:10361000E801A093E901B093EA018FEC80937A006E |
:1036200020911402309115028091DE04E82FFF27CB |
:10363000EE0FFF1FE255FB4F8081918182599F4F12 |
:10364000281739071CF42F5F3F4F0CC080819181F0 |
:1036500082599F4F821793074CF42115310531F0A1 |
:10366000215030403093150220931402209116020D |
:10367000309117028091DF04E82FFF27EE0FFF1F24 |
:10368000E255FB4F8081918182599F4F281739075E |
:103690001CF42F5F3F4F0CC08081918182599F4F56 |
:1036A000821793074CF42115310531F02150304039 |
:1036B00030931702209316022091180230911902BC |
:1036C0008091E004E82FFF27EE0FFF1FE255FB4F2C |
:1036D0008081918182599F4F281739071CF42F5FF1 |
:1036E0003F4F0CC08081918182599F4F8217930771 |
:1036F0004CF42115310531F021503040309319023E |
:103700002093180220911A0230911B028091E1044B |
:10371000E82FFF27EE0FFF1FE255FB4F80819181BD |
:1037200082599F4F281739071CF42F5F3F4F0CC059 |
:103730008081918182599F4F821793074CF4211504 |
:10374000310531F02150304030931B0220931A0292 |
:10375000809114029091150297FF05C010921502F6 |
:10376000109214020AC08F3F910539F034F08FEFA8 |
:1037700090E090931502809314028091160290912C |
:10378000170297FF05C010921702109216020AC086 |
:103790008F3F910539F034F08FEF90E0909317024E |
:1037A00080931602809118029091190297FF05C02C |
:1037B00010921902109218020AC08F3F910539F039 |
:1037C00034F08FEF90E0909319028093180280916B |
:1037D0001A0290911B0297FF05C010921B021092D3 |
:1037E0001A020AC08F3F910539F034F08FEF90E054 |
:1037F00090931B0280931A021F910F91FF90EF90FC |
:10380000DF90CF90BF90AF90089510927A00809192 |
:10381000B901882369F08091AD019091AE0160916A |
:10382000B90177270E94922E7093170560931605B1 |
:103830008091BA01882369F08091AF019091B00125 |
:103840006091BA0177270E94922E709315056093BC |
:1038500014058091BB01882369F08091B10190919A |
:10386000B2016091BB0177270E94922E70932B05C5 |
:1038700060932A058091BC018823D1F06091B50145 |
:103880007091B6012091BC01882777FD8095982F13 |
:10389000F4E0660F771F881F991FFA95D1F7332739 |
:1038A000442755270E94C72E3093280520932705CB |
:1038B0008091BD018823D1F06091B3017091B40172 |
:1038C0002091BD01882777FD8095982FE4E0660F51 |
:1038D000771F881F991FEA95D1F73327442755276B |
:1038E0000E94C72E30933105209330058091BE0190 |
:1038F000882399F06091B7017091B8012091BE01C1 |
:10390000882777FD8095982F3327442755270E94D5 |
:10391000C72E30931A05209319051092AE0110920C |
:10392000AD011092B9011092B0011092AF01109246 |
:10393000BA011092B2011092B1011092BB01109223 |
:10394000B4011092B3011092BD011092B601109211 |
:10395000B5011092BC011092B8011092B7011092FB |
:10396000BE018FEC80937A002091140230911502F1 |
:103970008091DE04E82FFF27EE0FFF1FE255FB4F7B |
:103980008081918182599F4F281739071CF42F5F3E |
:103990003F4F0CC08081918182599F4F82179307BE |
:1039A0004CF42115310531F021503040309315028F |
:1039B0002093140220911602309117028091DF04A7 |
:1039C000E82FFF27EE0FFF1FE255FB4F808191810B |
:1039D00082599F4F281739071CF42F5F3F4F0CC0A7 |
:1039E0008081918182599F4F821793074CF4211552 |
:1039F000310531F0215030403093170220931602E8 |
:103A000020911802309119028091E004E82FFF27DD |
:103A1000EE0FFF1FE255FB4F8081918182599F4F2E |
:103A2000281739071CF42F5F3F4F0CC0808191810C |
:103A300082599F4F821793074CF42115310531F0BD |
:103A400021503040309319022093180220911A021D |
:103A500030911B028091E104E82FFF27EE0FFF1F3A |
:103A6000E255FB4F8081918182599F4F281739077A |
:103A70001CF42F5F3F4F0CC08081918182599F4F72 |
:103A8000821793074CF42115310531F02150304055 |
:103A900030931B0220931A02809114029091150218 |
:103AA00097FF05C010921502109214020AC08F3FB2 |
:103AB000910539F034F08FEF90E0909315028093E8 |
:103AC0001402809116029091170297FF05C0109280 |
:103AD0001702109216020AC08F3F910539F034F098 |
:103AE0008FEF90E090931702809316028091180256 |
:103AF0009091190297FF05C01092190210921802B6 |
:103B00000AC08F3F910539F034F08FEF90E0909329 |
:103B100019028093180280911A0290911B0297FF5C |
:103B200005C010921B0210921A0208958F3F910552 |
:103B300039F034F08FEF90E090931B0280931A02DB |
:103B400008951F938091E5048B3F98F08B3F19F403 |
:103B5000809114020EC08C3F19F48091160209C0A6 |
:103B60008D3F19F48091180204C08E3F21F480919A |
:103B70001A028093810180918101882319F41092A7 |
:103B8000810104C08F3F11F4809381018091E4048E |
:103B90008B3F98F08B3F19F4809114020EC08C3F3C |
:103BA00019F48091160209C08D3F19F48091180212 |
:103BB00004C08E3F21F480911A028093800180918D |
:103BC0008001882319F41092800105C0843618F012 |
:103BD00084E6809380018091E6048B3F98F08B3FD0 |
:103BE00019F4809114020EC08C3F19F480911602D2 |
:103BF00009C08D3F19F48091180204C08E3F21F452 |
:103C000080911A028093820180918201882319F4A5 |
:103C10001092820105C0843618F084E680938201F8 |
:103C20008091E8048B3F98F08B3F19F48091140247 |
:103C30000EC08C3F19F48091160209C08D3F19F413 |
:103C40008091180204C08E3F21F480911A02809363 |
:103C5000830180918301882319F41092830104C0A9 |
:103C60008F3F11F4809383018091EF048B3F98F094 |
:103C70008B3F19F4809114020EC08C3F19F480918F |
:103C8000160209C08D3F19F48091180204C08E3FBE |
:103C900021F480911A028093840180918401882309 |
:103CA00019F41092840104C08F3F11F480938401B1 |
:103CB0008091F0048B3F98F08B3F19F480911402AF |
:103CC0000EC08C3F19F48091160209C08D3F19F483 |
:103CD0008091180204C08E3F21F480911A028093D3 |
:103CE0008501809185018B3010F48AE002C08F3FFE |
:103CF00011F4809385018091F1048B3F98F08B3F04 |
:103D000019F4809114020EC08C3F19F480911602B0 |
:103D100009C08D3F19F48091180204C08E3F21F430 |
:103D200080911A028093860180918601882319F47C |
:103D30001092860104C08F3F11F480938601809118 |
:103D4000F6048B3F98F08B3F19F4809114020EC05B |
:103D50008C3F19F48091160209C08D3F19F48091AF |
:103D6000180204C08E3F21F480911A0280938801CA |
:103D700080918801882319F41092880104C08F3F34 |
:103D800011F4809388018091F7048B3F98F08B3F6A |
:103D900019F4809114020EC08C3F19F48091160220 |
:103DA00009C08D3F19F48091180204C08E3F21F4A0 |
:103DB00080911A028093280280912802882319F4A6 |
:103DC0001092280204C08F3F11F480932802809142 |
:103DD000F8048B3F98F08B3F19F4809114020EC0C9 |
:103DE0008C3F19F48091160209C08D3F19F480911F |
:103DF000180204C08E3F21F480911A028093290298 |
:103E000080912902882319F41092290204C08F3F5F |
:103E100011F4809329028091F9048B3F98F08B3F35 |
:103E200019F4809114020EC08C3F19F4809116028F |
:103E300009C08D3F19F48091180204C08E3F21F40F |
:103E400080911A0280932A0280912A02882319F411 |
:103E500010922A0204C08F3F11F480932A028091AD |
:103E6000FA048B3F98F08B3F19F4809114020EC036 |
:103E70008C3F19F48091160209C08D3F19F480918E |
:103E8000180204C08E3F21F480911A0280932B0205 |
:103E900080912B02882319F410922B0204C08F3FCB |
:103EA00011F480932B029091FB049B3FB0F09B3F59 |
:103EB00019F48091140204C09C3F29F480911602E9 |
:103EC000809389010CC09D3F19F480911802F8CFAE |
:103ED0009E3F29F480911A02F3CF9093890180913B |
:103EE0008901882319F41092890104C08F3F11F4CD |
:103EF000809389019B3FB0F09B3F19F4809114029D |
:103F000004C09C3F29F480911602809389010CC063 |
:103F10009D3F19F480911802F8CF9E3F29F48091BB |
:103F20001A02F3CF9093890180918901882319F4B3 |
:103F30001092890104C08F3F11F4809389019B3F47 |
:103F4000B0F09B3F19F48091140204C09C3F29F407 |
:103F500080911602809389010CC09D3F19F48091D5 |
:103F60001802F8CF9E3F29F480911A02F3CF909364 |
:103F7000890180918901882319F41092890104C074 |
:103F80008F3F11F48093890110918801612F772769 |
:103F900067FD7095872F972F0E949D2D17FF06C0F4 |
:103FA00020E030E040E853E40E94F82C27E137EBB2 |
:103FB00041ED58E30E94172E60937C0170937D01C0 |
:103FC00080937E0190937F018091ED048093290579 |
:103FD0008091EC04809318051F91089581E08093EF |
:103FE000DA0442E04093DB0483E08093DC0494E055 |
:103FF0009093DD0435E03093DE0486E08093DF04A7 |
:1040000087E08093E0041092E2048EE18093E30461 |
:104010008BEF8093E5048AE08093E60422E320930B |
:10402000E4042093E8044093E7049093E904109299 |
:10403000EA0490E19093EB048FE08093EC048AEF24 |
:104040008093ED048AE18093EE049093EF048FEA6D |
:104050008093F0048093F1048AE58093F20483E274 |
:104060008093F30484E18093F4041092F504309378 |
:10407000F60482EB8093F7041092F8041092F9048E |
:104080001092FA0484E68093FB0488E28093FC0497 |
:10409000109200052093FD0486E98093FE0430937E |
:1040A000FF04A8E0B5E0E8E6F1E08CE001900D92B5 |
:1040B0008150E1F7089581E08093DA0452E0509353 |
:1040C000DB0483E08093DC0444E04093DD0435E0CE |
:1040D0003093DE0486E08093DF0487E08093E00481 |
:1040E00028E02093E1041092E2049EE19093E3041F |
:1040F0008BEF8093E5048AE08093E60486E4809366 |
:10410000E4049093E8045093E7044093E904209377 |
:10411000EA0490E19093EB048FE08093EC048AEF43 |
:104120008093ED048AE18093EE049093EF0488E796 |
:104130008093F00496E99093F1048AE58093F20469 |
:1041400083E28093F30484E18093F4041092F504F5 |
:104150003093F60482EB8093F7041092F8041092E7 |
:10416000F9041092FA0484E68093FB0488E28093B9 |
:10417000FC041092000582E38093FD049093FE04FA |
:104180003093FF04A8E0B5E0E0E7F1E08CE00190B7 |
:104190000D928150E1F7089580912302882301F563 |
:1041A00010926602109265021092690210926B02E0 |
:1041B00080919601882311F0809365028091970188 |
:1041C000882311F08093660280919801882311F072 |
:1041D00080936B0280919901882311F0809369028A |
:1041E0008091650299279093790480937804809157 |
:1041F0006602992790937B0480937A0480916B02E6 |
:10420000992790937D0480937C048091690299277B |
:1042100090937F0480937E041092CB011092CC0186 |
:104220000E944C180895CF93DF93109220051092AE |
:104230001F05109222051092210580E090E0A0E079 |
:10424000B0E08093230590932405A0932505B093B7 |
:1042500026051092D4011092D3011092D60110922B |
:10426000D5011092D8011092D7010E94051C85E05B |
:1042700090E00E949D0BEC01CE010E94A60B8823CA |
:10428000D9F30E94051C8091E20480FF10C0809148 |
:104290000A0190910B01875B934038F480910A01E9 |
:1042A00090910B018E5E924010F40E940E1080914E |
:1042B00016059091170597FF03C0909581959F4F24 |
:1042C0009093D4018093D3018091140590911505AA |
:1042D00097FF03C0909581959F4F9093D60180934F |
:1042E000D50180912A0590912B0597FF03C09095E9 |
:1042F00081959F4F9093D8018093D70188E0EFE19B |
:10430000F5E0A5E3B1E0182E0E94272F1092EF01EF |
:104310001092F0011092F1011092F2011092F3014B |
:104320001092F4011092F5011092F6011092F7012B |
:104330001092F8011092F9011092FA011092FB010B |
:104340001092FC011092FD011092FE011092FF01EB |
:1043500010920002109201021092020210921705B0 |
:1043600010921605109215051092140510922B0547 |
:1043700010922A058091060190910701A0910801F1 |
:10438000B091090190938604809385041092C00136 |
:104390001092BF01109207021092080210920902B7 |
:1043A00010920A0280910B0290910C0290930E02DF |
:1043B00080930D020E94C02C82E390E09093A701AD |
:1043C0008093A601DF91CF910895CF93DF93109250 |
:1043D000200510921F05109222051092210580E001 |
:1043E00090E0A0E0B0E08093230590932405A09393 |
:1043F0002505B09326050E94051C85E090E00E94EB |
:104400009D0BEC01CE010E94A60B8823D9F30E94DC |
:10441000051C809127059091280597FF03C0909572 |
:1044200081959F4F60E170E00E94922ECFE1D5E030 |
:104430007093200560931F058091300590913105A0 |
:1044400097FF03C0909581959F4F60E170E00E94B7 |
:10445000922E7093220560932105609183047091E0 |
:104460008404882777FD8095982F0E949D2D609366 |
:10447000230570932405809325059093260588E0F5 |
:10448000A5E3B1E0FE01182E0E94382FDF91CF91F5 |
:1044900008951F93182F0EC080912302882361F482 |
:1044A00084E690E09093A7018093A6018AEF90E0C4 |
:1044B0000E94E00C115080F71F910895A4E0B0E035 |
:1044C000E4E6F2E20C94E22E0E94A619299AE09109 |
:1044D000DC04AE2FBB27AA0FBB1FA255BB4F0D900C |
:1044E000BC91A02D9D0128583F4F3A83298337FF67 |
:1044F00002C01A82198280911C02843608F04AC0D8 |
:1045000080910101882331F484EF91E09093A70119 |
:104510008093A6018091350290913602009731F088 |
:104520000197909336028093350204C010922302C3 |
:1045300010921202289A8091300290913102815D8E |
:10454000974028F18091F304482F55275A834983D7 |
:1045500081E080931202E091DA04FF27EE0FFF1F43 |
:10456000E255FB4F11821082E091DB04FF27EE0F32 |
:10457000FF1FE255FB4F11821082E091DD04FF27FF |
:10458000EE0FFF1FE255FB4F11821082CEC1109239 |
:104590002302CBC180911C028D3808F4C6C1109251 |
:1045A00012028091F40422E3829FC00111249093AF |
:1045B00036028093350269817A81693271056CF027 |
:1045C00080913002909131027FEF8F3F970781F108 |
:1045D0000196909331028093300280913002909145 |
:1045E0003102883C910520F089819A81889704F5F1 |
:1045F00010924B0210924C0210924D0210924E02F9 |
:1046000010924702109248021092490210924A02F8 |
:104610001092FF0110920002109201021092020209 |
:1046200010920302109204021092050210920602E8 |
:10463000E981FA81E93CF1050CF4D6C080912302AE |
:10464000882309F072C1E091DD04FF27EE0FFF1F00 |
:10465000E255FB4F808191818C3491050CF4C1C0EF |
:10466000809134028F5F80933402893C08F45DC1ED |
:1046700029980E9413211092230210923402109262 |
:104680003102109230028091DA04282F3327F90189 |
:10469000EE0FFF1FE255FB4F80819181873491051A |
:1046A0009CF4E091DB04FF27EE0FFF1FE255FB4F68 |
:1046B0000190F081E02DF7FF03C0F095E195FF4FE9 |
:1046C000E734F1050CF46CC08091DB04682F772788 |
:1046D000DB01AA0FBB1FA255BB4F8D919C91119777 |
:1046E000873491053CF0F901EE0FFF1FE255FB4FB7 |
:1046F000808191818D919C918734910564F0F901BD |
:10470000EE0FFF1FE255FB4F8081918187349105A9 |
:1047100014F042E001C041E0FB01EE0FFF1FE25543 |
:10472000FB4F80819181863491055CF4F901EE0F95 |
:10473000FF1FE255FB4F80819181873491050CF07A |
:1047400043E0FB01EE0FFF1FE255FB4F808191819B |
:104750008A5B9F4F5CF4F901EE0FFF1FE255FB4FA0 |
:1047600080819181873491050CF044E0660F771FBA |
:1047700062557B4FFB01808191818A5B9F4F5CF486 |
:10478000220F331F22553B4FF901808191818634DE |
:1047900091050CF445E0A2E0B0E0042E0E942C2F1D |
:1047A0000E94B1034AE36AED74E00E94D2030E94C2 |
:1047B000B1030E9449228091E20480FFB6C080913B |
:1047C0000A0190910B01875B934040F480910A01AC |
:1047D00090910B018E5E924008F0A7C00E940E10CF |
:1047E000A4C010923402A1C049815A8143325105BC |
:1047F0000CF09BC08091DD04482F5527FA01EE0F85 |
:10480000FF1FE255FB4F80819181855B9F4F0CF02C |
:104810006DC0809133028F5F80933302893C08F42E |
:1048200067C088EC8093330281E090E0909331027E |
:104830008093300281E08093230210924302109211 |
:10484000440210924502109246021092FF0110920B |
:1048500000021092010210920202109203021092C2 |
:10486000040210920502109206021092EF011092BB |
:10487000F0011092F1011092F2011092F7011092E2 |
:10488000F8011092F9011092FA018091DB019091E8 |
:10489000DC01A091DD01B091DE018093F3019093E2 |
:1048A000F401A093F501B093F6018091E30190919A |
:1048B000E401A091E501B091E6018093FB019093A2 |
:1048C000FC01A093FD01B093FE0110924B021092E7 |
:1048D0004C0210924D0210924E021092470210921A |
:1048E00048021092490210924A0202C0109233020A |
:1048F000440F551F42555B4FFA01808191818C34E2 |
:1049000091058CF0809132028F5F80933202893C56 |
:1049100060F01092230288EC8093320210923102F0 |
:104920001092300202C010923202809167018150D1 |
:1049300080936701809167018F3F29F08091120277 |
:10494000882309F412C10E94A11DE091DA04FF2717 |
:10495000EE0FFF1FDF01A255BB4F8D919C9160911F |
:10496000E9047727EC53FB4F208131814091EA0421 |
:104970005527FC01E69FC001E79F900DF69F900D23 |
:104980001124F901E49F9001E59F300DF49F300D53 |
:104990001124820F931F90931E0280931D02E091B9 |
:1049A000DB04FF27EE0FFF1FDF01A255BB4F8D91E8 |
:1049B0009C91EC53FB4F20813181FC01E69FC001AB |
:1049C000E79F900DF69F900D1124B901649F90010F |
:1049D000659F300D749F300D1124820F931F9093AB |
:1049E000200280931F02E091DD04FF27EE0FFF1FDE |
:1049F000E255FB4F80819181909581959F4F9093D7 |
:104A000022028093210210918501612F772767FD93 |
:104A10007095872F972F0E949D2D17FF06C020E0CD |
:104A200030E040E853E40E94F82C20E030E040E21F |
:104A300051E40E94F82C20E030E040E85BE30E9463 |
:104A4000172E5B016C0160932C0570932D058093EC |
:104A50002E0590932F0510918601612F772767FD12 |
:104A60007095872F972F0E949D2D17FF06C020E07D |
:104A700030E040E853E40E94F82C20E030EE4BE2B6 |
:104A800057E40E943A2D60931B0570931C05809398 |
:104A90001D0590931E058091E20482FF0CC080E00A |
:104AA00090E0A0E0B0E080931B0590931C05A093DC |
:104AB0001D05B0931E0520E030E040E050E0C60147 |
:104AC000B5010E94A72D882364F480E090E0A0E067 |
:104AD000B0E080932C0590932D05A0932E05B09304 |
:104AE0002F0520E030E040E050E060911B05709120 |
:104AF0001C0580911D0590911E050E94A72D8823FD |
:104B000064F480E090E0A0E0B0E080931B05909317 |
:104B10001C05A0931D05B0931E05809112028823E9 |
:104B200021F1109222021092210210921E02109284 |
:104B30001D021092200210921F028DEC9CECACEC36 |
:104B4000BDE380932C0590932D05A0932E05B09383 |
:104B50002F058AE097EDA3EABBE380931B059093B2 |
:104B60001C05A0931D05B0931E058091C101909175 |
:104B7000C2018D54914008F490C02091DF01309122 |
:104B8000E0014091E1015091E2018091DB019091BF |
:104B9000DC01A091DD01B091DE01B901681B790B48 |
:104BA00070933A02609339022091E7013091E80155 |
:104BB0004091E9015091EA018091E3019091E40173 |
:104BC000A091E501B091E601281B390B3093380222 |
:104BD000209337021092C2011092C101673A710509 |
:104BE00034F08091D3019091D401019608C06A55A8 |
:104BF0007F4F4CF48091D3019091D4010197909311 |
:104C0000D4018093D301273A310534F08091D50146 |
:104C10009091D601019608C02A553F4F4CF48091DF |
:104C2000D5019091D60101979093D6018093D5013B |
:104C300010927A008091DB019091DC01A091DD015E |
:104C4000B091DE018093F3019093F401A093F501FC |
:104C5000B093F6018091E3019091E401A091E50108 |
:104C6000B091E6018093FB019093FC01A093FD01BC |
:104C7000B093FE018091EB019091EC01A091ED01C8 |
:104C8000B091EE018093030290930402A093050279 |
:104C9000B09306028FEC80937A006091DB017091F3 |
:104CA000DC018091DD019091DE01A090EE04BB2437 |
:104CB000CC24DD24E0902705F0902805A60195017D |
:104CC0000E94C72E0027F7FC0095102F2E193F09D0 |
:104CD000400B510BCA01B90120E130E040E050E047 |
:104CE0000E94C72E39014A0120933F0230934002AF |
:104CF00040934102509342026091E3017091E401BC |
:104D00008091E5019091E601E0903005F090310549 |
:104D1000A60195010E94C72E0027F7FC0095102FD1 |
:104D20002E193F09400B510BCA01B90120E130E0B7 |
:104D300040E050E00E94C72E20933B0230933C029B |
:104D400040933D0250933E02E5EF6E16E1E07E0691 |
:104D5000E0E08E06E0E09E062CF084EF91E0A0E01B |
:104D6000B0E00DC0FCE06F16FEEF7F06FFEF8F0690 |
:104D7000FFEF9F0664F48CE09EEFAFEFBFEF8093F0 |
:104D80003F0290934002A0934102B0934202253F1C |
:104D900061E0360760E0460760E056072CF084EFDC |
:104DA00091E0A0E0B0E009C02C503E4F4F4F5F4F64 |
:104DB00064F48CE09EEFAFEFBFEF80933B029093E3 |
:104DC0003C02A0933D02B0933E0210927A00809183 |
:104DD000EF019091F001A091F101B091F2012091C9 |
:104DE0003F02309140024091410250914202821BA9 |
:104DF000930BA40BB50B8093EF019093F001A0935C |
:104E0000F101B093F2018091F7019091F801A09126 |
:104E1000F901B091FA0120913B0230913C0240919E |
:104E20003D0250913E02821B930BA40BB50B809365 |
:104E3000F7019093F801A093F901B093FA018091E2 |
:104E40002102909122025C01CC24B7FCC094DC2C9E |
:104E5000A0924302B0924402C0924502D092460210 |
:104E600097FF03C0909581959F4F84973CF0809168 |
:104E7000E20484FD03C081E080938A016090FF0119 |
:104E8000709000028090010290900202C501B7FE6E |
:104E900003C0909581959F4F7C010027F7FC0095FA |
:104EA000102F2091EB04332744275527C601B50165 |
:104EB0000E945F2E9B01AC01C801B7010E945F2ECA |
:104EC00020E031E040E050E00E94C72E442737FD4B |
:104ED0004095542F621A730A840A950A6092FF0162 |
:104EE0007092000280920102909202028091FF0172 |
:104EF00090910002A0910102B09102028153954766 |
:104F0000A040B04064F080E395E7A0E0B0E080937B |
:104F1000FF0190930002A0930102B09302028091DE |
:104F2000FF0190910002A0910102B0910202805D08 |
:104F30009A48AF4FBF4F64F480ED9AE8AFEFBFEFF0 |
:104F40008093FF0190930002A0930102B0930202AC |
:104F50008FEC80937A008091E20483FFAEC0809151 |
:104F600011028150809311028F3FD9F40E94C41422 |
:104F700090930C0280930B0220910D0230910E024F |
:104F8000821B930B845E9D4F68E671E00E94922E17 |
:104F9000845B90409093100280930F0282E3809391 |
:104FA00011026091DB017091DC018091DD01909133 |
:104FB000DE0120E034E040E050E00E94C72E89018D |
:104FC00037FF03C0109501951F4F6091E301709169 |
:104FD000E4018091E5019091E60120E034E040E0B9 |
:104FE00050E00E94C72EB90137FF03C0709561954C |
:104FF0007F4F601771070CF4B8016332710594F4A8 |
:1050000080918A01882371F080912C02882351F4C9 |
:1050100080910B0290910C0290930E0280930D02EE |
:1050200010928A01209184013327629FC001639FFF |
:10503000900D729F900D112460E470E00E94922EFA |
:10504000A901461B570B14161506A4F580912C02D6 |
:10505000882371F510927A000091FF0110910002EF |
:10506000209101023091020280910F029091100272 |
:10507000BC01469FC001479F900D569F900D112483 |
:1050800060E270E00E94922E882777FD8095982F2D |
:10509000060F171F281F391F0093FF0110930002EE |
:1050A00020930102309302028FEC80937A0005C0B6 |
:1050B000815001C08AEF80932C0280915F048F5F42 |
:1050C00080935F0480912D02815080932D028F3F49 |
:1050D00009F068C081E380932D026091DB0170913B |
:1050E000DC018091DD019091DE01E090EE04FF246F |
:1050F00000271127A80197010E94C72E3093610451 |
:10510000209360046091E3017091E4018091E501D6 |
:105110009091E601A80197010E94C72E3093630485 |
:10512000209362048091270590912805909365044F |
:1051300080936404809130059091310590936704C9 |
:105140008093660480912A0590912B0590936904C1 |
:1051500080936804809124029091250290936B04BF |
:1051600080936A046091070270910802809109029D |
:1051700090910A0220E032E040E050E00E94C72E09 |
:1051800030936D0420936C0489819A8190936F040D |
:1051900080936E0480910B0290910C0290937104A5 |
:1051A000809370046091DB017091DC018091DD01DE |
:1051B0009091DE0120901B0530901C0540901D054C |
:1051C00050901E05E0901605F090170560902C0594 |
:1051D00070902D0580902E0590902F050E949D2D9A |
:1051E000A20191010E94172E5B016C010027F7FCC0 |
:1051F0000095102FC801B7010E949D2DA4019301B5 |
:105200000E94172E9B01AC01C601B5010E94F82C2B |
:105210000E94802D70931705609316056091E3013D |
:105220007091E4018091E5019091E601E090140510 |
:10523000F09015050E949D2DA20191010E94172E4C |
:105240005B016C010027F7FC0095102FC801B70126 |
:105250000E949D2DA40193010E94172E9B01AC0179 |
:10526000C601B5010E94F82C0E94802D709315058F |
:105270006093140560912A0570912B05A090EB01B5 |
:10528000B090EC01C090ED01D090EE01882777FD41 |
:105290008095982F0E949D2D7B018C0120E030E0AD |
:1052A00040E05FE3C401B3010E94172E9B01AC01F3 |
:1052B000C801B7010E94172E7B018C01C601B50100 |
:1052C0000E949D2DA20191010E94172E9B01AC010D |
:1052D000C801B7010E94F82C0E94802D70932B0505 |
:1052E00060932A058091160590911705815098408A |
:1052F00034F080E098E09093170580931605809134 |
:105300001605909117058050984F34F480E098EF7F |
:1053100090931705809316058091140590911505BB |
:105320008150984034F080E098E090931505809388 |
:10533000140580911405909115058050984F34F410 |
:1053400080E098EF909315058093140580912A05CD |
:1053500090912B058150984034F080E098E0909334 |
:105360002B0580932A0580912A0590912B0580506A |
:10537000984F34F480E098EF90932B0580932A05A2 |
:105380008091E204992780FFCDC02091810181FFA7 |
:105390000EC02233B0F480912402909125024497EC |
:1053A0009093270280932602109213020DC08091E1 |
:1053B000E704289FC001112444979093270280930B |
:1053C000260281E08093130280911202882321F04B |
:1053D0001092270210922602209124023091250279 |
:1053E0004091260250912702421753070CF09AC0B1 |
:1053F00080911302882309F495C0241B350B8091FA |
:1054000082019927BC01269FC001279F900D369FDE |
:10541000900D112460E170E00E94922E09811A81A2 |
:10542000061B170B2091BF013091C00180918001B4 |
:105430009927FC012E9FC0012F9F900D3E9F900D3C |
:10544000112468E070E00E94922E061B170B6091F9 |
:105450000702709108028091090290910A0220E0EF |
:1054600032E040E050E00E94C72ECA01B90120910D |
:1054700083013327442755270E945F2E20E230E026 |
:1054800040E050E00E94C72EFFEF2E3C3F0714F48F |
:105490002EEC3FEF80912E0290912F02AC0164E040 |
:1054A000440F551F6A95E1F7481B590B233331050B |
:1054B00014F022E330E0021B130BCA01800F911F8E |
:1054C00060E170E00E94922E70932F0260932E0292 |
:1054D0008091E3049927681779078CF429813A8130 |
:1054E000281739072CF090932F0280932E0207C0C3 |
:1054F00049815A8150932F0240932E020DC0809112 |
:105500002E0290912F0269817A816817790724F41D |
:1055100070932F0260932E0280912E0290912F02A1 |
:105520009A838983C0902A05D0902B0580914302ED |
:1055300090914402C81AD90A95E6C916D10424F0FC |
:1055400014E6C12ED12C09C0ECE9CE16EFEFDE0631 |
:1055500024F4BCE9CB2EBFEFDB2E409078015090B5 |
:10556000790160907A0170907B01609116057091CD |
:10557000170520911D0230911E0240914F0250915B |
:105580005002241B350B621B730B882777FD809517 |
:10559000982F0E949D2D9B01AC01C301B2010E9476 |
:1055A000172E0E94802D709368026093670280918D |
:1055B0006702909168028C01222717FD2095322FF7 |
:1055C00080914B0290914C02A0914D02B0914E02FD |
:1055D000080F191F2A1F3B1F00934B0210934C0208 |
:1055E00020934D0230934E02101611061206130638 |
:1055F000ACF4C80117FF03C0909581959F4F60E000 |
:1056000071E00E94922E6F5F7F4F882777FD809513 |
:10561000982F061B170B280B390B14C0C80117FF56 |
:1056200003C0909581959F4F60E071E00E94922E9B |
:105630006F5F7F4F882777FD8095982F060F171F84 |
:10564000281F391F00934B0210934C0220934D02E8 |
:1056500030934E0280914B0290914C02A0914D02EA |
:10566000B0914E028138FEE39F07F0E0AF07F0E013 |
:10567000BF072CF080E89EE3A0E0B0E009C08058AE |
:10568000914CAF4FBF4F64F480E891ECAFEFBFEFA8 |
:1056900080934B0290934C02A0934D02B0934E0224 |
:1056A000609167027091680280907C0190907D010A |
:1056B000A0907E01B0907F01882777FD8095982F7C |
:1056C0000E949D2D7B018C0160914B0270914C02D8 |
:1056D00080914D0290914E020E949D2D9B01AC0144 |
:1056E000C501B4010E94172E9B01AC01C801B7018E |
:1056F0000E94F82C0E94802D9601260F371F4981A9 |
:105700005A81240F351F22244A30510514F4A1E098 |
:105710002A2E37FD02C0222019F040E050E008C0D8 |
:1057200080912905482F5527241735070CF4A90126 |
:1057300080911805E82FFF27FC83EB839F01E41776 |
:10574000F5070CF49A012093650229813A81261B02 |
:10575000370BB9016C0D7D1D77FD02C0222019F0B9 |
:1057600080E090E007C080912905992768177907A4 |
:105770000CF4CB012B813C81281739070CF49C01D8 |
:1057800020936602609114057091150520911F0207 |
:10579000309120024091510250915202241B350B4E |
:1057A000621B730B882777FD8095982F0E949D2D93 |
:1057B0009B01AC01C301B2010E94172E0E94802DF3 |
:1057C000709364026093630280916302909164021B |
:1057D0008C01222717FD2095322F8091470290914E |
:1057E0004802A0914902B0914A02080F191F2A1FCE |
:1057F0003B1F0093470210934802209349023093C5 |
:105800004A021016110612061306ACF4C80117FF5F |
:1058100003C0909581959F4F60E071E00E94922EA9 |
:105820006F5F7F4F882777FD8095982F061B170B9A |
:10583000280B390B14C0C80117FF03C09095819540 |
:105840009F4F60E071E00E94922E6F5F7F4F88272C |
:1058500077FD8095982F060F171F281F391F00937B |
:105860004702109348022093490230934A028091E4 |
:10587000470290914802A0914902B0914A028138B2 |
:105880003EE3930730E0A30730E0B3072CF080E855 |
:105890009EE3A0E0B0E009C08058914CAF4FBF4FED |
:1058A00064F480E891ECAFEFBFEF809347029093F0 |
:1058B0004802A0934902B0934A026091630270913A |
:1058C0006402882777FD8095982F0E949D2D7B018B |
:1058D0008C01609147027091480280914902909139 |
:1058E0004A020E949D2D9B01AC01C501B4010E949A |
:1058F000172E9B01AC01C801B7010E94F82C0E9431 |
:10590000802D29813A81260F371F2C193D0937FD3B |
:1059100002C0222019F040E050E008C08091290523 |
:10592000482F5527241735070CF4A9012B813C81FA |
:10593000241735070CF49A0120936B0289819A8110 |
:10594000861B970BBC016C197D0977FD02C02220D4 |
:1059500019F020E030E008C080912905282F332776 |
:10596000621773070CF49B018B819C81821793074C |
:105970000CF4C90180936902E2E1CC5F0C94FE2E25 |
:105980008091530290915402A0915502B091560219 |
:1059900080935B0290935C02A0935D02B0935E02E1 |
:1059A0008091570290915802A0915902B0915A02E9 |
:1059B00080935F0290936002A0936102B0936202B1 |
:1059C00008951092500210924F02109252021092BB |
:1059D00051020895FC014150504030F001900616EC |
:1059E000D1F73197CF010895882799270895505806 |
:1059F000192EEFD001D0D2C0BA17620773078407FF |
:105A00009507B1F188F40EF410940B2EBA2FA02D47 |
:105A1000062E622F202D072E732F302D082E842F57 |
:105A2000402D092E952F502DFF275523B9F0591BD6 |
:105A300049F0573E98F0469537952795A795F04041 |
:105A40005395C9F776F0BA0F621F731F841F30F4A5 |
:105A5000879577956795B795F040939517FA0F2E30 |
:105A60000895BF1BBB27BA0B620B730B840BF6CFD9 |
:105A7000DEF6DBC0AED001D091C0552359F099239A |
:105A800069F09F575F57951B33F442F4903811F437 |
:105A9000915805C09BC091589F3F09F4C6C0BB27D1 |
:105AA000112462177307840730F4660F771F881F6D |
:105AB000BB1F915098F311D00F920FD00F920DD0C1 |
:105AC000A0E82617370748071B0609F0A048BA2F99 |
:105AD000602D7F918F9100240895A0E80024621723 |
:105AE00073078407B10528F0621B730B840BB1099F |
:105AF0000A2A660F771F881FBB1FA69581F7089596 |
:105B000097FB73D09F3738F0FEE9F91B982F872F4A |
:105B1000762F6B2F05C086C09695879577956795EC |
:105B2000F150D0F73EF490958095709561957F4F38 |
:105B30008F4F9F4F0895E89403C097FB0EF4F3DF57 |
:105B4000B62F672F782F892F9EE9002427C00ED00B |
:105B50005EF004C00BD026F001C008D019F020F48C |
:105B60008FEF089580E0089581E0089597FB092E56 |
:105B7000052600F8689430D0E89407FC07C0621747 |
:105B800073078407950721F008F40094079498940C |
:105B900008959A95BB0F661F771F881F11249923BC |
:105BA000A1F08823B2F79F3F59F0BB0F48F421F4CE |
:105BB000002011F460FF04C06F5F7F4F8F4F9F4F35 |
:105BC000881F9795879597F908952CC09FEF80ECD3 |
:105BD0000895052E092607FA440F551F5F3F79F0F7 |
:105BE000AA27A51708F051E04795880F991F9F3FF6 |
:105BF00031F0BB27B91708F091E0879508959F9180 |
:105C00009F911124E3CF97FB880F991F9F3F31F09D |
:105C1000BB27B91708F091E0879508959F919F9150 |
:105C20001124D4CF66277727882799270895D1DFB5 |
:105C300001D0B4CF992339F0552329F09F575F57EE |
:105C4000950F13F49AF1F1CF91589F3FE1F3629FC2 |
:105C5000A12D0F92BB27639FA00DB11DEE27729F50 |
:105C6000A00DB11DEE1FAF93AA27649FB00DE11DDB |
:105C7000739FB00DE11DAA1F6627829FB00DE11D25 |
:105C8000A61F5527749FE00DA11D551F839FE00D92 |
:105C9000A11D561F849FA00D511D852F7A2F6E2F99 |
:105CA0001F900F9088231AF4939539F48FCF000C2E |
:105CB000111CBB1F661F771F881F01280895629F54 |
:105CC000D001739FF001829FE00DF11D649FE00DF4 |
:105CD000F11D929FF00D839FF00D749FF00D659F55 |
:105CE000F00D9927729FB00DE11DF91F639FB00D54 |
:105CF000E11DF91FBD01CF0111240895AA1BBB1B93 |
:105D000051E107C0AA1FBB1FA617B70710F0A61BBB |
:105D1000B70B881F991F5A95A9F780959095BC01DC |
:105D2000CD01089597FB092E07260AD077FD04D0F0 |
:105D3000E5DF06D000201AF4709561957F4F089535 |
:105D4000F6F7909581959F4F0895A1E21A2EAA1B10 |
:105D5000BB1BFD010DC0AA1FBB1FEE1FFF1FA2171B |
:105D6000B307E407F50720F0A21BB30BE40BF50B18 |
:105D7000661F771F881F991F1A9469F760957095A1 |
:105D8000809590959B01AC01BD01CF01089597FBD3 |
:105D9000092E05260ED057FD04D0D7DF0AD0001CEF |
:105DA00038F450954095309521953F4F4F4F5F4FB8 |
:105DB0000895F6F790958095709561957F4F8F4F78 |
:105DC0009F4F08952F923F924F925F926F927F92D2 |
:105DD0008F929F92AF92BF92CF92DF92EF92FF92FB |
:105DE0000F931F93CF93DF93CDB7DEB7CA1BDB0BA7 |
:105DF0000FB6F894DEBF0FBECDBF09942A8839884C |
:105E000048885F846E847D848C849B84AA84B98452 |
:105E1000C884DF80EE80FD800C811B81AA81B9815E |
:105E2000CE0FD11D0FB6F894DEBF0FBECDBFED0172 |
:105E30000895EE0FFF1F0590F491E02D0994F99954 |
:105E4000FECFB2BDA1BDF89A119600B40895F7DF58 |
:105E500001921A94E1F70895F999FECFB2BDA1BD60 |
:105E600000BC11960FB6F894FA9AF99A0FBE0895ED |
:0C5E70000190F2DF1A94E1F70895FFCFD3 |
:105E7C0001640A016400007D0000FF0301020304B9 |
:105E8C0005060708090A48616C6C6F2057656C742D |
:105E9C0000000000000000000000000000000000F6 |
:105EAC0000000000000000000000000000000000E6 |
:105EBC0000000000000000000000000000000000D6 |
:105ECC0000000000000000000000000000000000C6 |
:105EDC000000000000000C014B616D657261000058 |
:105EEC004E6F726D616C00000000803F17B7D138A7 |
:0C5EFC0030FB103A403296020A640100AC |
:00000001FF |
/branches/v0.60_MicroMag3_Nick666/v0.60/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/v0.60/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/v0.60/Settings.h |
---|
--- branches/v0.60_MicroMag3_Nick666/v0.60/_Settings.h (nonexistent) |
+++ branches/v0.60_MicroMag3_Nick666/v0.60/_Settings.h (revision 554) |
@@ -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/v0.60/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<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE); |
//Free Running Mode, Division Factor 128, Interrupt on |
} |
//####################################################################################### |
// |
void SucheLuftruckOffset(void) |
//####################################################################################### |
{ |
unsigned int off; |
off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]); |
if(off > 20) off -= 10; |
OCR0A = off; |
Delay_ms(100); |
if(MessLuftdruck < 850) off = 0; |
for(; off < 250;off++) |
{ |
OCR0A = off; |
Delay_ms(50); |
printf("."); |
if(MessLuftdruck < 900) break; |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
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ämpfen |
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/v0.60/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<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE) |
/branches/v0.60_MicroMag3_Nick666/v0.60/compass.c |
---|
0,0 → 1,242 |
/* |
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" |
struct MM3_calib_struct ee_calib EEMEM; // Reservierung im EEPROM |
struct MM3_working_struct MM3; |
struct MM3_calib_struct MM3_calib; |
//############################################################################ |
// Initialisierung |
void init_MM3(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(struct MM3_calib_struct)); |
} |
//############################################################################ |
// Wird in der SIGNAL (SIG_OVERFLOW0) aufgerufen |
void timer0_MM3(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 SPDR = 0x33; //if (MM3.AXIS == MM3_Z) // 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) |
} |
} |
//############################################################################ |
// SPI byte ready |
SIGNAL (SIG_SPI) |
//############################################################################ |
{ |
static char tmp; |
int wert; |
switch (MM3.STATE) |
{ |
case MM3_DRDY: // 1. Byte ist da, zwischenspeichern |
tmp = SPDR; |
SPDR = 0x00; // Übertragung von 2. Byte auslösen |
MM3.STATE = MM3_BYTE2; |
return; |
case MM3_BYTE2: // 2. Byte der entsprechenden Achse ist da |
wert = tmp; |
wert <<= 8; // 1. Byte an MSB-Stelle rücken |
wert |= SPDR; // 2. Byte dranpappen |
if(abs(wert) < Max_Axis_Value) // Spikes filtern. Zuweisung nur, wenn Max-Wert nicht überschritten |
switch (MM3.AXIS) |
{ |
case MM3_X: |
MM3.x_axis = wert; |
MM3.AXIS = MM3_Y; |
break; |
case MM3_Y: |
MM3.y_axis = wert; |
MM3.AXIS = MM3_Z; |
break; |
default: //case MM3_Z: |
MM3.z_axis = wert; |
MM3.AXIS = MM3_X; |
} |
MM3.STATE = MM3_RESET; |
} |
} |
//############################################################################ |
// 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; |
GRN_ON; |
ROT_OFF; |
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) |
{ |
ROT_FLASH; |
GRN_FLASH; |
beeptime = 50; |
beeper = 50; |
} |
beeper--; |
// Schleife mit 100 Hz |
timer = SetDelay(10); |
while(!CheckDelay(timer)); |
// Wenn Gas zurück genommen wird, Kalibrierung mit 1/2 Sekunde Verzögerung beenden |
if (PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 100) measurement--; |
} |
// Wertebereich der Achsen |
MM3_calib.X_range = (x_max - x_min); |
MM3_calib.Y_range = (y_max - y_min); |
MM3_calib.Z_range = (z_max - z_min); |
// Offset der Achsen |
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(struct MM3_calib_struct)); |
} |
//############################################################################ |
// Neigungskompensierung und Berechnung der Ausrichtung |
signed int heading_MM3(void) |
//############################################################################ |
{ |
float sin_nick, cos_nick, sin_roll, cos_roll; |
float x_corr, y_corr; |
signed int x_axis,y_axis,z_axis,nicktilt,rolltilt,heading; |
unsigned int div_faktor; |
div_faktor = (uint16_t)EE_Parameter.UserParam1 * 8; |
// Berechung von sinus und cosinus |
nicktilt = (IntegralNick/div_faktor); |
sin_nick = sin_f(nicktilt); |
cos_nick = cos_f(nicktilt); |
rolltilt = (IntegralRoll/div_faktor); |
sin_roll = sin_f(rolltilt); |
cos_roll = cos_f(rolltilt); |
// Offset |
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); |
// Normierung Wertebereich |
if ((MM3_calib.X_range > MM3_calib.Y_range) && (MM3_calib.X_range > MM3_calib.Z_range)) |
{ |
y_axis = ((long)y_axis * MM3_calib.X_range) / MM3_calib.Y_range; |
z_axis = ((long)z_axis * MM3_calib.X_range) / MM3_calib.Z_range; |
} |
else if ((MM3_calib.Y_range > MM3_calib.X_range) && (MM3_calib.Y_range > MM3_calib.Z_range)) |
{ |
x_axis = ((long)x_axis * MM3_calib.Y_range) / MM3_calib.X_range; |
z_axis = ((long)z_axis * MM3_calib.Y_range) / MM3_calib.Z_range; |
} |
else //if ((MM3_calib.Z_range > MM3_calib.X_range) && (MM3_calib.Z_range > MM3_calib.Y_range)) |
{ |
x_axis = ((long)x_axis * MM3_calib.Z_range) / MM3_calib.X_range; |
y_axis = ((long)y_axis * MM3_calib.Z_range) / MM3_calib.Y_range; |
} |
DebugOut.Analog[9] = x_axis; |
DebugOut.Analog[10] = y_axis; |
DebugOut.Analog[11] = z_axis; |
// Neigungskompensation |
x_corr = x_axis * cos_nick; |
x_corr += y_axis * sin_roll * sin_nick; |
x_corr -= z_axis * cos_roll * sin_nick; |
y_corr = y_axis * cos_roll; |
y_corr += z_axis * sin_roll; |
// Winkelberechnung |
heading = atan2_i(x_corr, y_corr); |
if (heading < 0) heading = -heading; |
else heading = 360 - heading; |
/* |
if (!x_corr && y_corr <0) return (90); |
if (!x_corr && y_corr >0) return (270); |
heading = atan(y_corr/x_corr)*57.29578; |
if (x_corr < 0) heading = 180-heading; |
if (x_corr > 0 && y_corr < 0) heading = -heading; |
if (x_corr > 0 && y_corr > 0) heading = 360 - heading; |
*/ |
return (heading); |
} |
/branches/v0.60_MicroMag3_Nick666/v0.60/compass.h |
---|
0,0 → 1,44 |
struct MM3_working_struct |
{ |
uint8_t STATE; |
unsigned int DRDY; |
uint8_t AXIS; |
volatile signed int x_axis; |
volatile signed int y_axis; |
volatile signed int z_axis; |
}; |
struct MM3_calib_struct |
{ |
int8_t X_off; |
int8_t Y_off; |
int8_t Z_off; |
uint16_t X_range; |
uint16_t Y_range; |
uint16_t Z_range; |
}; |
extern struct MM3_working_struct MM3; |
extern struct MM3_calib_struct MM3_calib; |
void init_MM3(void); |
void timer0_MM3(void); |
void calib_MM3(void); |
signed int heading_MM3(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 3 |
#define MM3_BYTE2 4 |
#define MM3_X 5 |
#define MM3_Y 6 |
#define MM3_Z 7 |
#define MM3_TILT 8 |
#define MM3_IDLE 9 |
/branches/v0.60_MicroMag3_Nick666/v0.60/fc.c |
---|
0,0 → 1,846 |
/*####################################################################################### |
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; |
int KompassValue = 0; |
int KompassStartwert = 0; |
int KompassRichtung = 0; |
uint8_t updKompass = 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; |
struct acc_neutral_struct ee_acc_neutral EEMEM; // Reservierung im EEPROM |
struct 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 calib_acc(void) |
//############################################################################ |
{ |
unsigned int timer; |
acc_neutral.X = 0; |
acc_neutral.Y = 0; |
acc_neutral.Z = 0; |
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(struct 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(struct acc_neutral_struct)); |
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 = 178; //zur freien Verwendung |
EE_Parameter.UserParam2 = 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, "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 = 178; //zur freien Verwendung |
EE_Parameter.UserParam2 = 0; //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 = 1; |
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], sizeof(struct mk_param_struct)); |
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(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) |
{ |
int w,v; |
static uint8_t SignalSchlecht = 0; |
if (!updKompass--) // Aufruf mit ~10 Hz |
{ |
KompassValue = heading_MM3(); |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
updKompass = 50; |
} |
w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln |
v = abs(IntegralRoll /1024); |
if(v > w) w = v; // grösste Neigung ermitteln |
if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht) |
{ |
KompassStartwert = KompassValue; |
NeueKompassRichtungMerken = 0; |
} |
w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
if(w > 0) |
{ |
if(!SignalSchlecht) |
{ |
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern |
Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten |
ANALOG_ON; // ADC einschalten |
} |
else SignalSchlecht--; |
} |
else SignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 1/2 sek |
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// 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[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; |
// Kanäle 9 bis 11 in compass.c |
// 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/v0.60/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 int KompassValue; |
extern int KompassStartwert; |
extern 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); |
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]; |
}; |
struct acc_neutral_struct |
{ |
volatile int X; |
volatile int Y; |
volatile float Z; |
}; |
extern struct acc_neutral_struct acc_neutral; |
extern void calib_acc(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/v0.60/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_buss.txt"></File><File path="math.c"></File><File path="math.h"></File><File path="compass.c"></File><File path="compass.h"></File><File path="COPYING"></File><File path="COPYING.LESSER"></File></Project> |
/branches/v0.60_MicroMag3_Nick666/v0.60/flight.pnps |
---|
0,0 → 1,0 |
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd> |
/branches/v0.60_MicroMag3_Nick666/v0.60/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/v0.60/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/v0.60/main.c |
---|
0,0 → 1,236 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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" |
// Reservierung im EEPROM |
unsigned char EEPromArray[10] EEMEM; |
struct mk_param_struct EEParameterArray[5] EEMEM; |
// -- Parametersatz aus EEPROM lesen --- |
// number [0..5] |
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
if (number > 5) number = 5; |
number--; // Auf Index 0 bis 4 anpassen |
eeprom_read_block(buffer, &EEParameterArray[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; |
number--; // Auf Index 0 bis 4 anpassen |
eeprom_write_block(buffer, &EEParameterArray[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(); |
init_MM3(); |
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]) != 10) // 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], sizeof(struct mk_param_struct)); |
} |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], 1); |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], 10); |
calib_acc(); |
} |
ReadParameterSet(GetActiveParamSetNumber(), (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
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"); |
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"); |
calib_acc(); |
} |
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/v0.60/main.h |
---|
0,0 → 1,93 |
#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 PORTB ^= (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_LAST_OFFSET 3 |
#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/v0.60/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/v0.60/math.c |
---|
0,0 → 1,126 |
/* |
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(((long)y*50) / x); // 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) && (m > 0)) return (-angle + 180); // Quadrant II |
else return (angle - 180); // x < 0 && y < 0 Quadrant III |
} |
const float pgm_sinus_f[91] PROGMEM = {0.0,0.0174524,0.0348995,0.0523360,0.0697565,0.0871557,0.1045285,0.1218693,0.1391731,0.1564345,0.1736482,0.1908090,0.2079117,0.2249510,0.2419219,0.2588190,0.2756373,0.2923717,0.3090170,0.3255681,0.3420201,0.3583679,0.3746066,0.3907311,0.4067366,0.4226182,0.4383711,0.4539905,0.4694715,0.4848096,0.5000000,0.5150381,0.5299193,0.5446390,0.5591929,0.5735764,0.5877852,0.6018150,0.6156615,0.6293204,0.6427876,0.6560590,0.6691306,0.6819983,0.6946584,0.7071068,0.7193398,0.7313537,0.7431448,0.7547096,0.7660444,0.7771459,0.7880107,0.7986355,0.8090170,0.8191520,0.8290376,0.8386706,0.8480481,0.8571673,0.8660254,0.8746197,0.8829476,0.8910065,0.8987940,0.9063078,0.9135454,0.9205048,0.9271838,0.9335804,0.9396926,0.9455186,0.9510565,0.9563047,0.9612617,0.9659258,0.9702957,0.9743701,0.9781476,0.9816272,0.9848077,0.9876883,0.9902681,0.9925461,0.9945219,0.9961947,0.9975640,0.9986295,0.9993908,0.9998477,1.0}; |
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) n=1; |
else if ((winkel > 90 ) && (winkel <= 180)) {winkel = 180 - winkel; n = 1;} |
else if ((winkel > 180 ) && (winkel <= 270)) {winkel = winkel - 180; n = -1;} |
else {winkel = 360 - winkel; n = -1;} //if ((winkel > 270) && (winkel <= 360)) |
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; |
i = i % 200; |
return (pgm_read_byte(&pgm_asin[i]) * m); |
} |
*/ |
/branches/v0.60_MicroMag3_Nick666/v0.60/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/v0.60/menu.c |
---|
0,0 → 1,129 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// + 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 = 12,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 Off"); |
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; |
case 12: |
LCD_printfxy(0,0,"MM3 Range"); |
LCD_printfxy(0,1,"X_Range: %4i",MM3_calib.X_range); |
LCD_printfxy(0,2,"Y_Range: %4i",MM3_calib.Y_range); |
LCD_printfxy(0,3,"Z_Range: %4i",MM3_calib.Z_range); |
break; |
default: MaxMenue = MenuePunkt - 1; |
MenuePunkt = 0; |
break; |
} |
RemoteTasten = 0; |
} |
/branches/v0.60_MicroMag3_Nick666/v0.60/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/v0.60/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/v0.60/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/v0.60/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/v0.60/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/v0.60/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/v0.60/timer0.c |
---|
0,0 → 1,121 |
#include "main.h" |
volatile unsigned int CountMilliseconds = 0; |
volatile static unsigned int tim_main; |
volatile unsigned char UpdateMotor = 0; |
volatile unsigned int beeptime = 0; |
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) // 9,8kHz |
{ |
static unsigned char cnt_1ms = 1,cnt = 0; |
// TCNT0 -= 250;//TIMER_RELOAD_VALUE; |
if(!cnt--) |
{ |
cnt = 10; |
cnt_1ms++; |
cnt_1ms %= 2; |
if(!cnt_1ms) UpdateMotor = 1; |
CountMilliseconds++; |
if(Timeout) Timeout--; |
} |
if(beeptime > 1) |
{ |
beeptime--; |
PORTD |= (1<<PD2); |
} |
else |
PORTD &= ~(1<<PD2); |
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) timer0_MM3(); // Kompass auslesen |
} |
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/v0.60/timer0.h |
---|
0,0 → 1,13 |
#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 int ServoValue; |
/branches/v0.60_MicroMag3_Nick666/v0.60/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/v0.60/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/v0.60/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], sizeof(struct mk_param_struct)); |
SendOutData('L' + tmp_char_arr2[0] -1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct)); |
} |
else |
SendOutData('L' + GetActiveParamSetNumber()-1,MeineSlaveAdresse,(unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct)); |
break; |
case 'l': |
case 'm': |
case 'n': |
case 'o': |
case 'p': // Parametersatz speichern |
Decode64((unsigned char *) &EE_Parameter.Kanalbelegung[0],sizeof(struct mk_param_struct),3,AnzahlEmpfangsBytes); |
WriteParameterSet(RxdBuffer[2] - 'l' + 1, (unsigned char *) &EE_Parameter.Kanalbelegung[0], sizeof(struct mk_param_struct)); |
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/v0.60/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/v0.60/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 |