Has this happened before? Sounds like you have a low blood count possibly from the three weeks of bleeding. Your Doctor can advise you over the telephone if you should be seen. Be prepared to answer if the bleeding was heavier than usual, if the color was different,(very important) and if there was an unusual odor. He may even ask about your last sexual act. Hope you feel better soon. Don't wait too long.
The normal periods range is 1-7 days. If it is more than 7 days, it is abnormal. It causes anemia which you might be feeling. The continuously 21 days periods can be due to polyps, fibroids or tumor in uterus. I advise you for a ultrasound with trans vaginal probe.
I am 40 years old with no children, why have I had a period for three weeks?
I have had my period for 5 weeks now, it is due to poly cystic ovarian syndrome